Come posso distribuire un'applicazione iPhone da Xcode a un dispositivo iPhone reale senza avere un certificato Apple da $ 99?
Come posso distribuire un'applicazione iPhone da Xcode a un dispositivo iPhone reale senza avere un certificato Apple da $ 99?
Risposte:
Sembra che l'applicazione non sia firmata. Scarica ldid da Cydia e poi usalo in questo modo:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Assicurati anche che il binario sia contrassegnato come eseguibile: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Ho usato un mix di due howtos: Jason e Alex . Con il secondo abbiamo il vantaggio di poter eseguire il debug. Coprirò principalmente entrambi di seguito (e semplificherò quello di alex):
Aggiornamento gennaio 2012: funziona ancora su SDK 4.2.1 e iOS 5.0.1 - Ho appena provato tutto su un nuovo computer e dispositivo!
Patch il tuo iPhone SDK per consentire l'uso di questo certificato:
Avvia Keychain Access.app. Senza elementi selezionati, dal menu Portachiavi selezionare Assistente certificato, quindi Crea un certificato.
Fai clic su Continua
Fai clic su Continua
Svuota il campo Indirizzo e - mail .
Fai clic su Continua fino al completamento .
Tu dovresti vedere "Questo certificato radice non è attendibile" . Questo è previsto.
Imposta iPhone SDK per consentire l'utilizzo del certificato autofirmato:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Se hai Xcode aperto, riavvialo per rendere effettive le modifiche.
E se sei su iOS 5, questo è tutto! Provalo ora! Potrebbe non consentire il debug, ma l'app sarà lì!
Sono stato molto sorpreso da questo perché, come dovresti sapere , non ho idea di cosa siano tutti quegli hacker! Tutto quello che ho fatto è stato migliorare un po 'quello che ho trovato altrove, come ho indicato.
Quindi sì, l' intero metodo non funziona più allo stesso modo e non potrei preoccuparmi di trovarne uno nuovo ... Tranne questo, che utilizza uno strumento chiamato Theos ma non sono riuscito a completare l'intero processo.
Infine, se è necessario disinstallarlo per qualsiasi motivo, controllare la fine di questo post. Nel mio caso, dovevo farlo perché non riuscivo a capire perché tutto il blu dell'intero metodo smettesse di funzionare, e non me ne potrebbe fregare più poiché abbiamo già la licenza tanto attesa. (Il numero di DUNS di Freaking richiede così tanto tempo ...)
.
.
.
.
.
Sul tuo iPhone jailbreak, installa l'app AppSync aggiungendo la fonte ** http://repo.hackyouriphone.org **
Rimuovi i requisiti SDK per il segno di codice e le autorizzazioni (ti amo sed !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Prestare attenzione allaiPhoneOS5.0.sdk
parte. Se, ad esempio, stai utilizzando iOS 4.2 SDK, sostituiscilo di conseguenza:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Concludere la rimozione dei requisiti mediante l'applicazione di patch a Xcode. Questo significa editing binario:
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" >> working
/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
Se hai Xcode aperto, riavvialo per rendere effettiva questa modifica (e l'ultima).
Apri "Progetto> Modifica impostazioni progetto" (dal menu). Fai clic sulla scheda "Crea" . Trova "Identità firma codice" e il relativo figlio "Qualsiasi dispositivo iPhoneOS" nell'elenco e imposta entrambi sulla voce "Non firmare codice" :
Dopo questo, sentiti libero di annullare il passaggio 3. Almeno nel mio caso è andato tutto bene.
Impostare Xcode per firmare il codice con il nostro certificato autofirmato personalizzato (il primo how-to). Probabilmente questo passaggio può essere ignorato se non si desidera essere in grado di eseguire il debug:
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
Collega il tuo iPhone e apri Xcode. Apri finestra> Organizer. Seleziona il dispositivo dall'elenco a sinistra e fai clic su "Usa per lo sviluppo". Ti verrà richiesto un accesso al sito Web di provisioning, fai clic su Annulla. È lì per facilitare il provisioning legittimo, ma non rende più difficile il non-provisioning illegittimo.
Ora devi fare quest'ultima parte per ogni nuovo progetto che realizzi . Vai al menu Progetto> Nuova fase di costruzione> Nuova fase di esecuzione dello script di esecuzione. Nella finestra, copia / incolla questo:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/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
.
.
.
.
Per la prima parte:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Per la seconda parte:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
nel caso abbiate fatto il passaggio 3 anziché 2, modificatelo anche di conseguenza:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
per il resto, sta semplicemente ripristinando ciò che hai fatto su XCode e cancellandolo /Developer/iphoneentitlements401/gen_entitlements.py
se vuoi:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
anche quando ho scaduto 3650 giorni. Sembra che il telefono stesso stia facendo un controllo.
Per testare la tua app su un dispositivo reale anziché pagare la quota di Apple Developer (o effettuare il jailbreak del dispositivo), puoi utilizzare il nuovo provisioning gratuito supportato da Xcode 7 e iOS 9.
Ecco i passaggi presi più o meno dalla documentazione (il che è abbastanza buono, quindi dategli una lettura):
1. Aggiungi il tuo ID Apple in Xcode
Vai a XCode> Preferenze> scheda Account> pulsante Aggiungi (+)> Aggiungi ID Apple. Consulta i documenti per ulteriori informazioni.
2. Fare clic sulla scheda Generale in Project Navigator
3. Scegli il tuo ID Apple dal menu a comparsa Team.
4. Connetti il tuo dispositivo e selezionalo nel menu schema.
5. Fare clic sul pulsante Risolvi problemi
Se viene visualizzato un errore relativo al nome del pacchetto non valido, modificarlo in qualcosa di unico.
6. Esegui la tua app
In Xcode, fai clic sul pulsante Crea ed esegui.
7. Affidati allo sviluppatore dell'app nelle impostazioni del dispositivo
Dopo aver eseguito l'app, visualizzerai un errore di sicurezza perché l'app che desideri eseguire non proviene dall'App Store.
Sul dispositivo , vai in Impostazioni> Generali> Profilo> nome-ID-Apple > Fidati del tuo nome-ID-Apple > Affidabilità.
8. Avvia nuovamente l'app sul dispositivo.
Questo è tutto. Ora puoi eseguire la tua (o qualsiasi altra app per cui hai il codice sorgente) senza dover pagare $ 99 dollari. Grazie, Apple, per aver finalmente permesso questo.
Dovrai effettuare il jailbreak del tuo dispositivo.
Esiste un modo per distribuire app per iPhone senza pagare per apple Dovrai effettuare il jailbreak del tuo dispositivo e seguire le istruzioni in http://www.alexwhittemore.com/?p=398
Nulla di ciò che ho visto da nessuna parte indica che puoi implementare ad hoc su un vero iPhone senza un certificato (a pagamento).
Ieri sera stavo attraversando lo sviluppatore Apple e lì nel certificato di provisioning ho trovato qualcosa del tipo: "Firma dei membri del team". Penso che ci sia un modo per aggiungere membri del team al profilo a pagamento. Puoi semplicemente chiedere al proprietario dell'ID app (a pagamento) di aggiungerti come membro del team. Non sono sicuro. Ci sto ancora cercando.
No, è facile farlo. In Xcode, imposta la Configurazione attiva su Rilascio. Cambia il dispositivo da Simulatore a Dispositivo, qualunque sia l'SDK. Se desideri esportare direttamente sul tuo iPhone, collegalo al tuo computer. Premi Build and Go. Se il tuo iPhone non è collegato al tuo computer, verrà visualizzato un messaggio che dice che il tuo iPhone non è collegato.
Se questo è il tuo caso: (iPhone non era collegato)
Vai alla cartella dei tuoi progetti e poi alla cartella di compilazione all'interno. Vai alla cartella Release-iphoneos e porta l'app all'interno, trascina l'icona di iTunes. Quando sincronizzi il tuo dispositivo iTouch, lo copierà sul tuo dispositivo. Apparirà anche in iTunes come applicazione per iPhone.
Spero che questo ti aiuti!
PS: se dice che un certificato non è valido, fai clic sul progetto in Xcode, la piccola icona del progetto nello stack di file a sinistra e premi Apple + I, oppure ottieni Informazioni dalla barra dei menu. Fai clic su Crea in alto. In Firma codice, modifica identità firma codice - Qualsiasi dispositivo con sistema operativo iPhone deve essere Non firmare.
La soluzione pubblicata da Cawas funziona perfettamente anche con XCode4. Tuttavia, ci sono alcune modifiche all'interfaccia utente di IDE, quindi è necessario effettuare alcune ricerche per trovare Run Script :)
Nella vista Navigatore progetto, fai clic sull'elemento principale del progetto, quindi nella finestra centrale seleziona Target, quindi fai clic sulla scheda Fasi di generazione e nella parte inferiore vedrai il pulsante Aggiungi fase di generazione, fai clic e seleziona Aggiungi Esegui script, quindi incolla "codesign "sceneggiatura pubblicata da Cawas.
Non c'è soluzione alternativa. Puoi distribuire app ad hoc solo se sono registrate sul tuo dispositivo. Questo ti impedisce di creare il tuo app store ..