J'ai créé une application iOS 'helloworld' avec cordova
à l'aide de documentation . L'application s'exécute correctement lorsque j'exécute cordova emulate ios
. Ce que je ne peux pas faire, c'est lors du déploiement lorsque j'exécute cordova build --release
. Il ne crée aucun fichier .ipa
Ici. Tout ce que je trouve est un fichier Helloworld.build
Dans le répertoire PROJECT_ROOT/platforms/ios/build
. Est-ce que j'ai râté quelque chose?
J'ai trouvé cette commande qui a fonctionné pour moi:
cordova build ios --device
cd platforms/ios/build/device
/usr/bin/xcrun -sdk iphoneos PackageApplication "$(pwd)/$PROJECT_NAME.app" -o "$(pwd)/$PROJECT_NAME.ipa"
Source: http://www.splinter.com.au/xcode-4-command-line-builds-of-iphone-apps/
J'ai couru @MD. Le script Ruby de Mohiuddin Ahmed en premier, qui aurait changé mon fichier xcodeproj. Je ne sais pas si c'était nécessaire mais je ne le pense pas.
Mise à jour pour XCode 8 : Comme un intervenant l'a noté, PackageApplication
a été supprimé de XCode 8. Pour mettre à jour le processus, voir la question : Quel est le remplacement de PackageApplication de Xcode?
Édité pour clarifier le processus en ajoutant la commande cordova build
Comme suggéré par les commentaires.
Si vous utilisez cordova ios 3.9.0 ou une version plus récente, vous pouvez utiliser cette commande pour créer le fichier .ipa
directement à partir de la CLI sans commandes supplémentaires:
cordova build ios --device --release
Vous aurez besoin d'un build.json
fichier sur la racine de votre projet
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"provisioningProfile": "your-dev-provisioning-profile-UUID-here"
},
"release": {
"codeSignIdentity": "iPhone Distribution",
"provisioningProfile": "your-distribution-provisioning-profile-UUID-here"
}
}
}
Pour obtenir l'UUID j'ouvre le .mobileprovision
fichier sur un éditeur de texte et recherchez "UUID" sans savoir s'il est plus facile de le trouver.
Si vous utilisez Xcode 8, le build.json
a besoin de developmentTeam
champ et de packageType
champ, mais n’a plus besoin du profil de provisioning, le codeSignIdentity
doit être iPhone Developer
pour le débogage et la publication:
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "development"
},
"release": {
"codeSignIdentity": "iPhone Developer",
"developmentTeam": "FG35JLLMXX4A",
"packageType": "app-store"
}
}
}
http://cordova.Apache.org/docs/en/6.x/guide/platforms/ios/index.html#using-buildjson
J'ai enfin trouvé un moyen d'automatiser cela en utilisant xcodeproj , xcode et ceci Ruby script:
require 'xcodeproj'
xcproj = Xcodeproj::Project.open("HelloWorld.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save
Et puis dans le PROJECT_ROOT/platforms/ios/
répertoire cette commande m'a aidé à générer mon *.ipa
:
xcodebuild -project HelloWorld.xcodeproj -exportArchive -exportFormat ipa -archivePath $(pwd)/HelloWorld.xcarchive -exportPath $(pwd)/HelloWorld.ipa CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO -alltargets -configuration Release
Nous pensions pouvoir signer notre. ipa plus tard :)
Vous pouvez essayer un nouvel outil à partir de http://fir.im .
Ils ont un outil Fir Cli écrit en Ruby. Vous pouvez l'installer avec la commande suivante:
Sudo gem install fir-cli --no-ri --no-rdoc
Ouvrez un compte (tout comme le bon vieux testflight) et obtenez un jeton de votre profil. À partir de votre invite de commande, exécutez:
fir login
Fournissez votre jeton.
CD dans votre répertoire où se trouve votre .xcodeproj.
fir build_ipa .
Après un certain temps (si la construction réussit), vous trouverez votre ipa dans votre dossier ./build_ipa.