不正确的广告标识符[IDFA]使用,但它没有

时间:2022-04-01 07:18:17

While uploading app-file to itunesconnect the XCode says: improper advertising identifier [IDFA] usage...etc. But I do not use this feature in my project. I've tried to find any

在向itunesconnect上传app-file时,XCode说:不正确的广告标识符[IDFA]使用……但是我在我的项目中没有使用这个特性。我试着去找

[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]

calling. Futhermore, I'm just fixing a bug of my app, I hadn't included such features since my first release. The first release didn't said about IDFA-usage.

调用。此外,我正在修复我的应用程序的一个bug,自从我第一次发布以来,我还没有包含这些功能。第一个版本没有提到idfa的使用。

4 个解决方案

#1


3  

Well, this error happened about 15 days ago and it wasn't clear what is the reason till Apple released the Xcode update the same day and everything went smooth after that. Again, today I get the same message though I tried to upload the same builds for an app which I submitted 8 days ago. I think we have just to wait for a few hours and see what will happen.

这个错误发生在15天前,还不清楚是什么原因,直到苹果公司在同一天发布了Xcode,之后一切都很顺利。同样的,今天我也收到了同样的信息尽管我尝试上传同样的版本给我8天前提交的一个应用。我想我们只要等几个小时,看看会发生什么。

EDIT: Here is a link to show people complain about it at that time and how it was solved without doing anything: LINK

编辑:这里有一个链接,显示人们在那个时候抱怨它,以及它是如何在不做任何事情的情况下被解决的:链接。

UPDATE: For anyone who uses PlayHaven ads, this may be helpful to avoid this error. Comment the 2 following sections:

更新:对于任何使用PlayHaven广告的人来说,这可能有助于避免这个错误。评论以下2节:

In the file PHAdRequest.m (Lines 35-44)

在文件PHAdRequest。m(35-44行)

/*    if (![PHAPIRequest optOutStatus] && [ASIdentifierManager class])
{
    NSUUID *uuid = [[ASIdentifierManager sharedManager] advertisingIdentifier];
    NSString *uuidString = [uuid UUIDString];

    if (0 < [uuidString length])
    {
        theIdentifiers[@"ifa"] = uuidString;
    }
}*/

In PHAPIRequest.m (Lines 379-383):

在PHAPIRequest。(第383 - 379行):

/*    if ([ASIdentifierManager class])
{
    NSNumber *trackingEnabled = [NSNumber numberWithBool:[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]];
    [combinedParams setValue:trackingEnabled forKey:@"tracking"];
}*/

This is a temporary workaround till PlayHaven updates their SDK.

这是在PlayHaven更新SDK之前的临时解决方案。

#2


3  

I had provided this answer on another similar question and it seems to have been of help & I think my answer is particularly suited also to this question...

我在另一个类似的问题上提供了这个答案,它似乎对我有所帮助&我认为我的答案也特别适合这个问题……

I had a similar error in an update to an app that had previously updated fine and then a few days ago was causing an error, after Apple made a recent change. I wasn't using any ads but do have Facebook integration (which needs the AdSupport framework). I believe, after searching the net, that Facebook uses the advertising ID for its own analysis purposes so, even though I'm not including ads in my app, the validation and upload processes through xCode were failing with the error "Your app contains the Advertising Identifier [IDFA] API..."

我在一款应用的更新中犯了一个类似的错误,该应用此前已经更新了fine,但几天前,在苹果(Apple)最近做了一次修改之后,我又犯了一个错误。我没有使用任何广告,但是有Facebook集成(需要AdSupport框架)。我相信,在搜索了网络之后,Facebook将广告ID用于它自己的分析目的,所以,即使我没有在我的应用中包含广告,通过xCode的验证和上传过程都失败了,出现了一个错误:“你的应用包含广告标识符[IDFA] API…”

I searched and found that I needed to download the Facebook SDK source code, update the FBUtility.m to remove the references to the advertisingID but, in fact, I simply needed to:

我搜索发现我需要下载Facebook SDK源代码,更新FBUtility。m要删除对该广告id的引用,但实际上,我只需要:

1) download the source code for the latest SDK, which I did from here: https://github.com/facebook/facebook-ios-sdk (I downloaded the zip file from github to my documents folder)

1)下载最新SDK的源代码,我从这里下载的:https://github.com/facebook/facebook/ios-sdk(我从github下载了zip文件到我的documents文件夹)

