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

我已经按照 this tutorial允许我的应用程序为DEBUG,ADHOC测试(对于我的beta用户)和RELEASE进行构建.除了我的应用内购买,一切都很好.

此设置后我的捆绑ID是:

>调试:com.mycompany.myproduct.debug
> Ad Hoc:com.mycompany.myproduct.adhoc
>发布:com.mycompany.myproduct

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

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

我尝试添加新的应用程序内购买产品,其中包含新的Bundle ID,如下所示:com.mycompany.myproduct.debug.iapname,但由于应用程序内购买绑定到单个Bundle ID,因此不起作用.

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

解决方法

答案是肯定的,因为商店套件从iTunes商店获得应用程序购买,最简单的方法是在iTunes连接中添加单独的应用程序并使其保持最新.

您可以采取的另一种方法是在您自己的班级中抽取商店套件远离您的应用.然后,您可以检查[NSBundle mainBundle]的bundleIdentifier属性,如果您的bundleIdentifier是您期望的那个,请从商店询问您的产品,或者返回您自己创建的模拟SKProducts(如果它仅用于测试目的).

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...