強火で進め

このブログではプログラム関連の記事を中心に書いてます。

Unity 開発者が IDFA リジェクト問題に対応する方法

IDFA(Identification For Advertisers)はSDK的には以下のものに当たります。

[ASIdentifierManager sharedManager].advertisingIdentifier

詳しくはこちらを参照下さい。

iOS 7時代のUDID(UUID)取得方法 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20130930/1380544326

この IDFA の値を広告を使って無いにも関わらず取得しているアプリがリジェクトされたという事例が出ている様です。

Apple Rejecting Apps For Not Showing Ads
http://blog.tapstream.com/post/75322632058/apple-rejecting-apps-for-not-showing-ads

因みに上記の記事で出て来た様な広告用途以外でUUIDが取得したい場合には別途準備されている以下のメソッドを使いましょう。

[UIDevice currentDevice].identifierForVendor;

なお、Unityも現在のバージョンでは広告を使ってない時にも IDFA から値を取得する処理が含まれているXcodeプロジェクトが生成されてしまう仕様みたいです。その為、Unityもこの問題に該当します。

しかし、一応対応方法が有るみたいです。詳しくはこちら(※Unityの中の人の投稿です)。

iOS Advertising Identifier rejection FAQ
http://forum.unity3d.com/threads/226187-iOS-Advertising-Identifier-rejection-FAQ

簡単に解説しておきます。

1. 生成されたXcodeプロジェクトから DeviceSettings.mm を探し、開く。
2. a) に記述されいる関数と b) に記載されている変数を削除。
3. c) に記載されている部分を書き換え。

Unityの新しいバージョンがリリースされた時には対応されるでしょうがそれまではこの方法で対応する様にしましょう。