Los siguientes pasos instructivos para lograr este propósito se toman de:
http://iphonedevwiki.net/index.php/Xcode
Mis hallazgos y acciones se proporcionan en cada paso.
1. Cree un certificado de firma de código autofirmado con el nombre "Desarrollador de iPhone" en el llavero de "inicio de sesión" (predeterminado) usando Keychain Access.
- Tomé capturas de pantalla mientras seguía las instrucciones anteriores.
- Dejé la mayoría de los campos en blanco o en su valor predeterminado.
2. Abierto /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
(4.2 o inferior:) /Developer/Platforms/iPhoneOS.platform/Info.plist
. Es posible que necesite permiso de root.
- Estoy usando Xcode 4.6, así que abrí el
.plist
archivo anterior .
3. Reemplace todas las ocurrencias de XCiPhoneOSCodeSignContext
by XCCodeSignContext
. Hay tres de ellos (XCode Versión 3.2.4+).
- Hice tres modificaciones como indican las capturas de pantalla.
4. Guarde el archivo y reinicie Xcode.
5. Asegúrese de tener ldid en su Mac. Coloque una copia en algún lugar, por ejemplo, en /usr/local/bin
.
6. Cree el script Python ldid3.py justo al lado del programa ldid. Hazlo ejecutable. Llénalo con:
#!/usr/bin/env python
from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile
app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])
if '-gta' not in argv:
check_call([ldid_path, '-S', obj_path])
else:
with NamedTemporaryFile('w+b', 0) as f:
f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
""")
check_call([ldid_path, '-S' + f.name, obj_path])
- Creé un nuevo archivo de texto sin formato y copié y pegué el código anterior.
- Guardé este archivo como
ldid3.py
y lo almacené en el /usr/local/bin
directorio.
- En la terminal, corrió
chmod 777 /usr/local/bin/ldid3.py
.
7. Abierto iPhoneCodeSign.xcspec
. Este archivo se puede encontrar en [Para Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
]:
8. Cambie la entrada en el archivo de llamar codesign
a ldid3.py
.
- Según las instrucciones oficiales de la instrucción, convirtió el archivo de especificaciones a texto sin formato escribiendo en la consola:
sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
- Abrí el archivo con TextEdit.
- Sustituido
<key>CommandLine</key><string>/usr/bin/codesign</string>
por <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>
.
9. Guarde el archivo y reinicie Xcode.
- Guardé el archivo y salí de TextEdit.
10. Cree un archivo /var/mobile/tdmtanf
en el dispositivo para habilitar la "anulación de TDMTANF" de Apple en la instalación (advertencia: hacerlo también lo colocará en un GameCenter de espacio aislado).
- Creo un archivo de texto vacío en Windows, lo
tdmtanf
llamé SSH en mi iPod, lo cargué /var/mobile/
y reinicié mi iPod.
Ahora que todo eso terminó con ...
Abro mi proyecto Xcode existente y presiono Ejecutar. Funciona en el simulador de iOS sin ningún problema.
Me aseguro de que Code Signing esté configurado para usar el certificado configurado en el paso 1.
Construyo la aplicación (Proyecto> Construir). Un mensaje de éxito sigue.
Agarro mi carpeta de aplicación TicTacToe.app
desde /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/
y transferirlo a mi máquina de Windows para instalar en mi iPod.
En un intento de instalar la aplicación en mi iPod, me arrastro TicTacToe.app
a la sección de aplicaciones de la Utilidad de configuración de iPhone, pero recibí este mensaje de error que dice que mi aplicación "no es una aplicación móvil válida".
También he intentado instalar manualmente la aplicación usando iFunbox y la aplicación AppCake que se encuentra en Cydia. Ambos fallan.
Como punto de interés, porque a medida que busqué en Google, noté que muchas personas mencionan la importancia de esto: tengo instalado AppSync. (Perdón por la gran captura de pantalla. Si debo quitarla, ¡házmelo saber!)
Conclusión
Entonces, a pesar de seguir las instrucciones de cerca, varias veces, mi aplicación de configuración de iPhone no es reconocida como una aplicación válida. No puedo instalar la aplicación manualmente usando programas como iFunbox o aplicaciones de Cydia como AppCake.
Sospecho que la aplicación no es válida, pero después de seguir las instrucciones cuidadosamente, no estoy seguro de por qué.
¿Alguien puede decirme por qué mi aplicación no es válida y qué puedo hacer para solucionar esto, además de gastar dinero?