2016-08-22 1 views
0

J'utilise les fonctionnalités en mode arrière-plan (voip) pour mon application en mode XCode. Lorsque je crée l'application via XCode avec un profil d'approvisionnement qui est autorisé cette fonctionnalité - l'application fonctionne. Mais je construis mon application iOS de ligne de commande de la manière suivante:Comment puis-je obtenir des capacités XCode lors de la construction avec xcodebuild?

xcodebuild -workspace test.xcworkspace -scheme test -sdk iphoneos clean build archive -archivePath test.xcarchive 
xcodebuild -exportArchive -archivePath test.xcarchive -exportPath acc exportFormat ipa 

Lors de la construction d'un ipa de cette manière et l'installer sur l'iPhone du mode arrière-plan est voip pas actif dans l'application. Comment puis-je activer la fonctionnalité en mode Arrière-plan lors de la construction en ligne de commande avec xcodebuild?

Répondre

0

Apparemment la ligne "xcodebuild -exportArchive ..." a été dépréciée sans utiliser l'argument -exportOptionsPlist. J'ai donc créé un options.plist dans le même répertoire qui ressemblait à:

<plist version="1.0"> 
<dict> 
    <key>teamID</key> 
    <string>734KHEMHW2</string> 
    <key>method</key> 
    <string>development</string> 
    <key>uploadSymbols</key> 
    <true/> 
</dict> 
</plist> 

Avec mon ID d'équipe correspondante se trouve sur http://developer.apple.com.

ensuite utilisé la ligne suivante pour exporter vers ipa:

xcodebuild -exportArchive -exportOptionsPlist options.plist -archivePath test.xcarchive -exportPath . 

Et cela a créé avec succès le ipa avec des capacités de voip activées.

0

L'exécution de xcodebuild est basée sur la configuration de votre projet à l'aide de Xcode. Je suppose que vous avez déjà fait cela. En ce qui concerne les modes d'arrière-plan, vous devez également vous assurer que votre Info.plist (ou quel que soit votre nom) contienne UIBackgroundModes (c'est la clé brute) que vous voulez.

enter image description here

Lorsque vous construisez via xcodebuild, toutes les informations requises seront ramassées, à condition que votre projet est configuré correctement.

Plus d'informations sur l'exécution de fond est ici: https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

+0

Oui. Mon Info.plist contient: \t UIBackgroundModes \t \t \t voip \t user2010496

+0

Juste pour plus de clarté, vous pouvez également exécuter le même schéma de Xcode? Et êtes-vous sûr d'utiliser le même fichier d'approvisionnement? Des choses comme celle-ci nécessitent un peu de recherche. Cela implique généralement d'abord de comparer la sortie de construction de Xcode par rapport à la sortie de xcodebuild. Votre objectif serait vraiment sur la fin où la liaison/signature de code/etc se produisent. Si le résultat est le même, comparez le fichier de droits et le fichier plist dans chaque fichier .app. –