Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

また挙動が変わった…

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が入り乱れる環境には超おすすめです。

MARQUE
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした