IT story

부적절한 광고 식별자 [IDFA] 사용

hot-time 2020. 12. 28. 22:01
반응형

부적절한 광고 식별자 [IDFA] 사용


iOS 게임을 앱 스토어에 제출하고 있습니다.

xcode는 부적절한 광고 식별자 [IDFA] 사용 오류를 표시합니다. 앱에 광고 식별자 [IDFA] API가 포함되어 있지만 iTunes Connect의 업로드 준비 페이지에 사용법을 표시하지 않았습니다.

이 문제를 해결하는 방법? 도움이 필요합니다.


동일한 bundleID로 모든 애플리케이션을 업로드 할 수 있습니다. 업로드가 완료되면 바이너리를 거부 할 수 있으며 다음에 업로드 준비 상태로 상태를 변경할 때 [IDFA]를 확인하는 것을 잊지 마십시오.


이제 모든 것이 정상 상태가되었습니다. 이 작업을하면서 바이너리를 업로드하고 IDFA를 두 가지 범주로 광범위하게 분류하십시오.

  1. 게시자 : 타사 광고 네트워크 라이브러리를 사용하여 광고를 표시합니다. IDFA-> "앱 내에서 광고 게재"에서 첫 번째 옵션을 선택합니다. 광고를 표시 한 이후 게시자이지만 자신의 앱에 대한 광고를 수행하지 않습니다.

  2. 광고주 : 타사 라이브러리를 사용하여 앱의 전환을 추적하고 앱의 '목표'를 추적합니다. 앱에 직접 광고를 표시하지 않습니다. IDFA에서 두 번째 및 세 번째 옵션-> "이 앱 설치를 이전에 게재 된 광고에 기여"를 선택합니다. 그리고 "이 앱 내에서 취한 조치를 이전에 제공 한 광고에 부여합니다."

  3. 혼합 : 앱에 대한 전환을 추적하고 앱에 광고를 표시합니다. 세 가지 옵션을 모두 선택하십시오.


업로드 준비 페이지에서 "예" 여기에 이미지 설명 입력를 선택해야 합니다. 그러나 "아니요"를 선택하면 iTunes Connect에서이 새 버전을 사용할 수 없으며 업로드 준비 페이지로 다시 들어가거나 새 버전을 삭제할 수 없습니다.

현재이 오류가 발생하면 앱이 이전 버전에서 영구적으로 잠겨있는 것 같습니다. 애플이이 문제를 해결해야합니다!


  1. 참조에서 Google Analytics 라이브러리 폴더를 제거합니다 (Google Analytics는 [IDFA]를 사용함).
  2. 참조에서 AdSupport Framework 제거
  3. 참조에서 iADSupport Framework 제거
  4. 다시 업로드 해보세요

이것은 지금 나를 위해 일했습니다.

그런데이 옵션을 활성화 해도 도움되지 않습니다.


기사 에 따르면 같은 문제를받은 후 Apple이 그들에게 말한 내용을 공유 한 게시자를 프로파일 링했습니다.

Apple은 게시자에게 타사 라이브러리를 포함한 코드를 확인하여 다음과 같은 경우를 제거하도록 권고했습니다.

클래스 : ASIdentifierManager

선택기 : AdvertisingIdentifier

프레임 워크 : AdSupport.framework

나는 똑같은 문제가 있었고 위의 인스턴스를 검색했습니다 ... 나는 Playhaven api에서 그들과 함께 메소드를 찾았고 그 섹션을 주석 처리 한 후 다시 오류가 발생하지 않았습니다.

Playhaven API 업데이트로도이 문제가 해결되었을 수 있지만 확실하지 않습니다. 방금 '빠른 수정'을 선택했습니다.


번들 ID가 같고 광고 지원이없는 앱을 업로드 한 다음 바이너리를 거부하고 새 광고 옵션을 확인하면됩니다. 그러면 문제없이 앱을 제출할 수 있습니다.


또한 iTunes connect로 앱을 확인하는 동안이 경고에 직면 여기에 이미지 설명 입력했고 Ref Link 에서 다운로드 한 FacebookSDK.framework를 사용하고있었습니다 . 에서 FBUtility.m 나는 코드를 제거 아래에 댓글을 달았 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;

} ~

+ (NSString *)advertiserID {

return @"";

}

동일한 클래스 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;

}

...에

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {

FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified;
return status;

}

FacebookSDK.framework를 제거하고 Ref Link 에서 Facebook 프레임 워크를 다운로드했습니다 . 이 방법을 사용하여이 경고를 해결했으며 앱을 성공적으로 업로드했습니다.

또한 거부를 방지하고 원하지 않는 프레임 워크를 찾아 제거하려면 이 스택 질문 링크참조하십시오 .


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


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.


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 :)


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.


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.


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.


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


I had the same problem with Admob (GoogleMobileAds) SDK while validating the app with Xcode.

My solution was:

  1. Distribute the app with Xcode to iTunes Connect

  2. Turn off Adblock in Safari for the iTunes Connect page

  3. The App was declared as invalid because of improper IDFA usage in iTunes Connect

  4. I've got the "Prepare for Upload" Page again

  5. I enabled the Advertising Identifier Usage on this page, et voila


-Reject the binary.

-Upload binary again.

-Check the option “Does this app uses the advertising identifier(IDFA)”

그리고 당신은 끝났습니다.


MixPanel.m을 사용하는 경우 코드를 수정해야합니다.

 - (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;

}

...에

- (NSString *)defaultDistinctId
{
       return @"";

}

그리고 collectAutomaticProperties, collectAutomaticProperties 함수에 대한 줄 아래 주석

//    if (NSClassFromString(@"ASIdentifierManager")) {
//        [p setValue:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"$ios_ifa"];
//    }

참조 URL : https://stackoverflow.com/questions/22979151/improper-advertising-identifier-idfa-usage

반응형