問題がある投稿を報告する個人的なことですが6月にUnityでのゲーム開発からUnityのスマホ向けプラグイン開発にジョブチェンジしました。プラグイン開発では、ゲーム開発者が使用しているUnityのバージョンや開発環境を広くサポートしないといけないのでUnityバージョンの仕様の違いやiOS,Androidの最新事情について敏感になりました。個人的に確認や対応が必要となった2016年のニュースを時系列でざっくりまとめてみました。Service9.0対応です。Service6.5未満はgoogle-play-services.jarを追加する必要がありました。Service全ての機能が追加されるため、メソッド数が65Kを超えAndroidでビルドできないケースがありました。Service6.5以降はモジュール単位の追加が可能に。GoogleからUnityでモジュール単位で追加するためのPlayServiceResolverというものが公開されました。Serviceですが2016年5月にリリースされた9.0では一部の機能がFirebaseに移行されたためパッケージ名の一部が異なっています。Messagingなどに変わっています。ServiceとFirebaseは2017年からAndroid14(4.0)以上のサポートとなるようです。これが理由で今後Android2系Android3系のサポートはぐっと減ると思われます。2016年6月1日から全てのiOSでIPv6サポートを義務化https://developer.apple.com/news/?id=05042016aAppleが義務化ということは破ったら審査が通らなくなるよということで必須の対応です。こちらは5月10日にUnityが旧バージョン含むサポートを告知しました。Unity5.4リリース!https://blogs.unity3d.com/jp/2016/07/28/unity-5-4-is-out-heres-whats-in-it/https://unity3d.com/jp/unity/whats-new/unity-5.4.0夏真っ盛りのときにUnity5.4リリース。シネマティックイメージエフェクトやらVR対応やら。そんな中モバイル系で確認や対応が必要な変更は主に以下だと思います。UnityPlayerProxyActivityについて説明します。空のUnityプロジェクトをAndroid向けにexportするとソースファイルは以下の3つになります。AndroidManifestとソースコードを見ると、以下のどれかのActivity上でUnityアプリが動作していることがわかります。UnityPlayerActivityとUnityPlayerNativeActivityの主な違いは継承しているのがActivityかNativeActivityかです。UnityPlayerProxyActivityはその名の通りProxyの役割をしていて、条件によってどちらかを起動させています。}}Unity4.xではUnityPlayerNativeActivityをデフォルトに、Unity5.xではUnityPlayerActivityをデフォルトに動作させています。Unity5.4からUnityPlayerNativeActivityは空クラスとなり動作しなくなりました。Native連携のプラグインなどを導入している場合、AndroidManifestのActivity呼び出し箇所にUnityPlayerNativeActivityを使用しているとアプリが落ちます。プラグイン提供者は使用者のUnityバージョンによってサポートするActivityを切り替えなければいけないのでお気をつけて。AndroidでProjectをexportして運用しているチームもUnity5.4に上げる際は上記気をつけてください。セキュリティ面の向上を推進している印象です。将来的にiOSのATSのように必須になったときのために、以下セキュリティ周りの記事は読んでおいて損はないと思います。iOS10リリース!iOS9でATS対応に追われたのが2015年のことでした。その時ほどではありませんが、今回もいろいろな罠があるので一部を紹介します。iOS10でATSの仕様変わった問題ATSの適応で、NSAllowsArbitraryLoadsInWebContentなど一部追加,変更がありました。対応の際には、はてな開発者ブログ様の以下記事を参考にさせていただきました。Loaderを使用している方は多いと思います。XCode8では上の画像から起動できる最新版を使用しないと提出時にエラーを吐くようです。Loader3.0でエラーを確認しました。XCode8にしてアプリを提出するとNS*UsageDescriptionに関するメールくる問題XCode8でビルドする場合、上記のようにカメラやカレンダーなど一部の機能を使う際にInfo.plistにPrivacyの記述がないと審査時にリジェクトされます。審査提出後に発覚する問題なのでこちら要注意です。Unity5.5リリース!https://blogs.unity3d.com/jp/2016/11/29/unity-5-5-is-ready-for-you/https://unity3d.com/jp/unity/whats-new/unity-5.5.05.4から5.5の間隔が短い!個人的にUnity5.4からUnity5.5の移行がスムーズに済んでしまったのと調査不足のため注意点など挙げられません。言うならUnity5.5からAndroidのビルドシステムの項目ができてGradleが指定できるようになりました。Studioのフォルダ構成で出力されるようになりました。(これまではeclipse向けのフォルダ構成でした)感想スマホのプラグイン開発目線でざっくりまとめましたが振り返るとUnityやモバイルのバージョンアップは速い..!そしてiOS対応は対応が多く毎度何かが削られる気がします。去年まではUnityやってたけど今年は他の仕事やってた的な人がこの記事で浦島状態になるのを避けられれば本望です。来年はきっとATS本対応で慌てそうなので今年の対応は今年のうちにぜひ。おわり個人的なことですが6月にUnityでのゲーム開発からUnityのスマホ向けプラグイン開発にジョブチェンジしました。プラグイン開発では、ゲーム開発者が使用しているUnityのバージョンや開発環境を広くサポートしないといけないのでUnityバージョンの仕様の違いやiOS,Androidの最新事情について敏感になりました。個人的に確認や対応が必要となった2016年のニュースを時系列でざっくりまとめてみました。Service9.0対応です。Service6.5未満はgoogle-play-services.jarを追加する必要がありました。Service全ての機能が追加されるため、メソッド数が65Kを超えAndroidでビルドできないケースがありました。Service6.5以降はモジュール単位の追加が可能に。GoogleからUnityでモジュール単位で追加するためのPlayServiceResolverというものが公開されました。Serviceですが2016年5月にリリースされた9.0では一部の機能がFirebaseに移行されたためパッケージ名の一部が異なっています。Messagingなどに変わっています。ServiceとFirebaseは2017年からAndroid14(4.0)以上のサポートとなるようです。これが理由で今後Android2系Android3系のサポートはぐっと減ると思われます。2016年6月1日から全てのiOSでIPv6サポートを義務化https://developer.apple.com/news/?id=05042016aAppleが義務化ということは破ったら審査が通らなくなるよということで必須の対応です。こちらは5月10日にUnityが旧バージョン含むサポートを告知しました。Unity5.4リリース!https://blogs.unity3d.com/jp/2016/07/28/unity-5-4-is-out-heres-whats-in-it/https://unity3d.com/jp/unity/whats-new/unity-5.4.0夏真っ盛りのときにUnity5.4リリース。シネマティックイメージエフェクトやらVR対応やら。そんな中モバイル系で確認や対応が必要な変更は主に以下だと思います。UnityPlayerProxyActivityについて説明します。空のUnityプロジェクトをAndroid向けにexportするとソースファイルは以下の3つになります。AndroidManifestとソースコードを見ると、以下のどれかのActivity上でUnityアプリが動作していることがわかります。src="https://qiita-image-store.s3.amazonaws.com/0/19692/80fa355b-cf90-23c0-45e3-856a689ceb76.png">UnityPlayerActivityとUnityPlayerNativeActivityの主な違いは継承しているのがActivityかNativeActivityかです。UnityPlayerProxyActivityはその名の通りProxyの役割をしていて、条件によってどちらかを起動させています。null)intent.putExtras(extras);startActivity(intent);}}```Unity4.xではUnityPlayerNativeActivityをデフォルトに、Unity5.xではUnityPlayerActivityをデフォルトに動作させています。Unity5.4からUnityPlayerNativeActivityは空クラスとなり動作しなくなりました。Native連携のプラグインなどを導入している場合、AndroidManifestのActivity呼び出し箇所にUnityPlayerNativeActivityを使用しているとアプリが落ちます。プラグイン提供者は使用者のUnityバージョンによってサポートするActivityを切り替えなければいけないのでお気をつけて。AndroidでProjectをexportして運用しているチームもUnity5.4に上げる際は上記気をつけてください。セキュリティ面の向上を推進している印象です。将来的にiOSのATSのように必須になったときのために、以下セキュリティ周りの記事は読んでおいて損はないと思います。iOS10リリース!iOS9でATS対応に追われたのが2015年のことでした。その時ほどではありませんが、今回もいろいろな罠があるので一部を紹介します。iOS10でATSの仕様変わった問題ATSの適応で、NSAllowsArbitraryLoadsInWebContentなど一部追加,変更がありました。対応の際には、はてな開発者ブログ様の以下記事を参考にさせていただきました。Loaderを使用している方は多いと思います。XCode8では上の画像から起動できる最新版を使用しないと提出時にエラーを吐くようです。Loader3.0でエラーを確認しました。src="https://qiita-image-store.s3.amazonaws.com/0/19692/1e7fa8da-0a64-d9eb-bca2-155c03d3fa22.png">XCode8でビルドする場合、上記のようにカメラやカレンダーなど一部の機能を使う際にInfo.plistにPrivacyの記述がないと審査時にリジェクトされます。審査提出後に発覚する問題なのでこちら要注意です。Unity5.5リリース!https://blogs.unity3d.com/jp/2016/11/29/unity-5-5-is-ready-for-you/https://unity3d.com/jp/unity/whats-new/unity-5.5.05.4から5.5の間隔が短い!個人的にUnity5.4からUnity5.5の移行がスムーズに済んでしまったのと調査不足のため注意点など挙げられません。言うならUnity5.5からAndroidのビルドシステムの項目ができてGradleが指定できるようになりました。Studioのフォルダ構成で出力されるようになりました。感想スマホのプラグイン開発目線でざっくりまとめましたが振り返るとUnityやモバイルのバージョンアップは速い..!そしてiOS対応は対応が多く毎度何かが削られる気がします。去年まではUnityやってたけど今年は他の仕事やってた的な人がこの記事で浦島状態になるのを避けられれば本望です。来年はきっとATS本対応で慌てそうなので今年の対応は今年のうちにぜひ。送信いただいたご意見への返信は行っておりません。お問い合わせください。