iOS开发内购详细版本说明
一、最近公司很多的项目用到了内购,抽空整理下内购的详细内容吧。
1、先从内购的iTunesConnect里配置说起吧,我们先进入苹果的iTunesConnect链接https://itunesconnect.apple.com,然后进入入下界面。
![](https://i-blog.csdnimg.cn/blog_migrate/3d57ddc26df2a60fd778c33d29cadb27.webp?x-image-process=image/format,png)
填写好银行卡信息和公司地址等信息以后,第一步算完成了。
2、进入iTunesConnect选择我的APP模块,创建新的APP,绑定好你在苹果开发者中心创建的apple IDS还有bundle id,那么就创建成功了一个新的APP应用。如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/c9bf6231c75a6e2296378b604805251c.webp?x-image-process=image/format,png)
3、进入新创建的APP应用,点击如图所示功能按钮:
![](https://i-blog.csdnimg.cn/blog_migrate/89a42535f54c73fcb38fa516cf86288d.webp?x-image-process=image/format,png)
4、进入功能以后我们就可以创建我们想要的内购产品的ID了,一般都会存在如下几个选择项:
![](https://i-blog.csdnimg.cn/blog_migrate/e3cc609198e511e6053cc39c378dfd6d.webp?x-image-process=image/format,png)
5、我们公司的项目由于都是直播类型的课程购买,所以用的是消耗型的项目,选择好然后就进入创建界面里去创建产品了。
![](https://i-blog.csdnimg.cn/blog_migrate/52620ace4c481124eb18b72a253868d8.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/a940ffbe1d5f7fef1ff546fe49180c92.webp?x-image-process=image/format,png)
6、填写好这几项,一个新的内购产品就创建成功了,我们需要记录下每个产品的内购ID,也就是唯一ID,为以后购买产品做准备。
7、我们需要在工程里配置好证书,测试证书是必须的因为我们内购需要连接到苹果的App Store的,需要正式的测试证书才能测试,同时把下图工程中的这一配置打开:
![](https://i-blog.csdnimg.cn/blog_migrate/9a865e334dc5f01ea3e567282c1413df.webp?x-image-process=image/format,png)
二、讲完上面基本的配置以后,我们进入我们最重要的部分,那就是我们的代码部分。
1、要使用苹果的内购功能,我们需要引入苹果的头件“#import<StoreKit/StoreKit.h>”,引入进来以后,我们就需要引入"SKProductsRequestDelegate,SKPaymentTransactionObserver"这两个代理,我们需要在内购的那个页面viewDidLoad方法里直接调用方法,如下图:
![](https://i-blog.csdnimg.cn/blog_migrate/371405979220e90a37879d0a4105c830.webp?x-image-process=image/format,png)
然后接下来就是几个最重要的代理方法了,如果正常的内购能够走通,那么这几个代理方法就会很流畅的运行过去,并且返回你所购买的商品的信息。让我们一步步来分析:
![](https://i-blog.csdnimg.cn/blog_migrate/e4a973190910f4f874bddb8afc903db8.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/a4d9afeaf6e217f0fd609cd4754b461b.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/d2c14fa9e2eda010fbae50bf26fb03b3.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/5e33c5be90c0920b34f9fc91863c8657.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/12c7d840881f9d11b91cb8a6a5dc868b.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/3827c6d32357889ad229da7bc6bd84f6.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/9fe86d5ac42a8736de3e0ed1a0271e5b.webp?x-image-process=image/format,png)
2、进过我这一堆的代码组合,是否已经明白了内购的方式了呢,只要把我列举的这几个方法,统统的导入进你的工程,那么就基本上可以了。
三、常见内购错误,自己做内购总结的几个常见错误。
1、请求不到内购的产品信息。
解决办法:(1)、先看看bundle id,和测试证书之类的东西配置的都对不对,然后看看产品的唯一ID和iTunesConnect里的能不能对应上。如果都没有问题,那么看下面的。
(2)、去看看iTunesConnect里的协议里面的公司的地址信息和银行卡信息是否填写正确,只要没有报错,报红就可以。基本上上面这几点弄好了也就能请求到商品了。
2、手机提示无法连接到itunesStore
解决办法:把手机的Apple ID先注销掉,然后购买的时候重新填写Apple ID。