iOS/Xcode:针对应用内购买的Debug,Ad Hoc和Release*的并发版本*

tpt*_*cat 8 xcode in-app-purchase buildconfiguration ios bundle-identifier

我已经按照这个教程,让我的应用程序有建立的DEBUG,ADHOC测试(我的测试用户),和RELEASE.除了我的应用内购买,一切都很好.

Bundle ID的设置是:

  • 调试: com.mycompany.myproduct.debug
  • 特设: com.mycompany.myproduct.adhoc
  • 发布: com.mycompany.myproduct

(RELEASEID与此新设置之前的ID相同.

由于此方法Bundle ID根据构建进行更改,因此应用程序内购买与Bundle ID我运行应用程序时的特定内容相关联,DEBUG或者ADHOC当我调用时,我的产品标识符返回为无效requestProductsWithCompletionHandler.

我尝试添加新的应用程序内购买产品,Bundle ID如下所示:com.mycompany.myproduct.debug.iapname但由于应用程序内购买与单个捆绑ID相关联,因此不起作用.

我的问题是:为了完成我想要完成的任务,我是否必须在iTunes Connect中为每个新的Bundle ID创建2个新应用程序,然后为每个Build添加应用程序内购买产品组态?或者,还有另一种方法可以实现我想要完成的任务吗?

jac*_*ash 2

答案是肯定的,当商店工具包从 iTunes 商店获取应用内购买时,最简单的方法是在 iTunes connect 中添加单独的应用程序并使其保持最新状态。

您可以采取的另一种方法可能是在您自己的类中将商店工具包从您的应用程序中抽象出来。然后,您可以检查其bundleIdentifier属性,如果您的产品是您期望的产品,则可以[NSBundle mainBundle]从商店索要您的产品;如果仅用于测试目的,则返回您自己创建的模拟产品。bundleIdentifierSKProducts

我想这取决于您对测试人员的承诺程度,但显然您的自定义类可以扩展到 n 个捆绑包标识符,而 iTunes connect 中的虚拟应用程序根本不可扩展