受託開発などでプロビジョニングプロファイルを受領してアーカイブしたファイルをxcodebuildコマンドでエクスポートする方法

投稿者: | 2015年1月23日
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

※開発準備、申請まわりの情報をお探しの方は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がエクスポートされます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください