Domanda

Come posso distribuire un'applicazione iPhone da Xcode a un dispositivo iPhone reale senza avere un certificato Apple da $ 99?

È stato utile?

Soluzione

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 file binario sia contrassegnato come eseguibile: chmod + x /Applications/AccelerometerGraph.app/AccelerometerGraph

Altri suggerimenti

Ho usato un mix di due howtos: Jason's e alex's . 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 testato tutto su un nuovo computer e dispositivo!


1. Crea certificato autofirmato

Patch l'SDK del tuo iPhone per consentire l'uso di questo certificato:

  1. Avvia Keychain Access.app. Senza elementi selezionati, dal menu Portachiavi selezionare Assistente certificato, quindi Crea un certificato.

    • Nome: Sviluppatore iPhone
    • Tipo di certificato: Firma del codice
    • Consentimi di ignorare le impostazioni predefinite:
  2. Fai clic su Continua

    • Validità: 3650 giorni
  3. Fai clic su Continua

  4. Svuota il campo Email .

  5. Fai clic su Continua fino al completamento .

    Dovresti vedere " Questo certificato radice non è attendibile " . Questo è previsto.

  6. Imposta l'SDK per iPhone 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 effettiva questa modifica.

E se sei su iOS 5, questo è tutto! Provalo ora! Potrebbe non consentire il debug, ma l'app sarà lì!

Ne sono rimasto molto sorpreso 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ì, il metodo intero non funziona più allo stesso modo e non potrei preoccuparmi di trovarne uno nuovo ... Tranne questo, che utilizza uno strumento chiamato Theos ma non ci sono riuscito l'intero processo.

Infine, se devi disinstallarlo per qualsiasi motivo, controlla 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 ...)

.

.


.

.

.

2. Abilita Xcode per costruire su dispositivo jailbroken

  1. Sul tuo iPhone con jailbreak, installa l'app AppSync aggiungendo la fonte ** http : //repo.hackyouriphone.org **

  2. Rimuovi i requisiti dell'SDK per il segno di codice e le autorizzazioni (mi piace sed !):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
    
  3. Presta attenzione alla parte iPhoneOS5.0.sdk . 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
    
  4. Concludere la rimozione dei requisiti tramite 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).

  5. Apri " Progetto > Modifica impostazioni progetto " (dal menu). Fai clic sulla scheda " Build " . Trova " Identificazione firma codice " e il relativo figlio " Qualsiasi dispositivo iPhoneOS " nell'elenco e imposta entrambi sulla voce " Don ' t Segno codice " :

    alt text

    Dopo questo, sentiti libero di annullare il passaggio 3. Almeno nel mio caso è andato tutto bene.

  6. Impostando Xcode per firmare il codice con il nostro certificato autofirmato su misura (il primo how-to). Questo passaggio può probabilmente 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 sviluppo. & Quot; 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 illegale.

    Ora Devi fare quest'ultima parte per ogni nuovo progetto che realizzi . Vai al menu Progetto > Nuova fase di costruzione > Nuova fase di creazione 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
    

.

.


.

.

La disinstallazione

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 in cui tu abbia fatto il passaggio 3 invece di 2, semplicemente modificalo 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 ed eliminando /Developer/iphoneentitlements401/gen_entitlements.py se vuoi:

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py

Provisioning gratuito dopo Xcode 7

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 da i documenti per ulteriori informazioni.

 inserisci qui la descrizione dell'immagine

2. Fai clic sulla scheda Generale in Navigatore progetto

 inserisci qui la descrizione dell'immagine

3. Scegli il tuo ID Apple dal menu a comparsa Team.

 inserisci qui la descrizione dell'immagine

4. Collega il tuo dispositivo e selezionalo nel menu schema.

 inserisci qui la descrizione dell'immagine

5. Fai clic sul pulsante Risolvi problemi

 inserisci qui la descrizione dell'immagine

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.

 inserisci qui la descrizione dell'immagine

7. Affidati allo sviluppatore dell'app nelle impostazioni del dispositivo

Dopo aver eseguito l'app, verrà visualizzato un errore di sicurezza perché l'app che si desidera eseguire non proviene dall'App Store.

 inserisci qui la descrizione dell'immagine

Sul tuo dispositivo , vai su Impostazioni > Generale > Profilo > your-Apple-ID-name > Affidati a nome-ID-Apple > Fiducia.

8. Esegui di nuovo 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.

Non puoi, non se stai parlando di applicazioni create con l'SDK ufficiale e che vengono distribuite direttamente da xcode.

Dovrai effettuare il jailbreak del tuo dispositivo.

Esiste un modo per distribuire app per iPhone senza pagare su 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).

Stavo attraversando lo sviluppatore Apple ieri sera e lì nel certificato di provisioning ho trovato qualcosa del tipo: "" Firing Team Members " ;. 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 aiuti!

PS: se si dice qualcosa su un certificato non valido, basta fare clic sul progetto in Xcode, la piccola icona del progetto nello stack di file a sinistra e premere Apple + I o fare Ottieni informazioni dalla barra dei menu . Fai clic su Crea in alto. In Firma codice, modifica identità firma codice - Qualsiasi dispositivo del sistema operativo iPhone deve essere Non firmare.

Tutto dipende da quale versione di Xcode stai usando, poiché versioni diverse usano metodi diversi per implementare il tuo iPhone senza un profilo di provisioning.

Xcode 3.2.1 è una buona versione ed è facile da risolvere, ma dobbiamo sapere quale versione stai usando.

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 radice del progetto, quindi nella finestra centrale seleziona Target, quindi fai clic sulla scheda Fasi di generazione e in fondo vedrai il pulsante Aggiungi fase di costruzione, fai clic su 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 ..

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top