web-dev-qa-db-ja.com

「cordova build ios --release」を使用してiPhoneアプリを展開(.ipaを作成)するにはどうすればよいですか?

そこに documentation を使用して、cordovaで 'helloworld' iOSアプリを作成しました。 cordova emulate iosを実行すると、アプリが正常に実行されます。私ができないのは、cordova build --releaseを実行するときにデプロイしているときです。 .ipaファイルは作成されません。私が見つけたのは、Helloworld.buildディレクトリにあるPROJECT_ROOT/platforms/ios/buildファイルだけです。ここに何かが足りませんか?

53

私は私のために働いたこのコマンドを見つけました:

cordova build ios --device
cd platforms/ios/build/device
/usr/bin/xcrun -sdk iphoneos PackageApplication "$(pwd)/$PROJECT_NAME.app" -o "$(pwd)/$PROJECT_NAME.ipa"

ソース: http://www.splinter.com.au/xcode-4-command-line-builds-of-iphone-apps/

@MDを実行しました。 Mohiuddin AhmedのRubyスクリプトが最初で、これによりxcodeprojファイルが変更されていました。それが必要かどうかはわかりませんが、そうは思いません。

XCode 8の更新:コメント者が述べたように、PackageApplicationはXCode 8から削除されました。プロセスを更新するには、質問を参照してください。 XcodeのPackageApplicationの代替品は何ですか?

コメントで示唆されているようにcordova buildコマンドを追加することでプロセスを明確にするために編集されました。

68
Dave Burt

Cordova ios 3.9.0以降を使用している場合、このコマンドを使用して、追加のコマンドなしでCLIから直接.ipaを作成できます。

cordova build ios --device --release

プロジェクトのルートにbuild.jsonファイルが必要になります

{
  "ios": {
    "debug": {
      "codeSignIdentity": "iPhone Developer",
      "provisioningProfile": "your-dev-provisioning-profile-UUID-here"
    },
    "release": {
      "codeSignIdentity": "iPhone Distribution",
      "provisioningProfile": "your-distribution-provisioning-profile-UUID-here"
    }
  }
}

UUIDを取得するには、テキストエディターで.mobileprovisionファイルを開いて「UUID」を検索しますが、それを見つける簡単な方法があるかどうかはわかりません。

Xcode 8を使用している場合、build.jsonにはdevelopmentTeamフィールドとpackageTypeフィールドが必要ですが、プロビジョニングプロファイルは不要になります。また、codeSignIdentityは両方に対してiPhone Developerデバッグとリリース:

{
    "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

xcodeproj 、xcode、およびこのRubyスクリプトを使用して、これを自動化する方法を最終的に見つけました。

require 'xcodeproj'
xcproj = Xcodeproj::Project.open("HelloWorld.xcodeproj")
xcproj.recreate_user_schemes
xcproj.save

そして、PROJECT_ROOT/platforms/ios/ディレクトリで、このコマンドは*.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

ipaに後で署名できると思った:)

5

http://fir.im から新しいツールを試すことができます。

彼らはRubyで書かれたfir cliツールを持っています。次のコマンドでインストールできます:

Sudo gem install fir-cli --no-ri --no-rdoc

アカウントにサインアップし(古き良きテストフライトのようにすべて無料)、プロファイルからトークンを取得します。コマンドプロンプトから次を実行します。

fir login

トークンを提供してください。

.xcodeprojがあるディレクトリにCDを挿入します。

fir build_ipa . 

しばらくすると(ビルドが成功した場合)、。/ build_ipaフォルダーにipaが見つかります。

1
Joel Chu