如何修复“App Store Connect操作ERROR ITMS-90771”问题

132

我正在尝试将我的应用程序提交到TestFlight,但是一直收到这个错误。

输入图像描述

这是我在info.plist中的内容:

输入图像描述

我该如何解决这个问题?


你是否在目标功能中检查了后台模式? - Yoel Jimenez del valle
你是否正在使用后台处理?如果没有,那么请删除该功能。如果是的话,您需要按照答案中提到的方式添加创建后台处理任务时所使用的标识符。 - Paulw11
1
@Paulw11 非常感谢。我没有注意到已经勾选了后台处理,现在关闭它就可以了。谢谢。 - Mustafa Aljaburi
5个回答

183
在您的info.plist中添加此内容,然后重新提交您的应用程序。
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>

或者如果您使用多个BGTask,则使用此代码

<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
    <string>com.yourCompanyName.appName1</string>
    <string>com.yourCompanyName.appName2</string>
</array>

1
我需要将 com.your... 改成我的 Bundle ID 吗? - azheen
是的,但如果您添加多个,则在您的捆绑标识符末尾添加唯一字符串。 - Bijender Singh Shekhawat
我发现添加这个确实可以解决问题,但是在 xCode 中,当你打开项目页面时,Info.plist 文件会重新设置/重写,而没有这些值。有点烦人。 - Conrad

70

甚至更好:

<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>

最好的


2
这是一个非常好的回答。虽然我不想给它投票。 - undefined
1
上帝帮助我,因为我即将点赞。 - undefined

37

根据提示,您需要将“BGTaskSchedulerPermittedIdentifiers”添加到info.plist文件中。您已经为应用程序开启了后台任务功能,但未添加相应的标识符。

  1. 转到Info.plist文件。将光标悬停在任何项目上即可看到“+”按钮。单击该按钮以添加新项目。
  2. 在Information Property List列下复制并粘贴“BGTaskSchedulerPermittedIdentifiers”。这将在Type列中创建一个数组。
  3. 点击刚刚创建的项目上的“+”按钮,以为数组添加后台任务标识符。
  4. 请注意,苹果建议以反向域表示法(com.something.name)来提及后台任务标识符。

最终效果如下图所示:

info plist image

更多信息,请参阅苹果的文档


所以我添加了BGTaskSchedulerPermittedIdentifiers。但是第0和1项呢?我只需要添加我的捆绑包名称吗? - Mustafa Aljaburi
1
你只需要为每个后台任务提供一个ID。它应该像com.yourCompanyName.appName这样。 - Shreeram Bhat
@MustafaAljaburi 谢谢你,非常有效,我投了你的一票。 - Abdulkadir Ugas
1
它可以工作,但今天你只需要在右列添加 $(PRODUCT_BUNDLE_IDENTIFIER)。 - Thiago Silva

8

实际上我必须要做这两件事:

1.首先更改与目标相关的 info.plist 文件。

  1. 右键点击您的 info.plist 文件。
  2. 选择“打开方式”。
  3. 选择“源代码”。
  4. 在主要的 <dict> 标签之后,将以下关键行添加到文件中。
<key>BGTaskSchedulerPermittedIdentifiers</key>
<array>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
</array>

2.从目标信息视图中更改

  1. 进入项目目标。
  2. 点击 Info 标签页。
  3. 检查是否可以看到 Permitted Background Task Scheduler Identifier 数组类型。如果找不到,请在列表上未展开的菜单上使用 + 添加它。
  4. 然后展开它 > 应该显示向下的标记,如截图所示。然后点击 Permitted Background Task Scheduler Identifier 上的 +。确保其标记已展开(向下的 chevron)。然后将添加一个字符串类型的项目,并在其中添加您的捆绑包 ID... 或者添加 $(PRODUCT_BUNDLE_IDENTIFIER),这样它就会自动获取捆绑包标识符。

请确保使用其他答案中提到的适当的捆绑包标识符约定。

感谢之前回答此问题的所有人,我发现它们非常有帮助。


1
第二步可能是必要的。我有一个包含多个目标的项目。在我为它们做了第一步中的info.plist更改之后,其中一个目标没有自动添加“Permitted Background Task Scheduler Identifier”。所以我不得不按照这里的第二步来做。谢谢! - flame3

7

需要注意几点,在“info.plist”中添加“BGTaskSchedulerPermittedIdentifiers”。

  1. 打开info.plist文件
  2. 在“Information Property List”下方添加“Permitted background task scheduler identifiers”。(使用添加(+)按钮)

添加“Permitted background task scheduler identifiers”

  1. 在“Permitted background task scheduler identifiers”下面添加一个新项目。 (确保箭头指向下,不是 ">")

添加新项目

  1. 将您的bundleID作为值输入。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接