(Script) Compilare applicazioni per iPhone senza Provisioning Profile con Xcode 3.2.1/3.2.2/3.2.3 (AGGIORNATO X2)
@UPDATE (22/06/2010): ORA LO SCRIPT FUNZIONE PERFETTAMENTE.
Eccoci qui, con il WWDC dello scorso 7 Luglio, è stato presentato il nuovo iPhone 4 ed è stato rilasciato il nuovo iOS 4 GM che precede la final release. Come sempre, ho creato il mio script compatibile con queste ultime versioni che permette di compilare applicazioni senza Provisioning Profile.
Per seguire la procedura manuale, potete seguire le istruzioni in questo articolo, altrimenti potete scaricare il nuovo script che esegue le modifiche automaticamente dal link qui sotto:
Lo script è testato con Xcode 3.2.1, 3.2.2 e 3.2.3. Non è stato provato con Xcode 3.2.4 ma dovrebbe funzionare, se lo usate e funziona, fatemi sapere!
Inoltre nelle proprietà vostro progetto, cercate “Code Signing Identity” e “Any iPhoneOS Device” nella lista, e li settiamo con “Don’t code sign”.

IMPORTANTE!
Dopo aver eseguito lo script: se volete fare il debuggin della vostra applicazione su un iPhone, dovete anche creare un certificato dal nome "iPhone developer" e considerarlo attendibile. La guida per creare il certificato la trovate nella prima pagina di questo articolo. Inoltre dovete avere installato AppSync.
Se avete usato lo script…
Questo è lo script per la build phase.
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
Ciao. Il tuo è stato l’unico tutorial che mi ha permesso di riuscire a far funzionar eil debug sul dispositivo e fdirmare le applicazioni con il certificato creato a mano. Attento però, nel run script a tale riga “codesign -f -s “iPhone developer” –entitlements “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent” “${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/”"
utilizzi il nome del certificato sbagliato “iPhone developer”. nella tua precedente guida scrivive di chiamarlo “iPhone”.
Solo un appunto per rendere migliore l’articolo.
Cmq sono riuscito e debuggare da dispositivo, a copiare l’applicazione a mano nel dir Applikcation dell’iphone e a rimuovere la firma con ldid. tutto pefetto, almeno….però se creo il deb per cidya e lo installo con il dpkg l’applicazione si installa ma crasha subito proprio come mi faceva quando non veniva correttamente firmata.
Hai mica una guida oun tool per creare i deb per cydia in velcoità una volta avuta la build=?
Grazie e continua cosi, ottimo blog…ti seguirò
@kreker
Ciao, per il certificato, quella era una vecchia guida. In questo articolo dico di chiamarlo “iPhone developer”, però hai ragione, forse a qualcuno potrebbe sfuggire.
Non sono un esperto nel creare applicazioni per cydia, sto finendo ora la mia prima applicazione che potrei inserire, e anche io ho il problema del crash durante lo startup. Ora devo provare con l’ultimo SDK uscito ieri ma ho paura che possa accadere la stessa cosa. Mi sto concentrando sul finire l’applicazione prima di cercare informazioni su internet su questo problema. Se troverò qualcosa scriverò un articolo, ma se ti capita prima di trovare una soluzione…. un commento o una email mi farebbe piacere
guarda che non sia lo stesso rpoblema che sto avendo io. perchè in tutti i casi l’appz crashava appena la avviavi.
ora sono riuscito anche a creare il deb giusto seguendo le istruzioni della wiki di cydia. bisogna creare una struttra particolare di directory e usare il comando dpkg-deb -b nomeapp
Ho riscontrato un altro problem apoi, ovvero usando il deb per l’installazione installa corettamente l’appz ma anche in questo caso crashava subito, dopo mille smadonnamenti ho cambiato i permessi della direcotry da 755 a 775 e l’appz funziona ed è visibile nei package di cydia con tutte le info:)
Non so se sbaglio ancora qualcosa o se è normale comunque x ovviare al problema basta creare uno script postinstall e metterlo nella dir DEBIAN del .deb con un semplice chmod 775 della dir.
Ora sto cercando di cpaie se devo farlo sempre, se tutti fanno cosi oppure se sbaglio io qualcosa in qualche punto.
controlla i permessi a 775 della dir.
ciao e grazie
Ho risolto il problema… Avevo una configurazione errata del certificato… Io che faccio la guida e sbaglio quando faccio le cose io… ahahaha Ora funziona tutto alla perfezione!
grazie mi hai salvato la giornata… (anzi la nottata….)
When I choose device – 4.0 and hit “Build and Run” I have this error: “No provisioned iPhone OS device is connected.”. My jailbroken iphone with OS4.0 is connected. Pls help.
p.s Does anyone know if the GPS works on OS4.0 simulator?
Thx
Please read the article before this one. You need a jailbroken iPhone with AppSync installed, from http://cydia.hackulo.us repository, and a self-signed certificate.
The iPhone Simulator support MapKit, but the current location is pointed in Cupertino.
Una semplice conferma : tutto ciò è impossibile assolutamente senza un Iphone con Jailbreak ?
Hai usato un traduttore automatico? Did you use a translator?
Si, tutto questo è possibile solo con un iPhone jailbroken.
Yes, it’s possible with a jailbroken iPhone only.
Thanks for the fast reply.
My iphone has AppSync and I also have a self-signed certificate but i have this error.
I developed an application that uses MapKit and working fine on simulator – 3.1.3, but it is not working
on simulator – 4.0.
I’m developing an application with MapKit right now, and all works fine. But I’m developing only for the iOS4, not for 3.x. You have some errors in your app if it doesn’t work.
Ok i’ll check it thanks!
CIAO, Ma se esempio io prendo una applicazione gia compilata ovviamente gia’ signata(sempre x cydia).
io volevo, fare questo:
ho aperto una app con hexeditor ho editato esempio il nome ecc. poi salvo.
l”app ovviamente sul iphone non parte perche e da risignare, sai come si fa’..
grazie..
Ciao,
funziona con skd 4.3? A me non va, magari sbaglio qualcosa.
Ciao,
non è mai stato testato ma non credo. L’articolo si riferisce ai frameworks inclusi nelle versioni di Xcode specificati.