Unity
CRI

Unity5におけるPluginの扱いについての注意点

More than 3 years have passed since last update.

問題の経緯

  • 現行プロジェクトを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内で見るとフォルダの形をしているので気づきにくい・・・!)