Posted at

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内で見るとフォルダの形をしているので気づきにくい・・・!)