Domanda - versione corta:Perché gli script della fase di compilazione non vengono eseguiti durante la creazione di un IPA dalla riga di comando?
Perché non sarà la mia costruzione phase scripts
essere eseguito durante la creazione di un'IPA dalla riga di comando? Quando eseguo xcodebuild
per creare un IPA, gli script di fase di costruzione predefiniti non vengono eseguiti. Perché?
Domanda - lunga versione:
Ho uno spazio di lavoro con uno schema che voglio creare un'IPA fuori da linea di comando.
Questo funziona bene tranne che per una cosa; Ho due script nelle fasi di compilazione del target che viene utilizzato per inserire la versione dell'app corretta (CFBundleShortVersionString
) e il numero di revisione svn corretto (CFBundleVersion
). Questi agli script funzionano bene quando si esegue l'archiviazione da xcode, ma per qualche motivo non vengono eseguiti durante l'archiviazione dalla riga di comando. Innanzitutto perché?
Qui ci sono gli script che stanno lavorando (se forma l'archiviazione xCode)
Quando l'archiviazione e la creazione dell'IPA dalla riga di comando che faccio (l'essenziale)
# Building
xcodebuild ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release clean build
# Creating IPA
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${PROJECT_BUILD_DIR}/${APPLICATION_NAME}.app" -o "${IPA_OUTPUT_PATH}/${APPLICATION_NAME}.ipa"
Funziona e crea un IPA ma nessuno degli script di fase di costruzione viene eseguito lasciando intatti sia il numero di revisione che il numero di versione.
Tutti i suggerimenti sono apprezzati!
AGGIORNAMENTO A CAUSA DI RISPOSTA di BDASH
Invece di fare una generazione pulita faccio una installazione come
xcodebuild install ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release
sarà infatti eseguito lo script predefinito (si può vedere nel numero di versione del progetto) senza errori durante l'installazione. Tuttavia l'IPA creato avrà una dimensione di ~ 300 byte (invece di ~ 10 MB) e non può essere installato su un dispositivo.
Costruire l'applicazione prima dell'installazione, cioè
# Building
xcodebuild clean build ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release
# Installing
xcodebuild install ARCHS="armv7 armv7s" ONLY_ACTIVE_ARCH=NO -workspace MyWorkspace.xcworkspace/ -scheme MyScheme CONFIGURATION_BUILD_DIR=${PROJECT_BUILD_DIR} -configuration Release
e quindi creando IPA comporterà un IPA con script di versione eseguito e di formato corretto MA non è possibile installare su un dispositivo. Cercando di metterlo su un dispositivo verrà visualizzato un messaggio di errore che indica
"Il programma" MyApp "non è stato installato sul dispositivo iPhone" My Device "perché si è verificato un errore sconosciuto."
Suppongo che se si sta costruendo dalla riga di comando, 'xcodebuild' presuppone anche che si stia eseguendo lo script da soli. Sembra un bug per me. –
Alla fine hai finalmente trovato una soluzione? – fatuhoku