fc2ブログ
 
■プロフィール

クリエイトウェーブ

Author:クリエイトウェーブ
開発における、諸々を書いていきたいなと思っています。
mail : info@createwave.jp

■最近の記事
■カテゴリー
■最近のコメント
■月別アーカイブ

■最近のトラックバック
■ブログ内検索

■RSSフィード
■リンク
「Unity5」×「gree/unity-webview」×「iOS」×「Codesign Failed」
Unityで開発しているiOS/Android向けアプリにWebViewを実装しようと
greeさん公開のプラグインを使用しました。
いちばんハマった所は

UnityからのBuildおよびXcodeのArchiveまでは正しく動作するのに
AdHoc書き出しを試みると“Codesign Failed”が出て失敗すること


です。

まず「Codesign Failed」と言う事で証明書関連のエラーだと思い込み
キーチェーンアクセスやApple Member Center、Xcodeの設定ばかり見ていました。
しかし、OSXやXcodeを最新にアップデートしても一向に解決せず
試しに以前ArchiveしたものをAdHoc書き出しすると無事成功するという結果に。

この時点で、証明書そのものが直接の原因ではなく
Unity側かXcode側に実装・設定した項目を疑うことにしました。
ここで見つけた記事にヒントが隠されていました。
http://qiita.com/altemina/items/6823331aa5c9a3044e92

Assets/Plugins/****.bundleのプロビジョニングを参照しにいっているとのこと。
なるほど、これなら“Codesign Failed”が出るのも納得できます。
今回、WebView.bundleというファイルが該当していたので、こいつが原因のようです。

記事の通り、Select platforms for pluginをEditorに設定し直して
再度Buildしたところ、解決せず……(※)

ここでもうひとつ思い出しました。
WebView.bundleは、64bit対応させるために私が再書き出しした物だったのです。
http://qiita.com/kwst/items/193bf1aa737cb3810ad9

ということは、証明書やプロビジョニングは同じCreatewave製の
はずなのですが……ますます分からなくなってきました。

最後に気付いた事実によってようやく解決しました。
このWebView.bundleが、何故Assets/Plugins/直下にあるのだろうという事です。
iOS用のPluginならiOSフォルダ内に含めるはずなので
疑問に思って調べた所、どうやらMacOS用のPluginであることが判明しました。
ということは、今回iOS/Android向けのため、不要なファイルだったと言う事です!

http://qiita.com/kwst/items/193bf1aa737cb3810ad9
を参考に作業していて、Unity上でのWebViewの動作は
諦めていた私にとっては不要だったのです。

<解決方法>
Unity上からWebView.bundleを削除します。
するとWebViewObject.csがエラーを吐いてしまうので
プリプロセッサでUNITY_EDITORを完全無視するように書き換えます。

before:
#if UNITY_EDITOR || UNITY_STANDALONE_OSX

after:
#if UNITY_EDITOR
#elif UNITY_EDITOR || UNITY_STANDALONE_OSX

あとXcodeのCopy Bundle Resourcesから
WebView.bundleを含めないよう設定する
事を忘れないように。
これでめでたくAdHoc書き出しが成功するようになりました。


(※)
これは、XcodeのCopy Bundle Resourcesに
WebView.bundleの設定が残っていたためだと思われます。
UnityのBuildは、Xcode側の設定を新たに追加することは自動で行いますが
今回のような.bundleの削除は対象外なのだと思われます。

カテゴリー:Unity | TM(0) | CM(2)
コメント
ありがとうございます。
まったく同じ部分で悩みまくってました。
どうしても解決できずUniWebViewを買うか迷ってるところこちらの記事をみつけて解決しました。
ありがとうございました。
2015-08-24 月 11:04:50 | URL | 開発K [編集]
同様の問題で困っていました。ありがとうございます。
解決策についてですが、WebView.bundleのInspectorでAny Platformを外せばソース変更なく解決できました。
2015-10-01 木 16:23:44 | URL | [編集]
コメントの投稿

管理者にだけ表示を許可する