2) build the framework - open the terminal. Use cd documents at the command prompt, then use this command: sudo scripts/build_framework.sh, which will run the build_framework.sh script that is in the scripts subfolder within the downloaded Facebook SDK folder

2)搭建框架——打开终端。在命令提示符下使用cd文档,然后使用这个命令:sudo scripts/build_framework。sh,它将运行build_framework。下载的Facebook SDK文件夹中脚本子文件夹中的sh脚本

3) Remove the old FacebookSDK.framework from your Xcode project and add the new one (in my case, I navigated to documents/facebook-ios-sdk/build & choose the FacebookSDK.framework folder

3)从您的Xcode项目中删除旧的facebooksdk框架,并添加新的(在我的例子中,我导航到文档/ facebookios-sdk /build &选择FacebookSDK.framework文件夹)。

4) Archive the project and it should (it was in my case) be good to upload

4)存档项目,它应该(在我的情况下)很好上传。

Hope that helps someone along the way - I've been at this for days!!

希望这能帮到别人——我已经在这上面呆了好几天了!

#3


2  

Simply upload your binary as you've been doing this while, and broadly classify IDFA in two categories:

简单地上传您的二进制文件,就像您刚才做的那样,并将IDFA大致分为两类:

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.

发布者:您使用第三方广告网络库来显示广告。选择IDFA ->中的第一个选项“应用内服务广告”。你是一个出版商,因为你展示广告,但不要为你自己的应用做广告。

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

广告客户:你使用第三方库来跟踪你的应用程序的转换,以及在你的应用程序中跟踪“目标”。你直接在你的应用程序中不显示广告。选择IDFA ->中的第二和第三个选项,“将这个应用程序安装到以前服务过的广告中”。并“将本应用程序中所采取的行动归因于先前服务的广告”。

Mixed: You track conversions for your app, as well as display ads in your app. Choose all three options.

混合:跟踪应用程序的转换,以及在应用程序中显示广告。

#4


0  

In case of PlayHaven, setup PH_USE_AD_SUPPORT to 0 will disable the AdSupport framework.

对于PlayHaven,将PH_USE_AD_SUPPORT设置为0将禁用AdSupport框架。

PHConstants.h

PHConstants.h

/**
 * By default, PlayHaven will require the AdSupport framework. Projects using a version of
 * Xcode older than 4.5 may define \c PH_USE_AD_SUPPORT to be 0.
 *
 * @note By disabling the AdSupport framework, the SDK will not be able to collect the IFA
 **/
#ifndef PH_USE_AD_SUPPORT
#define PH_USE_AD_SUPPORT 1
#endif

Work for me to fix "improper advertising identifier" when submit.

在提交时帮我修正“不正确的广告标识符”。

#1


3  

Well, this error happened about 15 days ago and it wasn't clear what is the reason till Apple released the Xcode update the same day and everything went smooth after that. Again, today I get the same message though I tried to upload the same builds for an app which I submitted 8 days ago. I think we have just to wait for a few hours and see what will happen.

这个错误发生在15天前,还不清楚是什么原因,直到苹果公司在同一天发布了Xcode,之后一切都很顺利。同样的,今天我也收到了同样的信息尽管我尝试上传同样的版本给我8天前提交的一个应用。我想我们只要等几个小时,看看会发生什么。

EDIT: Here is a link to show people complain about it at that time and how it was solved without doing anything: LINK

编辑:这里有一个链接,显示人们在那个时候抱怨它,以及它是如何在不做任何事情的情况下被解决的:链接。

UPDATE: For anyone who uses PlayHaven ads, this may be helpful to avoid this error. Comment the 2 following sections:

更新:对于任何使用PlayHaven广告的人来说,这可能有助于避免这个错误。评论以下2节:

In the file PHAdRequest.m (Lines 35-44)

在文件PHAdRequest。m(35-44行)

/*    if (![PHAPIRequest optOutStatus] && [ASIdentifierManager class])
{
    NSUUID *uuid = [[ASIdentifierManager sharedManager] advertisingIdentifier];
    NSString *uuidString = [uuid UUIDString];

    if (0 < [uuidString length])
    {
        theIdentifiers[@"ifa"] = uuidString;
    }
}*/

In PHAPIRequest.m (Lines 379-383):

在PHAPIRequest。(第383 - 379行):

/*    if ([ASIdentifierManager class])
{
    NSNumber *trackingEnabled = [NSNumber numberWithBool:[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]];
    [combinedParams setValue:trackingEnabled forKey:@"tracking"];
}*/

This is a temporary workaround till PlayHaven updates their SDK.

