我们在最新版本的应用程序中开始看到这一点。我们无法在 Test Flight 构建中复制它,但是用户向我们发送了带有确切错误的屏幕截图:“AssetErrorDomain”,代码 6
奇怪的是,在过去的 6 个月里,我们已经发布了许多版本,但我们使用 OnDemandResource API 的方式并没有真正改变。我们的一些理论是:
- 我们确实从 Legacy 更改为 New XCode 构建系统。我注意到他们打包资产包的方式略有不同
- 到目前为止,所有报告它的用户都在使用 iOS 14.3。也许该错误在 14.3 中重新出现?
- 我们使用 XCode 12 构建了这个版本。以前的版本是用 11 和 10 构建的
- 我们注意到 ENABLE_ON_DEMAND_RESOURCES 未设置为 YES。也许这就是问题所在,尽管您会认为它们根本不适用于这种情况。我之前没有注意到这个标志,也许它是在 XCode 12 中添加的。
- 最后,我们仍然支持 iOS 9
我可以尝试建议的工作来对标签进行版本控制。这仍然是你找到的最好的工作吗?
更新
我能够使用以下步骤在试飞中复制它:
- 安装试飞版本 A
- 加载 ODR
- 安装试飞 Build B
- 等待 24 小时
- 尝试加载另一个 ODR
通过检查日志,它似乎更新了 ODR 清单,但继续使用旧的过期 URL 和 accessKey 来尝试加载资源,导致 AssetErrorDomain 代码 6 错误。
我通过更改标签而不是捆绑名称解决了这个问题。我很确定这是从旧版构建系统转到新版系统的结果,尽管迁移到更新版本的 XCode 也可能是一个问题。我确实在 XCode 12.3 发行说明中看到了对 ODR 修复的引用。
我无法在使用相同构建系统和 XCode (12.3) 版本构建的构建之间复制 2 个测试飞行构建中的错误。所以,我认为我很好地使用相同的标签。如果你不能这样做,似乎会有更多关于这个错误的噪音。不过有点不安。
我还在 Test Flight 中注意到,如果您使用相同的包和标签名称并且它已经下载,它不会在版本之间重新下载 ODR。这对我来说似乎也是一个错误,但我们的捆绑包非常独立,所以不应该影响我的情况。