web-dev-qa-db-fra.com

Comment puis-je déployer (créer un fichier .ipa) pour iPhone en utilisant «cordova build ios - release»?

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?

53

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.

68
Dave Burt

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

43
jcesarmobile

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 :)

5

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.

1
Joel Chu