Unityで作ったiOSアプリにObj-CでPush通知を載せてみた

はじめに

Unityから生成してiOSアプリを作る場合、Google AnalyticsやPush通知などサードパーティが提供するモジュールが、
Unityにまで対応していない、ということはよくあります。

また、これを書いている今現在のUnity最新版(4.5.5f1)にはiOS8に対応しているようなメソッドが見つからなかったので

Unity本体に変更が入るたびに出力したiOSのProjectファイルに修正を入れることに疑問を感じて対応してみました。

 

※証明書の作成や、provisioing Fileなどの出し方は特に変わったことをしていませんので割愛しています。 

 

 環境

Unity  Version 4.5.5f1

Xcode 6.1

Mac OS X Marvelicks

 

送信側:PyAPNs

https://github.com/djacobs/PyAPNs 

 

実装:Unity

UnityのPlugin機能を使います。

Assetsの配下にPlugins, iOSとフォルダを作成し

 *  MyAppDelegate.h

 *  MyAppDelegate.mm

上記二つのファイルをドラッグ & ドロップなどで追加します。

 

スクリーンショット 2014-11-07 12.44.47

 MyAppDelegate.h

 

  MyAppDelegate.mm

 

File > Build Settings  

で  “Build”ボタンを押すとiOS用のProject ファイルが出力されます。設定は場合に合わせてください。

画面上では実機転送用に書き出しています。

※出されない場合はエラーを確認してみてください。

スクリーンショット 2014-11-07 14.19.18

  

実装:Xcode

出力したProjectファイルのLibrariesフォルダに追加した MyAppDelegate.mmファイルを見つけました。

変更がある場合はこちらのファイルを編集します。

 

スクリーンショット 2014-11-07 14.21.14

 

main.mmを編集して派生させたAppDelegateを呼び出すように修正します

main.mm

実機に転送して、通知を送ってみます。

送信方法はいろいろですが、個人的にはPyAPNsを使っています。

Screen Shot 2014-11-07 at 14.34.05  

 

参考URL

 

UnityのiOSでAppDelegateに処理を追加する

 

http://starzero.hatenablog.com/entry/2014/02/24/182646

 

さいごに

運用的に修正のたびに派生する作業は削らないと時間の無駄になることが多いので、調べて解決できることは結構あります。

知見を公開してくださっている技術者には感謝です。

 

 

 

●この記事を書いた人