1

As of the beginning of February, Apple has started rejecting mobile applications from the AppStore if they access the Advertising Identifier (IDFA) but do not serve ads while running.

Apple is enforcing clause 3.3.12 from their Developer Guidelines:

“You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier.”

Issue: ASIndentifierManager is referenced from FacebookSDK.a (Facebook SDK for Unity) and since our app is NOT showing any ads, we might get rejected. We just use Facebook for logging in and nothing else.

Anyone has idea how to remove ASIndentifierManager reference in the FB Unity library?

So far, I haven't found a solution for Facebook SDK for Unity regarding this issue. I saw this was already brought up in Facebook Developers Page but only for the iOS SDK and not for the Unity SDK. If I missed any link, please feel free to point it to me. Thanks.

Community
  • 1
  • 1
Psylocke
  • 543
  • 1
  • 3
  • 15

2 Answers2

0

I had such a problem. The only thing I can advise you is to download the source code of FacebookSDK and edit it as described in this post. After compilation, you will have the file with the resolution ".a". Then you will need to replace the file FacebookSDK.a (Assets/Facebook/Editor/iOS) to that which you have received in results of compilation.

p.s. sorry for english

Community
  • 1
  • 1
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – Sasa Nov 01 '14 at 11:08
0

The advertising identifier is referred by default by xcode in unity projects i.e. all xcode projects made from unity will have advertising identifier referred.

If your app is not showing ads, you need to modify some code from DeviceSettings.mm script of xcode.

1) Locate DeviceSettings.mm file in your Xcode project (you should find it under Classes/Unity/)

2) Make following modifications there:

a)Remove following functions: Code (csharp):

static id QueryASIdentifierManager()
{
<..>
}
static void QueryAdID()
{
<..>
}
static void QueryAdTracking()
{
<..>
}

b) Remove following declarations of variables: Code (csharp):

static NSString*    _ADID               = nil;
static bool         _AdTrackingEnabled  = false;

c) Modify implementations of following functions (replace with provided below): Code (csharp):

extern "C" const char*  UnityAdvertisingIdentifier()
{
return NULL;
}

extern "C" bool         UnityAdvertisingTrackingEnabled()
{
return false;
}

static void QueryDeviceID()
{
    if(_DeviceID == nil)
    {
    #if UNITY_PRE_IOS7_TARGET
        if(!_ios70orNewer)
            _InitDeviceIDPreIOS7();
    #endif

        // first check vendor id
        if(_DeviceID == nil)
        {
            QueryVendorID();
            _DeviceID = _VendorID;
        }
    }
}

You can refer to the following link:

http://forum.unity3d.com/threads/ios-advertising-identifier-rejection-faq.226187/

Also, after modifying your code, when you answer questions on itunes while submitting app, put "no" for the use of idfa.

  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. – Sasa Nov 01 '14 at 11:07