問題の経緯
- 現行プロジェクトをUnity5に移行する際にiOSビルドで問題が発生した。
- ThirdPartyなプラグインやライブラリをそこそこ搭載していた。
- 原因がわかればなんてことはないけど、念のため解決方法を残しておく。
Unity5プラグインについての自分の認識
- ファイルをAssets/Plugins以下に置いた場合、Inspector上でプラグインの設定を行えるようになった。
- Assets/Plugins/iOSやAssets/Plugins/Androidなどの定型フォルダ名以下に配置すると、自動的に該当プラグインと認識する。(昔からの仕様)
詳細な症状
- XCode上でArchiveには成功するが、ipaファイル作成にて 「Codesign failed」 エラーが発生。
- CodeSign関連なので、真っ先にProvisioningFileを疑い、EnterPriseビルドでも試してみたが同じエラーが発生。
- ログを見ると、何故かCRIのprovisioningprofileを参照しているような記述を発見。
原因
- OSXエディター上の再生に必要なCRIプラグインの Assets/Plugins/cri_ware_unity.bundle ファイルの [Select platforms for plugin] が AnyPlatform に設定されていた事により、プロジェクトファイルに混入していた。
- 該当ファイルの入っているunitypackageをUnity5に直接Importしたが、設定はAnyPlatformだった。
対処法
- 該当ファイルの [Select platforms for plugin] を Editor に設定する。(他の解決方法が正しい場合はご教授ください!)
教訓
- Assets/Plugins直下にある"ファイル"は自動的に AnyPlatform に設定されるので、なるべく直下にファイルは置かない。(特にbundleファイルなどはUnity内で見るとフォルダの形をしているので気づきにくい・・・!)