gpt4 book ai didi

iphone - 使用新的显式应用程序 ID、应用程序内购买更新了应用程序。 SKProductsRequest 返回空的产品列表

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:19 27 4
gpt4 key购买 nike

背景:

我的应用程序的当前销售版本使用通配符应用程序 ID,并且捆绑 ID 很简单并且不符合 com.companyname.appname 约定(它只是 'appname' ).它使用的 App ID 的形式很简单,即“bundleseed.*”,我相信,在使用供应配置文件签名时会产生“bundleseed.appname”。 (为什么?因为这个应用程序早在 Apple 推荐显式应用程序 ID 和 XCode 引入 com.companyname 约定之前的 2.x 早期就已经存在了。)

我正在向应用添加应用内购买,这需要显式应用 ID。我已按照 Technical Q&A QA1680 Updating from a wildcard App ID to an explicit App ID 中的说明进行操作.结果是我有一个新的显式应用程序 ID,其形式为“newbundleseed.appname”,并且用于对应用程序进行签名的新配置文件对此进行了指定。 info.plist 中的 bundle ID 仍然是“appname”。

问题:

当我在旧版本之上从 XCode 部署新应用程序时,它似乎工作正常。旧版本应用程序实例被新应用程序替换,所有新功能都已到位。 但是,当应用程序提交 SKProductsRequest 时,它会生成一个空的产品列表。如果我将新应用程序部署为全新安装(而不是复制旧版本),那么一切都会按预期工作 - SKProductsRequest 结果在我可用产品的完整列表中。

我还注意到升级后的版本继承了旧版本的某些方面,这对我来说很奇怪。具体来说,旧版本的应用程序有一个 default.png,新应用程序尚未将其作为构建的一部分,但升级后的应用程序在加载时会显示旧的 default.png。升级后的应用程序就像是新旧应用程序的合并。

我主要担心的是应用内购买是否适用于我的升级用户。我是在使用 Explicit App ID 做错了什么,还是这只是我使用 In App Purchase 沙盒这一事实的问题?在这种情况下,我怎么能确信它在发布时会起作用?

另外,关于新应用为何/如何没有完全取代旧应用包的任何见解?

我唯一能想到的是,我应该在创建新 App ID 时使用旧的捆绑种子,而不是生成新的捆绑种子(如 QA1680 中详述)。即旧的应用程序 ID 是“oldbundleseed.*”,而我当前的新应用程序 ID 是“newbundleseed.appname”,也许它应该是“oldbundleseed.appname”。但我不能这样做,因为供应门户不会让我创建一个仅因捆绑种子不同而不同的应用程序 ID。如果这是我的问题,该怎么办?联系 Apple?

TL/DR:一个现有的应用程序,使用新的显式应用程序 ID 更新以支持 IAP,工作正常,除了 SKProductRequests 在应用程序升级与全新安装时导致产品列表为空它们会生成填充的产品列表。

最佳答案

你们升级的怎么样了?如果您进行构建并运行,您最终会遇到应用程序未完全重写的问题。Xcode 做出一些“优化”决定,只复制真正改变的文件,它把事情搞砸了。

创建一个临时分发并将其下载到具有旧版应用程序的设备上。检查该临时构建是否正确枚举了它。

关于iphone - 使用新的显式应用程序 ID、应用程序内购买更新了应用程序。 SKProductsRequest 返回空的产品列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com