【iOS】苹果IAP(内购)中沙盒账号使用注意事项
目标
- 沙盒账号的正确使用方式
- 沙盒账号使用的注意事项
1.沙盒账号是什么
iOS应用里面用到了苹果应用内付费(IAP)功能,在项目上线前一定要进行功能测试。测试肯定是需要的,何况这个跟money有关。。。开发完成了之后,如何进行测试呢?难道我测试个内购功能要自己掏钱?就算是公司掏钱,但是苹果要吃掉3成的啊,想想如果是99刀的商品,点下购买的时候心里都有点发慌。。。
苹果当然没这么坑了,测试内购,苹果提供了沙盒账号(也叫沙箱账号)的方式。这个沙箱账号其实是虚拟的AppleID,在开发者账号后台的iTune Connect上配置了之后就能使用沙盒账号测试内购,有了沙盒账号,就能体验一把土豪的感觉了,游戏钻石什么的随便充,反正不用我的钱。
注意:你可以把沙盒账号看做是一个虚拟的AppleID,这个AppleID只有进行内购测试的功能。
2.沙盒账号使用的前提
- 内购的商品ID,价格等相关信息已经录入到开发者后台了(不然那你买什么)
- 开发者后台已经创建好沙盒测试账号了(下面我们会将如何创建)
- 你要有一部真机(iPhone或iPad都行,别用模拟器就好。而且不能是越狱机)
- bundleID别搞错了,开发者账号、证书、bundleID要一致
- 如果你是第一次在这个开发者账号上集成内购功能,请先将iTune Connect上的税务协议都填写好,否则内购时会发现商品ID无效。
税务协议的问题不少童鞋遇到了,可以参考这篇文章http://www.jianshu.com/u/62f0c72a2004
3.沙盒账号创建
登录苹果开发者后台--iTunes Connect--用户和职能--沙箱测试技术员,在这个界面你可以看到当前账号已经创建好的沙盒账号。
![](https://upload-images.jianshu.io/upload_images/1818095-27aeb93674138130.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
点击“+”进行创建
![](https://upload-images.jianshu.io/upload_images/1818095-3448a50b0ed5ad47.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
![](https://upload-images.jianshu.io/upload_images/1818095-41b4b34c13c45ed9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
如图,我创建一个沙盒账号。具体信息:
- 名字为test1
- AppleID为jianshutest1@123.com(也就是上面填的电子邮件)
- App Store地区为中国
注意:
- 电子邮件不能是别人已经注册过AppleID的邮箱
- 电子邮箱可以是一个不存在电子邮箱(只要符合格式,随便写)
- App Store 地区不要乱选。虽然随便哪个地区都可以用来测试(还没上线之前app并没有地区之分),但是在沙盒测试的时候,弹出的购买提示框会根据当前AppleID(沙盒账号)的地区显示语言的。
4.沙盒账号使用流程
-
1.在iPhone上安装测试包(必须是adhoc签名证书或者develop签名证书打的包,不能是从App Store上下载的)
-
2.退出iPhone的App Store账号(因为我们需要使用沙盒账号登录)。
- 操作方法一:打开App Store应用首页滑到最下方--选中AppleID--注销
- 操作方法二:设置--iTunes Store与App Store--选中AppleID--注销
这里只需要退出账号,退出之后,不需要在这里登录沙盒账号,因为你压根就登录不了。之前已经说过了,沙盒账号是一个假的AppleID账号,不能直接登录的。如果强行登陆,会出现以下报错提示:
![](https://upload-images.jianshu.io/upload_images/1818095-5092c425f42ca58a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/238)
- 3.在测试包里面购买商品,系统会让你进行登录,这里我们点击“使用现有的AppleID”就可以输入刚才创建好的沙盒测试账号进行登录了。
![](https://upload-images.jianshu.io/upload_images/1818095-b94e4f555c57fc9e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
![](https://upload-images.jianshu.io/upload_images/1818095-aba8e7ea75bf33e1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/460)
- 4.输入账号之后,有可能会出现如下提示,点击确定之后会跳转到App Store,导致这次购买失败。没关系,我们再次回到测试包,然后购买商品就好
![](https://upload-images.jianshu.io/upload_images/1818095-47bf8878be99b14c.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/445)
出现提示的原因:因为AppleID是分地区的。之前我们创建沙盒账号的时候就看到了,需要选择地区。App Store也是分地区的,对应的AppleID只能在App Store对应的地区进行下载和购买东西。我们刚才创建的jianshutest1@123.com这个账号的地区是中国,所以只能在中国店面登录。由于我之前的登录的账号越南的,所以此时AppStore店面是越南店面。所以我们这次登录,系统会跳转到AppStore应用将店面切换到中国。另外,App Store应用切换地区的时候,会报【Your request produced an error】。这个不需要管。
- 5.点击购买商品之后,成功的话会出现相应提示。
![](https://upload-images.jianshu.io/upload_images/1818095-eaa35e54f4ad1a89.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
备注:我们在iTunes Connect上创建商品了之后,除了需要填商品ID,商品名称,商品描述,价格等之外,还要上传一张图片,图片就是上面这个界面。
![](https://upload-images.jianshu.io/upload_images/1818095-351315d6d575e7bc.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
沙盒账号注意事项
- BudleID,证书,商品ID等内容一致,才能进行接下来的储值测试(BundleID都不对,还玩什么)
- 测试设备需要使用不越狱的真机(越狱机不能进行沙盒储值,模拟器也不能进行沙盒储值)
- 沙盒账号是不能直接在App Store进行登录的,只能在点击了购买商品之后,在弹出的登录框进行登录。
- 真实的AppleID不能在adhoc证书和develop证书打出来的包进行沙盒储值测试,所以在沙盒测试之前,需要退出真实的AppleID账号
- 从App Store上面下载的包不能使用沙盒账号进行储值
关于证书的问题:
1.使用develop签名证书和adhoc签名证书打的ipa包,我把他们叫做测试包,测试包只能使用沙盒账号进行储值,不能使用真实的AppleID进行储值
2.从App Store应用下载的包,我把他们叫做线上包,线上包只能使用真实的AppleID进行储值,不能使用沙盒账号进行储值
另外唠叨一下:
楼主平常上传包的时候是打包了ipa包之后,使用Xcode里面的Application Loader应用上传应用的。
虽然很多人上传包使用的是appstore的签名证书,但是,其实使用adhoc的证书打包的ipa包也是可以正常上传并且送审上线的。我平常就是用adhoc的证书打包成ipa包,给测试妹子测试,测试完直接用这个包上传送审了。嘿嘿。