Reputation: 581
I'm submitting ios game to app store.
xcode gives me error Improper advertising identifier [IDFA] usage. Your app contains the Advertising Identifier [IDFA] API but you have not indicated its usage on the Prepare for Upload page in iTunes Connect.
How to fix this? Any help appritiated.
Upvotes: 57
Views: 46028
Reputation: 516
You need to modify the code on MixPanel.m If you are using it.
- (NSString *)defaultDistinctId
{
NSString *distinctId = nil;
if (NSClassFromString(@"ASIdentifierManager")) {
distinctId = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];
}
if (!distinctId) {
NSLog(@"%@ error getting ifa: falling back to uuid", self);
distinctId = [[NSUUID UUID] UUIDString];
}
if (!distinctId) {
NSLog(@"%@ error getting uuid: no default distinct id could be generated", self);
}
return distinctId;
}
to
- (NSString *)defaultDistinctId
{
return @"";
}
and Comment below lines on collectAutomaticProperties ,collectAutomaticProperties function
// if (NSClassFromString(@"ASIdentifierManager")) {
// [p setValue:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"$ios_ifa"];
// }
Upvotes: 0
Reputation: 2268
As a complete detailed answer to what @iDurocher said:
1. Make sure you have at least one active prerelease build after uploading your binary(choose prerelease then make sure that there is one clickable build, note that it takes time for processing maybe half an hour).
2. Get back to the Versions screen and select to add the uploaded build.
3. Press Submit for review now then you will be asked about the IDFA.
Upvotes: 1
Reputation: 915
The iTunesConnect site changed the workflow for when you handle this warning. You will need to upload your app with this warning (at least with XCode 5.1.1).
In iTunesConnect, you now select your build after uploading from XCode. After selecting the build, then clicking "Submit for Review", you will get the prompts you previously set when preparing for upload (specifically - "Advertising Identifier").
Upvotes: 6
Reputation: 141
-Reject the binary.
-Upload binary again.
-Check the option “Does this app uses the advertising identifier(IDFA)”
and you are done.
Upvotes: 0
Reputation: 1686
I had the same problem with Admob (GoogleMobileAds) SDK while validating the app with Xcode.
My solution was:
Distribute the app with Xcode to iTunes Connect
Turn off Adblock in Safari for the iTunes Connect page
The App was declared as invalid because of improper IDFA usage in iTunes Connect
I've got the "Prepare for Upload" Page again
I enabled the Advertising Identifier Usage on this page, et voila
Upvotes: 0
Reputation: 81
I had the same problem and I resolved uploading the app, despite the IDFA warning. Then, the IPA is rejected and you can start over, with "Prepare for Upload" page enabled. Make sure to check "Yes" in the section "Advertising Identifier" section of the page "Prepare for Upload".
Upvotes: 0
Reputation: 16124
Facebook iOS SDK
also uses IDFA. As I understand, one should use IDFA only for advertising purposes, according to info in iTunes Connect. I removed it, and it's ok now.
Upvotes: 0
Reputation: 305
I was also facing this warning while validating app with iTunes connect and I was using FacebookSDK.framework which was downloaded from Ref Link. In FBUtility.m I have commented below code and removed Adsupport.Frmaework
+ (NSString *)advertiserID {
NSString *advertiserID = nil;
Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
if ([ASIdentifierManagerClass class]) {
ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
advertiserID = [[manager advertisingIdentifier] UUIDString];
}
return advertiserID;
} to
+ (NSString *)advertiserID {
return @"";
}
and changed another function in same class FBUtility.m
+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {
if ([FBSettings restrictedTreatment] == FBRestrictedTreatmentYES) {
return AdvertisingTrackingDisallowed;
}
FBAdvertisingTrackingStatus status = AdvertisingTrackingUnspecified;
Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"];
if ([ASIdentifierManagerClass class]) {
ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
if (manager) {
status = [manager isAdvertisingTrackingEnabled] ? AdvertisingTrackingAllowed : AdvertisingTrackingDisallowed;
}
}
return status;
}
to
+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {
FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified;
return status;
}
I have removed that FacebookSDK.framework and downloaded Facebook framework from Ref Link . I have resolve this warning by using this way and I have uploaded app successfully.
And also see this stack question Link to avoid rejection, find and remove unwanted framework.
Upvotes: 6
Reputation: 1165
Everything has come to its usual state now. Simply upload your binary as you've been doing this while, and broadly classify IDFA in two categories:
publisher: You use third-party ad-networks library to display ad. Choose the 1st option in IDFA -> "Serve advertisements within the app". You're a publisher since you show ads, but do not perform advertising for your own app.
Advertiser: You use third-party libraries to track conversions for your app, as well as track 'goals' in your app. You directly do not show ads in your app. Choose the 2nd & 3rd option in IDFA -> "Attribute this app installation to a previously served ad". AND "Attribute an action taken within this app to a previously served advertisement".
Mixed: You track conversions for your app, as well as display ads in your app. Choose all three options.
Upvotes: 43
Reputation: 369
You have to check "Yes" on the Prepare for Upload page:
But when you checked "No", you are stuck with this new version on iTunes Connect and cannot reenter the Prepare for Upload page or delete your new version.
At the moment it seems like your app is locked forever on the old version when this error occurs. Apple has to fix this!
Upvotes: 22
Reputation: 1713
If you select "Yes" for the IDFA in the iTC upload page, be sure to have your AdBlocker switched off in Safari preferences, else you will get the error "You must select how your App uses the IDFA", when you click "Continue", but giving you no option to select that usage.
If your adblocker is switched off and everything works as it should, the HTML page rolls out to show options to select, at the bottom.
Upvotes: 5
Reputation: 631
If the issue is only related to google analytics SDK for iOS, you can upgrade it: the new version remove dependencies from AdSupport Framework, and hence from IDFA.
Upvotes: 1
Reputation: 139
i have the same problem.
Our app just use googleAnalytics/googleMaps libraries and TestFlight library. I'm stuck with a new version on itunes connect with NO flag on IDFA.
We cant remove this libraries because the app will not compile anymore right.
What's the solution? Just create an empty app with the same bundle id and version id, upload to itunes connect and then stop the publishing? Really?
Thanks :)
Upvotes: 2
Reputation: 101
According to this article, which profiled a publisher who shared what Apple told them after receiving the same issue.
Apple advised the publisher to check code, including third-party libraries, to remove any incidences of the following:
class: ASIdentifierManager
selector: advertisingIdentifier
framework: AdSupport.framework
I had the same problem, and searched for the above instances... i found a method with them in the Playhaven api, and after i commented that section out i didn't get the error again.
An update of the Playhaven api may have fixed this as well, but i'm not sure... i just opted for the 'quick fix.'.
Upvotes: 10
Reputation: 346
You can upload any application with the same bundleID. When you've done uploading, you can reject binary and next time you change status to Ready to Upload, don't forget check [IDFA].
Upvotes: 33
Reputation: 2044
You just need to upload any app with the same bundle id and no ad support then reject the binary and check the new ad options yes. Then you can submit your app without a problem.
Upvotes: 7
Reputation: 671
This worked for me right now.
by the way, enabling this option does not help us
Upvotes: 14