iOS app rejected due to IDFA in Facebook SDK

2019-02-17 11:29发布

问题:

Reasons Program License Agreement PLA 3.3.12

We found your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as required by the App Store Review Guidelines.

Specifically, section 3.3.12 of the iOS Developer Program License Agreement states:

"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."

Please check your code - including any third-party libraries - to remove any instances of:

class: ASIdentifierManager
selector: advertisingIdentifier
framework: AdSupport.framework

If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality.

To help locate the Advertising Identifier, use the “nm” tool. For information on the “nm” tool, open a terminal window and enter, “man nm.”

If you do not have access to the libraries source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.

I checked who uses IDFA through following command:

grep -r advertisingIdentifier .

I knew that Facebook SDK (3.1.1 version) uses this.

How can I solve this?

回答1:

The solution for me was that the facebook 3.20 SDK is indeed okay, but I had to remove the FBAudience framework that they include with the FacebookSDK.framework.

Once I removed the FBAudience framework, and ran

otool -L myAppName.app/myAppName

I no longer saw the AdSupport library bundled into my build, printed in the terminal like so:

/System/Library/Frameworks/AdSupport.framework/AdSupport


回答2:

If you do not find a way to remove the usage of IDFA from the Facebook SDK, then another solution would be to say you're using the IDFA to attribute the installation to a previously served ad (which is actually fairly simple to enable in the Facebook SDK).

This option should be available to you when creating a new build in iTunesConnect if I remember correctly.



回答3:

This issue has been taken care by Facebook in their latest versions. Update your Facebook sdk to the latest version and this will solve your problem.