需要具备推送通知功能的预配资料。

12

在将Xcode更新到9.0版本后,使用Cordova构建我的iOS应用程序时出现错误:“需要带有推送通知功能的配置文件。”。 我的应用程序和配置与以前的构建没有变化。

我进行了谷歌搜索,但没有找到有用的信息。

解决方案:

https://dev59.com/bVYO5IYBdhLWcg3wHd9o#46370957

已测试,有效。


1
这个问题已经在另一个帖子中得到了回答 https://dev59.com/bVYO5IYBdhLWcg3wHd9o#46370957 - Jerry Horton
1
@JedatKinports,该文件在每次运行/构建时都会生成,因此手动编辑它是无用的,因为每次运行cordova buildcordova run时都会被重写。 - n00dl3
1
在拉取请求未合并的情况下降级到Xcode-8也是另一种选择。 - n00dl3
1
经过更多的研究,似乎在ExportOptions.plist中还有一个参数我在pull request中没有涉及到。iCloudContainerEnvironment =“Production”或iCloudContainerEnvironment =“Development”。 - Jerry Horton
2
我在build.json文件中添加了iCloudContainerEnvironment,并支持将其映射到exportOptions.plist。现在,使用推送通知的用户应该可以正常使用fork/PR了。 - Jerry Horton
显示剩余4条评论
2个回答

5
如果你像我一样使用fastlane进行构建,我发现有许多fastlane版本无法正确生成exportOptions,导致Xcode无法找到已经安装和正确配置的provisioning profile。
我发现fastlane 2.58.0版可以正常工作,并已更新我的Fastfile文件,包括以下行以确保在其他机器上也有足够高的版本:
fastlane_version "2.58.0"

它将正确生成诸如以下值:
{
  "provisioningProfiles": {
    "com.name.app": "App name"
  },
  "method": "app-store",
  "teamID": "ABCDEF31593"
}

我了解了这个问题的一些情况。exportOptions现在是xcodebuild命令的强制选项,在fastlane的情况下,某些内容破坏了放入exportOptions的预配文件生成流程。你能否验证在构建时你的exportOptions中是否存在用于预配的值? - CodeReaper
我会在星期一尝试它。目前无法访问它。 - tedi
我也尝试过像这样添加键/值对:https://dev59.com/bVYO5IYBdhLWcg3wHd9o#46370957 但结果仍然相同。我需要添加其他内容吗? - tedi
@JedatKinports 我已在我的回答中添加了你需要查找的值。 - CodeReaper
我有一个XML格式的文件。而你的看起来像是JSON。这样可以吗? <key>provisioningProfiles</key> <dict> <key>my.bundle.idenifier</key> <string>My Provisioning Profile Name</string> </dict> 我尝试了,但它没有起作用。 - tedi
显示剩余4条评论

1
我也遇到了这个问题。 export_xcargs "-allowProvisioningUpdates" 对我有效。 请点击这里获取详细信息。

2
我没有使用 fastlane。我正在使用 Cordova - tedi

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