Desarrollando apps para el iPhoneOS y probandolas en un iPhone o iPod touch con Jailbreak

Requerimientos:

1) Un iPod touch o iPhone version 3.1.2 con Jailbreak. (Ejemplo para la version 3.1.2 en Redmond Pie)

2) Tener AppSync 3.1 instalado en el iPhone or iPod touch con Jailbreak (se puede bajar desde Cydia en el repositorio de http://cydia.hackulo.us)

3) Una Mac con XCode instalado y el iPhone SDK 3.1.2 tambien instalado. (Se puede conseguir desde la pagina para desarrolladores de iPhone de Apple con una cuenta de iTunes Store gratuita)

Ingredientes

Por unica vez:

1) Editar el archivo SDKSettings.plist ubicado en /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/ de la siguiente manera (hacer un backup si consideras necesario):

a. Para cada ocurrencia de:

<key>CODE_SIGNING_REQUIRED</key>
<string>YES</string>

reemplazar con:

<key>CODE_SIGNING_REQUIRED</key>
<string>NO</string>

b. Para cada ocurrencia de:

<key>ENTITLEMENTS_REQUIRED</key>
<string>YES</string>

reemplazar con:

<key>ENTITLEMENTS_REQUIRED</key>
<string>NO</string>

2) Editar el archivo Info.plist ubicado en /Developer/Platform/iPhoneOS.platform/ de la siguiente manera (hacer un backup si consideras necesario):

a. Para cada ocurrencia de:

<key>CODE_SIGN_CONTEXT_CLASS</key>
<string>XCiPhoneOSCodeSignContext</string>

reemplazar con:

<key>CODE_SIGN_CONTEXT_CLASS</key>
<string>XCCodeSignContext</string>

3) Crear un nuevo archivo (en este ejemplo llamado script y ubicado en el Desktop):

a. Usar el siguiente contenido para el archivo:

#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" &gt;&gt; working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support

b. Asignar los permisos correspondientes al archivo (desde la Terminal) con el siguiente comando:

chmod 777 script

c. Ejecutar el script (desde laTerminal):

./script

Si todo salio bien un codigo similar a este debe aparecer en la pantalla:

255+0 records in
255+0 records out
127500 bytes transferred in 0.020355 secs (6263821 bytes/sec)
189216+0 records in
189216+0 records out
189216 bytes transferred in 1.200354 secs (157633 bytes/sec)

4) Crear el archivo para el firmado de la aplicación:

a. Descargar el archivo desde uploaded.to gen_entitlements.py a /Developer/iphoneentitlement312 y darle permisos de ejecucion O alternativamente (desde la Terminal) ejecutar el siguiente codigo que descargar ahi mismo desde la pagina de Alex Whitemore, lo copia con la extension correcta y le asigna los permisos necesarios:

mkdir /Developer/iphoneentitlements312
cd /Developer/iphoneentitlements312
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py

Para cada nuevo project para iPhone en XCode:

1) Editar «Project / Edit Project Settings / Build / Code Signing / Code Signing Identity / Any iPhone OS Device» y elegir la opcion:

Don’t Code Sign

2) Agrear a «Project / New Build Phase / New Run Script Build Phase» el siguiente script:

export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements312/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi

basado en este tutorial.

3 Comments

    1. Tenes que crear un archivo de texto, si queres lo podes crear con el TextEdit o tu editor de archivos de texto de preferencia.

      Y poner el contenido que se muestra ahi.

      Una ves creado desde la terminal lo haces ejecutable con el comando chmod.

Deja un comentario