这是在PlayHaven更新SDK之前的临时解决方案。

#2


3  

I had provided this answer on another similar question and it seems to have been of help & I think my answer is particularly suited also to this question...

我在另一个类似的问题上提供了这个答案,它似乎对我有所帮助&我认为我的答案也特别适合这个问题……

I had a similar error in an update to an app that had previously updated fine and then a few days ago was causing an error, after Apple made a recent change. I wasn't using any ads but do have Facebook integration (which needs the AdSupport framework). I believe, after searching the net, that Facebook uses the advertising ID for its own analysis purposes so, even though I'm not including ads in my app, the validation and upload processes through xCode were failing with the error "Your app contains the Advertising Identifier [IDFA] API..."

我在一款应用的更新中犯了一个类似的错误,该应用此前已经更新了fine,但几天前,在苹果(Apple)最近做了一次修改之后,我又犯了一个错误。我没有使用任何广告,但是有Facebook集成(需要AdSupport框架)。我相信,在搜索了网络之后,Facebook将广告ID用于它自己的分析目的,所以,即使我没有在我的应用中包含广告,通过xCode的验证和上传过程都失败了,出现了一个错误:“你的应用包含广告标识符[IDFA] API…”

I searched and found that I needed to download the Facebook SDK source code, update the FBUtility.m to remove the references to the advertisingID but, in fact, I simply needed to:

我搜索发现我需要下载Facebook SDK源代码,更新FBUtility。m要删除对该广告id的引用,但实际上,我只需要:

1) download the source code for the latest SDK, which I did from here: https://github.com/facebook/facebook-ios-sdk (I downloaded the zip file from github to my documents folder)

1)下载最新SDK的源代码,我从这里下载的:https://github.com/facebook/facebook/ios-sdk(我从github下载了zip文件到我的documents文件夹)

2) build the framework - open the terminal. Use cd documents at the command prompt, then use this command: sudo scripts/build_framework.sh, which will run the build_framework.sh script that is in the scripts subfolder within the downloaded Facebook SDK folder

2)搭建框架——打开终端。在命令提示符下使用cd文档,然后使用这个命令:sudo scripts/build_framework。sh,它将运行build_framework。下载的Facebook SDK文件夹中脚本子文件夹中的sh脚本

3) Remove the old FacebookSDK.framework from your Xcode project and add the new one (in my case, I navigated to documents/facebook-ios-sdk/build & choose the FacebookSDK.framework folder

3)从您的Xcode项目中删除旧的facebooksdk框架,并添加新的(在我的例子中,我导航到文档/ facebookios-sdk /build &选择FacebookSDK.framework文件夹)。

4) Archive the project and it should (it was in my case) be good to upload

4)存档项目,它应该(在我的情况下)很好上传。

Hope that helps someone along the way - I've been at this for days!!

希望这能帮到别人——我已经在这上面呆了好几天了!

#3


2  

Simply upload your binary as you've been doing this while, and broadly classify IDFA in two categories:

简单地上传您的二进制文件,就像您刚才做的那样,并将IDFA大致分为两类:

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.

发布者:您使用第三方广告网络库来显示广告。选择IDFA ->中的第一个选项“应用内服务广告”。你是一个出版商,因为你展示广告,但不要为你自己的应用做广告。

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

广告客户:你使用第三方库来跟踪你的应用程序的转换,以及在你的应用程序中跟踪“目标”。你直接在你的应用程序中不显示广告。选择IDFA ->中的第二和第三个选项,“将这个应用程序安装到以前服务过的广告中”。并“将本应用程序中所采取的行动归因于先前服务的广告”。

Mixed: You track conversions for your app, as well as display ads in your app. Choose all three options.

混合:跟踪应用程序的转换,以及在应用程序中显示广告。

#4


0  

In case of PlayHaven, setup PH_USE_AD_SUPPORT to 0 will disable the AdSupport framework.

对于PlayHaven,将PH_USE_AD_SUPPORT设置为0将禁用AdSupport框架。

PHConstants.h

PHConstants.h

/**
 * By default, PlayHaven will require the AdSupport framework. Projects using a version of
 * Xcode older than 4.5 may define \c PH_USE_AD_SUPPORT to be 0.
 *
 * @note By disabling the AdSupport framework, the SDK will not be able to collect the IFA
 **/
#ifndef PH_USE_AD_SUPPORT
#define PH_USE_AD_SUPPORT 1
#endif

Work for me to fix "improper advertising identifier" when submit.

在提交时帮我修正“不正确的广告标识符”。