Automazione di build iOS [chiusa]

2

(Ordinamento di un post lungo, sto cercando di essere accurato con quello che ho fatto e perché sono confuso)

Ho il compito di automatizzare le nostre build per la nostra app iOS. Il processo che è effettivamente coinvolto sta prendendo un file .app (generato da Cordova) e convertendolo in un file .ipa.

Penso che la prima cosa che vorrei capire sia come funzionano le certificazioni e le disposizioni mobili. Quando accedo ad Apple Developer Center per il mio team, vedo due certificati che posso scaricare. Sono consapevole che ho bisogno di firmare il file .app prima di convertirlo in un .ipa, quindi ho provato a scaricarne uno, ma ho scoperto che non sono in grado di firmare il codice con esso. La mia comprensione è che un'identità di firma == un certificato + un set di chiavi pubblico / privato che funzioni con il centro sviluppatore (?). Non ho mai trovato un modo per utilizzare una certificazione pre-fatta sulla mia macchina. L'unico modo che ho trovato per farlo era usare l'interfaccia utente XCode (qualcosa che non voglio davvero fare, perché l'automazione) per creare un intero file cert e generare il keyset pubblico / privato per l'identità. Se posso, mi piacerebbe davvero evitare di creare nuove identità e certificati.

Il prossimo passo che ho fatto è stato usare il comando PackageApplication in xcrun (nella riga di comando). Una volta creato un nuovo certificato e identità, sono stato in grado di firmare i file .app (o almeno così pensavo). Il mio primo tentativo è stato un comando su una riga, incluso - firma con l'identità e - inserito con il file mobileprovision che avevo scaricato dal Centro per sviluppatori. Dopo alcune ore di gioco con questa configurazione, ho trovato che era meglio usare codesign -s "la mia identità di firma" "il file .app" per far accadere qualsiasi cosa. Ho pensato che fosse la mossa giusta (più tardi ho scoperto che probabilmente non lo è).

Dopo ho scoperto che le persone avevano postato dicendo che la funzione --embed di xcrun in realtà non incorpora il file, e "incorporare" il file significa semplicemente metterlo nella directory .app con il nome "embedded.mobileprovision ". Stanco di xcrun non funziona, ho semplicemente spostato il file mobileprovision che avevo scaricato dal Developer Center nella posizione corretta e lo ho rinominato.

Successivamente ho firmato il file .app, quindi ho eseguito il comando PackageApplication senza i parametri --sign o --embed. Questo ha generato correttamente un file .ipa, ma ho continuato a ricevere errori "La firma del codice non è valida" in Apple Configurator.

Dopo questo, ho fatto qualche lettura e ho scoperto che .ipa è solo un archivio del file .app all'interno di una cartella chiamata Payload. Quindi, come ultimo tentativo, ho appena spostato il file .app firmato in una cartella chiamata Payload e compresso in un file .zip, che poi ho rinominato in .ipa. Sto ottenendo lo stesso risultato di "La firma del codice non è valida."

Sono un po 'fuori di idee. Penso che potrei fraintendere i certificati e le MobileProvisions, quindi ripulire tutto ciò potrebbe aiutare.

Aiuta l'aiuto.

    
posta thisisnotabus 14.05.2014 - 00:05
fonte

0 risposte

Leggi altre domande sui tag