Unity SDKを使ってiOS向けにビルドを行うとプッシュ通知機能が含まれた状態でコードが生成されます。プッシュ通知を使われる方であれば問題ありませんが、不要という方や、開発者登録していないので実機検証できないという方もいるでしょう。
そこで今回はUnity SDKからプッシュ通知機能に関するコードを取り除く方法を紹介します。
ファイルを削除する
まずプッシュ通知に関するファイルを削除します。対象は以下の2つです。
- NCMB/Script/NCMBPush.cs
- NCMB/Script/Task/NCMBPushTaskExtension.cs
コードを変更する
コードの変更点は意外と多いです。細かくは説明しませんが、下記部分をコメントアウトします。
NCMB/NCMBManager.cs
void Update () { /* if (UnityEngine.iOS.NotificationServices.remoteNotificationCount > 0) { ProcessNotification (); NCMBPush push = new NCMBPush (); push.ClearAll (); } */ }
/* void ProcessNotification () { : 省略 } */
NCMB/NCMBSettings.cs
usePushのif文をまるごとコメントアウトします。
// Register /* if (usePush) { : } */
NCMB/Script/NCMBAnalytics.cs
UnityEngine.iOS.NotificationServices の処理部分は不要です。
/* #if UNITY_IOS UnityEngine.iOS.NotificationServices.ClearRemoteNotifications (); #endif */
NCMB/Script/NCMBQuery.cs
プッシュ通知に関係するif文の判定が不要です。
/* } else if (resultClassName.Equals ("push")) { obj = new NCMBPush (); */
NCMBPushに関わる部分は不要です。
/* } else if (pair.Value is NCMBQuery<NCMBPush>) { NCMBQuery<NCMBPush> query = (NCMBQuery<NCMBPush>)pair.Value; Dictionary<string , object> realData = query._getFindParams (); realData ["where"] = realData ["where"]; jsonAfter [pair.Key] = realData; */
こちらもif文が不要です。
/* } else if (className.Equals ("push")) { // プッシュ検索API url = new NCMBPush ()._getBaseUrl (); */
この状態でビルドを行うと、Xcodeで見た時にCapabilitiesにプッシュ通知が入らなくなります。これでプッシュ通知以外の機能だけを使ったアプリ開発を行えるはずです。
まとめ
今回の方法ではUnity SDKをバージョンアップした際にはもう一度行わなければならなかったり、別な不具合を起こす可能性があります。あくまでも自己責任での適用をお願いします。
Unity SDKを使っていて何か問題、質問があればコミュニティまでお寄せください。
NIFCLOUD-mbaas/UserCommunity: ニフクラ mobile backend ユーザーコミュニティ