※開発準備、申請まわりの情報をお探しの方はiOSアプリの開発準備と申請の手順まとめを参照ください。
自分名義ではないプロビジョニングプロファイルにてビルド/アーカイブしたファイルをエクスポートする方法。以前は簡単でしたが、最近のXcodeだと手間がかかるようになりました。以前から簡単に出来る方法を模索していたのですが、結局のところxcodebuildで実行する方法が確実のようで、備忘録も兼ねて書き留めておきます。
■前提条件
・先方名義の証明書とそれに紐づくプロビジョニングプロファイルを(先方名義ではない)自社Macにインポートした状態
・先方の開発者アカウントを知らない(UID/PWDを開示いただいていない)
→UID/PWDを開示いただいている場合はXcodeにアカウントを登録すればOKですので、このエントリーに書いてある手順は不要です
■手順
(1) 通常通りアーカイブを実行します
(2) アーカイブ終了後、Organizerにて当該アーカイブ・ファイルのパスを取得します
メニューからShow in FinderでFinderを開きます。
ここからパスを取得する方法はいくつかありますが、
このあとTerminalで作業しますのでTerminalにドラッグしてパスを表示し、そのパスをどこかにコピペして保持します。
(3) コマンドラインからエクスポートします
$ xcodebuild -exportArchive -archivePath [アーカイブファイルパス] -exportProvisioningProfile [プロビジョニングプロファイル名] -exportPath [出力ipaファイルパス]
コマンド、オプションの基本形は上記のとおりです。
[adsense]
ここでは、
・アーカイブファイルパス
/Users/***/Library/Developer/Xcode/Archives/2015-01-22/testapp\ 2015-01-22\ 21.53.xcarchive
・出力ipaファイルパス
testapp.ipa
・プロビジョニングプロファイル名
testapp
→(注意)testapp.mobileprovisionなら拡張子を外したtestapp(Xcode側の設定を見たほうが確実です!)
として実行例を載せます。
[bash gutter=”0″]
$ xcodebuild -exportArchive -archivePath /Users/***/Library/Developer/Xcode/Archives/2015-01-23/testapp\ 2015-01-23\ 15.43.xcarchive -exportProvisioningProfile testapp -exportPath testapp.ipa
2015-01-23 15:47:32.658 xcodebuild[8853:70352] [MT] PluginLoading: Required plug-in compatibility UUID ******* for plug-in at path ‘~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/InjectionPlugin.xcplugin’ not present in DVTPlugInCompatibilityUUIDs
..snip..
adding: Payload/testapp.app/testapp (in=1482464) (out=519625) (deflated 65%)
total bytes=9321690, compressed=7880629 -> 15% savings
]
Results at ‘/var/folders/xw/ys67g61173n0nbdqqv7ly4ch0000gn/T/*******/testapp.ipa’
Moving exported product to ‘testapp.ipa’
** EXPORT SUCCEEDED **
[/bash]
これで指定した出力場所にipaがエクスポートされます。