3
4

More than 5 years have passed since last update.

Xcode9にしたらProvisioningProfileが埋め込まれなくなって困った話

Posted at

また挙動が変わった…

Xcodeがバージョンアップするたびに悩まされている気がするんですが、iPhone Xに対応するのにXcode 9に更新したところ、ローカルでビルドして転送する分には問題ないものの、AdHoc用にコードサインするとProvisioningProfileが埋め込まれなくなってしまい、ちょっと困りました。

正直、何か効いてうまく行くようになったのかよく分からないんですが、どういう引数でコマンドを呼んでいるのかを書いておきますので、同じ問題にぶち当たった方は比較して参考にしてくださいませ。

build.sh
xcodebuild -target Unity-iPhone -configuration Debug -scheme Unity-iPhone -archivePath HogeApp.xcarchive archive CODE_SIGNING_ALLOWED=NO ENABLE_BITCODE=NO
xcodebuild -exportArchive -archivePath HogeApp.xcarchive -exportPath . -exportOptionsPlist HogeApp_ExportOptions.plist
HogeApp_ExportOptions.plist
<?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>ad-hoc</string>
    <key>teamID</key>
    <string>**********</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>com.hoge.hogeapp</key>
        <string>HogeApp_Dev</string>
    </dict>
    <key>signingCertificate</key>
    <string>iPhone Distribution</string>
    <key>signingStyle</key>
    <string>manual</string>
</dict>
</plist>

考察

plistのprovisioningProfiles以下を指定していなかった(manualにしてなかった)のが原因だと思うんですが、Xcode8ではそもそも指定しなくても動いてたところが謎です。"Automatically manage signing"はXcode8から導入されたはずなんですが、Xcode9からさらに挙動が変わったりしたんですかね?

で、provisioningProfilesのkeyはBundleIdでいいとして、stringがよく分からない。実は自分は取引先からmobileprovisionファイルを受け取って埋め込んでいるだけなので、Develperサイトで証明書の詳細を調べることもできず、ここが最下層プログラマの辛いところであります…。ただ、ProvisionQLで上部に表示される名前がどうもそれっぽいので採用(当たり)。

あと、CODE_SIGNING_ALLOWED=NO と ENABLE_BITCODE=NO はいらないような気もするのだけど、暇なときに要調査。

最後に

追求しきれてないのに記事にするのも申し訳ないのですが、問題解決のヒントになりましたらということで…。

ご参考

ProvisionQL
https://github.com/ealeksandrov/ProvisionQL

mobileprovisionの中身を表示するQuickLookプラグイン。デバイス数がアイコンとして表示されたりもするので便利。ipaファイルに埋め込まれているmobileprovisionも表示できて、mobileprovisionが入り乱れる環境には超おすすめです。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4