XCode Tools CLIのバージョンアップとビルドに必要なパラメータ、権限の変化について
お仕事の都合で古いOSに対してもXCode Tools CLIを使ってビルドする必要があって調べてみても要領を得なかったんだけど少しわかった気がするので、わかったところまで整理してみます*1。
アプリとして実機やシミュレータにインストールできるファイルの種類について
説明 | |
---|---|
.app | xcrun simctl を経由して iPhone simulatorへインストールできる。 xcodebuild build コマンドやXCodeでシミュレータへ向けてビルドすることで作成可能 |
.ipa | アプリストアへリリースしたり、実機へデプロイするときに作成する必要があるファイル形式。 .app や .xcarchive ファイルから開発者の証明書を何らかの形でアタッチするようなプロセスを経て作成 |
参考
- https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html
- https://qiita.com/HIkaruSato/items/a8d633d1b42c00b5722d
XCode7時代の .ipa 作成方法とXCode8時代の .ipa 作成方法
- XCodeが7の頃は
.ipa
作成に関して.app
ファイルを渡せばxcrun
のPackageApplication
がうまくやってくれていた - XCode8.3. で
PackageApplication
が廃止されてしまった- XCode8.3.2 を使う場合
xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH
というメッセージが出るようになっている
- XCode8.3.2 を使う場合
- このため、
xcrun PackageApplication
の代わりにxcodebuild archive
を使う必要があるxcodebuild
で.xcarchive
を作成した後、.ipa
を作成する際にexportProvisioningProfile
などを自分で設定する必要がある- これの具体的なパス (SampleXXX的なノリなのではなく 'MyMobileApp Distribution Profile' みたいなのりでファイル名などが想像しにくい例が多い) がよくわからなくてつらい
参考
XCode 8.2 -> XCode 8.3 で Automatically manage signing
が有効になっているプロジェクトにおいて .ipa
へのエクスポートが失敗するように
- [試せていない]
exportOptions.plist
のmethod
の値がdevelopment
でない場合、XCodeでビルドしているときに、ログインしているアカウントがAdmin
でない場合、、証明書(開発者登録. キーチェーンに登録している) とProvisioning Profile
(開発者とappIdに紐づいている) が揃っていても権限がたりなくて export に失敗する- [試せていない] CI用にadminにする?
- [試せていない]
xcodebuild -exportArchive -exportOptionsPlist /PATH/exportOptions.plist
で指定するexportOptions.plist
のmethod
の値をdevelopment
にすればうまくいくかも?
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>method</key> <string>development</string> <key>teamID</key> <string>GLPGBQ39X8</string> </dict> </plist>
参考
どうすればいいかわかったら今後追記しますが、詳しい人教えて欲しい感じです。
*1:上長許可あり