2011-07-04 17 views
9

tengo algunas aplicaciones yo quiero renunciar con una licencia de desarrollador de Apple diferente,Dimitiendo una aplicación fuera de Xcode

problema es que no tengo el código fuente, sólo el archivo IPA, la aplicación y la archiveinfo.plist es que posible para mí para renunciar a la aplicación si no tengo el código fuente?

Gracias! Ompah

+0

Puede probar [www.aironapp.com] (http://www.aironapp.com). Puede hacer recodesigning de la IPA automáticamente. Primero debe configurar su cuenta Apple (cargar certificado y claves privadas). – shader

+0

Respuesta del script de shell simple: http://stackoverflow.com/a/10905855/190599 – CodeReaper

Respuesta

23

La capacidad de reemplazar la firma en un archivo binario ya firmado está incorporada en la utilidad codesign. De esta forma, si su certificado de desarrollador caduca (ya que lo hacen de manera molesta), no es necesario que reconstruya su aplicación.

Esto puede ser importante, especialmente si necesita admitir una versión de aplicación anterior, y ha realizado modificaciones de código desde que archivó su IPA.

Normalmente uso este script. Resulta útil cuando se comercializan IPA de depuración con personas que tienen sus propias cuentas de desarrollador y para las que no quiero grabar una ranura UDID, y que no quieren tener que cargar mis perfiles de aprovisionamiento en sus dispositivos.

#!/bin/sh 

TEMPDIR=/tmp/$RANDOM-$RANDOM-$RANDOM 
RESOURCERULES=/tmp/ResourceRules-$RANDOM$RANDOM.plist 
CURRENTDIR=`pwd` 

mkdir -p "$TEMPDIR" 

cat - > "$RESOURCERULES" <<ResourceRulesPlistDelimiter 
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>rules</key> 
    <dict> 
     <key>.*</key> 
     <true/> 
     <key>Info.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>10</real> 
     </dict> 
     <key>ResourceRules.plist</key> 
     <dict> 
      <key>omit</key> 
      <true/> 
      <key>weight</key> 
      <real>100</real> 
     </dict> 
    </dict> 
</dict> 
</plist> 
ResourceRulesPlistDelimiter 

unzip -q "$1" -d "$TEMPDIR" || exit 1 
xattr -d -r com.apple.quarantine "$TEMPDIR" 

for APPBUNDLE in "`find "$TEMPDIR" -name "*.app"`"; do 
    codesign --resource-rules="$RESOURCERULES" -f -s "iPhone Developer" "$APPBUNDLE" 
    codesign -dvvvv -r- "$APPBUNDLE" 
done 

cd "$TEMPDIR" 
zip -qr "$TEMPDIR.zip" "Payload" && cd "$CURRENTDIR" && mv "$1" "$1.bak" && mv "$TEMPDIR.zip" "$1" 
cd "$CURRENTDIR" 
rm -rf "$TEMPDIR.zip" 
rm -rf "$TEMPDIR" 
rm -rf "$RESOURCERULES" 
+0

Cool, gracias hombre! ¿Pero cómo uso el script :) Tengo un ipa con com.something.something y quiero cambiar a com.mycompany.algo ¿Sería eso posible? – Ompah

+0

Sí. Solo cámbialo en Info.plist. Firmé una aplicación de prueba con el ID com.apple.iBooks ayer solo para ver qué sucedería, y funcionó bien. –

+0

Guarde el script como un archivo de texto, entre en el terminal, cd en el directorio del script, chmod + x NameOfFile.sh, y luego ejecute ./NameOfScript.sh IPAName.ipa –

2

Esta es la solución más efectiva y eficiente que he encontrado hasta ahora.

  1. Asegúrese de estar utilizando una Mac. Este proceso requiere una aplicación para Mac OSX.

  2. Tome el archivo .ipa, cámbiele el nombre a un archivo .zip.

  3. Extraiga el archivo comprimido, verá una carpeta llamada "Carga útil" que contiene un archivo .app.

  4. descargar la aplicación AppResigner Mac OSX aquí: http://www.gorbster.net/misc/AppResigner.app.zip

  5. Descomprimir la aplicación. Dentro de la carpeta descomprimida, verá la aplicación de Mac "AppResigner"

  6. Abra esta aplicación. Le pedirá que elija un archivo. Elija la .app que hemos descomprimido del archivo .ipa.

  7. Le pedirá una identidad de firma. Abra la aplicación Mac "Acceso a Llaveros". Los pasos que tomará aquí pueden variar ligeramente. Abra el "inicio de sesión" de llavero y elija la categoría "Certificados"

  8. Aquí tiene que encontrar el certificado con el que desea renunciar a la aplicación. Por ejemplo, podría ser: "Distribución de iPhone: el nombre de su empresa", deberá tener acceso al perfil de distribución de su empresa para usar un certificado de distribución. No he intentado hacer esto con un certificado de desarrollo, no sé si funcionará.

  9. Escriba el nombre de este certificado exactamente como se muestra aquí en el indicador de AppResigner; copiar/pegar no funcionaba correctamente para mí.

  10. AppResigner debería decirle que la aplicación se ha renunciado.

  11. Busque el archivo .app que ha enviado (es el mismo que antes) y conéctelo. Uso el programa Mac OSX Keka, pero muchos están disponibles.

  12. Cambie el nombre del archivo zip a un archivo .ipa.

  13. ¡Hecho!

+0

También para usuarios de león de montaña, añada también la siguiente línea: export CODESIGN_ALLOCATE = "/ Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate" – Meet

Cuestiones relacionadas