中年エンジニアの開発と生活の日々

中年エンジニアがソフトウェア開発や日々の生活で得た知見の備忘録

XCode 9 で今までのプロビジョニングプロファイルが使えなくなったお話

XCode 9 がリリースされて、しばらく立ちますが、導入当初、プロビジョニングプロファイルが原因でパッケージングに失敗する問題に直面しましたので、その話を書こうと思います。

このお話は、CI サービスなどで fastlanne を使用していると遭遇する問題なのですが、あまり日本語の情報が無かったのでまとめてみました。

現象

fastlane で Adhoc 版を作成しようとすると以下のエラーメッセージが表示されて、ビルドに失敗します。

[13:49:15]: ▸ === BUILD TARGET MyApp OF PROJECT MyApp WITH CONFIGURATION Release ===
[13:49:15]: ▸ Check dependencies
[13:49:15]: ▸ Code Signing Error: Provisioning profile "XC iOS Ad Hoc: com.hogehoge.myapp" is Xcode managed, but signing settings require a manually managed profile.
[13:49:15]: ▸ Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 11.0'
[13:49:15]: 
[13:49:15]: ⬆️  Check out the few lines of raw `xcodebuild` output above for potential hints on how to solve this error

原因

自分の CI 環境では Fastlane を使用してビルドしていますが、fastlane はコードの自動署名に対応していないため、ビルドの際には一時的にプロジェクトのコード署名設定をマニュアルにしています。 XCode9 の xcode build は自動署名用のプロビジョニングプロファイルを手動で設定するとエラーにするように挙動が変わっていました。どうも XCode で作成したプロビジョニングプロファイルはそのままでは手動署名に使用できないようにしているようです。

そして、XCode で作成したプロビジョニングプロファイルかどうかはプロファイルの名称が XC から始まるかどうかで判定しているようです。

対応方法

本来ならプロビジョニングプロファイルを作成し直すのでしょうが、developer.apple.com のサイトでプロビジョニングプロファイルの名称を変更して XC をとれば、署名ができるようになりました。

まとめ

XC で始まる名称を持つプロビジョニングプロファイルは XCode9 ではマニュアル署名用に使用できなくなりました。 プロビジョニングプロファイルを作成し直すか、名称を変更して、XC から始まらない名称をつけてあげればビルドできるようになります。

なにかのお役に立てれば...