in app purchase php,In App Purchases(IAP 应用程序內购买): 完全攻略

原文:http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

参考:http://www.cocoachina.com/bbs/read.php?tid-11357.html

新:http://www.cocoachina.com/gamedev/misc/2012/0409/4129.htmldemo

第一印象觉得In-App Purchase(简称IAP)非常简单。Apple提供的大量文档应该让开发者很快熟悉地熟悉。那麽,为什麽在你的应用中集成IAP特性就如此令人生厌呢?

这是因为在开发过程中不可避免会出现一些错误。而但这些错误发生的时候,你就抓瞎了。虽然Apple提供了有关IAP的大量文档,但他们并未提及集成IAP的详细步骤。而且对StoreKit集成过程中出现的问题也没有一个核对清单。另外对于为什麽诸如产品ID非法之类的问题也没有提供NSError之类的对象来告诉你原因。

在试用了各种可能的解决方桉后,你只能身心疲惫,彷徨无助。

为了提高你的效率和减少你的痛苦,我觉定利用此文来介绍一下实现IAP的详细步骤。本文很详细,有点长。甚至可能太长了,但不像Apple的文档,它提供了为实现IAP的每一个步骤。

废话少说,我们直入主题吧。

概况

IAP能正常工作的秘诀:分成两个步骤:

创建及提取产品描述

购买产品

第一个步骤是你可能遇到问题的部分。一旦你在代码中成功地获取了产品描述,编写购买产品的代码不过是小菜一碟。

我们先看看步骤1。

创建及提取产品描述

下面是有关创建产品及提取其描述的非常粗略的步骤:

创建唯一的App ID

生成及安装新的provisioning profile文件

在Xcode中更新 bundle ID 及 code signing profile

如果还没做的话,请在iTunes Connect中提交有关你程序的 metadata

如果还没做的话,请在iTunes Connect中提交你程序的二进制码

为IAP添加新产品

编写提取产品描述的代码

等待几小时

提取产品描述的代码非常简单,但其他步骤则很容易错。

注意: 为提取产品描述,你并不需要在iTunes Connect中创建IAP测试用户。

1. 创建唯一的App ID

为支持IAP,你的App ID不能包括通配符(“*”)。为确定你的App Id是否包括通配符,请登录http://developer.apple.com/iphone,在 iPhone Developer Program Portal中选择左边菜单中的 “App IDs”检查你的 App ID。

下面是一个唯一的App ID:

7DW89RZKLY.com.runmonster.runmonsterfree

下面不是一个唯一的 App ID:

7DW89RZKLY.com.runmonster.*

如果你还没有一个唯一的App ID,按如下步骤创建一个:

在developer portal中的 App IDs 部分,选择“New App ID”

填写下列信息:

Display name(显示名): 选取一个不同的App ID的名称。你不能编辑或删除旧的App ID,所以你必须为你的App ID提供一个新名称以避免溷淆。

Prefix(前缀): 生成一个新的前缀,或者如果你的程序是通过Keychain Services API分享数据的系列程序中之一的话,则选用已存在的前缀。

Suffix(后缀): com.companyname.appname (这是通用格式 – 注意没有使用通配符)。

按 “Save”

按 App ID旁的“Configure” 链接

选取 “Enable In App Purchase”选择框

按“Done”

2. 创建一个新的Provisioning Profile文件

在创建了新的App ID后,你需要生成一个指向这个App ID的新provisioning profile。

下面就是令人痛苦的生成和安装新provisioning profile的详细步骤:

在 iPhone Developer Portal中, 选择左边的Provisioning部分

确保你处于Development 标籤下, 按下右上角的 “New Profile”

填入所需信息并指向你刚创建的唯一的App ID

如果你在Actions条目下看到 “Pending”,那麽请按下“Development”标籤标题进行刷新

点击 “Download” 下载新的profile文件

将profile文件拖入到Dock中Xcode图标上进行安装

如果你想在硬盘上保存provisioning profile,那麽你可以按如下步骤手工安装profile:

在Xcode中, 选择 Window > Organizer

选择左边 “Provisioning Profiles” 分类

Ctrl-按下profile > Reveal in Finder

将新profile拖入到 profile Finder 窗口

3. 更新Xcode 设置

在Xcode中安装了 profile 文件后,你需要对使用此provisiong profile的项目进行一些编辑工作:

编辑项目 .plist 文件使其 Bundle ID 与 App ID 匹配。忽略ID开始部分的字母数字序列。例如,在Developer Portal中你的App ID为“7DW89RZKLY.com.runmonster.runmonsterfree”,那麽在Bundle ID中你只需输入“com.runmonster.runmonsterfree” 。

编辑项目的 target 信息以使用新的provisioning profile:

选取 Project > Edit Active Target

选取顶部“Build” 标籤

选取需要的 configuration (通常为 Debug)

在Code Signing Identity中选择新的provisioning profile

在Code Signing Identity之下的行中(可能名为 Any iPhone OS Device)选择新的provisioning profile

4. 添加你的应用程序

如果你的程序已经发表到App Store了,那麽可以略过此步骤。

在你将产品添加到 iTunes Connect之前,你必须添加此产品所需的程序。如果你的程序还没有100%完成也无需担心,你可以先提交具有部分数据的程序,最后再提交真实的程序。

注意: 只有 SKU 和 version(版本)部分是以后不可修改的

登录到http://developer.apple.com/iphone

点击右边链接进入 iTunes Connect

注意:你必须先登录到developer.apple.com,否则会有不测发生(译者注:具体是什麽不测我也不太清楚,胆大的请自己试一下)

在 iTunes Connect主页点击 “Manage Your Applications”

在右上角点击“Create New Application”

填写程序所需的一切信息。当要求程序二进制码时,请选择稍后上传选项。

5. 提交程序二进制码

Apple的文档中没有任何地方提及详情,但它却是必须的步骤。要成功测IAP功能,你必须提交程序的二进制码。即使你的程序还没有100%完成,你仍然需要提交二进制码。然而,你也可以立即摈弃你的二进制码,使其不会进入审核阶段。

下面这些步骤非常关键,我可是因为少做了某些步骤而度过了一段非常痛苦的时间:

生成App Store发佈版程序

如果你不知怎麽做,请在 iPhone Developer Portal 中点击左方的 Distribution标籤,并选择 “Prepare App” 标籤。然后,根据蓝色链接的指示:

获取iPhone发行许可证

创建并下载在App Store发行所需的iPhone Distribution Provisioning Profile

在Xcode中生成程序的发行版

在iTunes Connect中进入程序页

选择 “Upload Binary”

上传.zip压缩程序

如果你的程序还没有100%完成以进行审核,那麽请点击iTunes Connect中你程序首页中的 “Reject Binary”链接。程序的状态应该更新为 “Developer Rejected”.

不用担心,由于程序的状态是“Developer Rejected”,Apple是不会对其进行审核的。你可以在任何时候提交程序的新版本并使其状态为“Developer Rejected”,这不会对以后程序正式提交的等待时间有任何影响。

6. 添加产品

完成了以上所有步骤后,我们最终可以向iTunes Connect中添加产品了。

确保登录到http://developer.apple.com/iphone

进入 iTunes Connect 主页

点击“Manage Your Applications”

点击刚建好的程序 点击view details

点击 “Manage in-App Purchases” 链接

点击 “Create New”

填写下列产品信息:

Reference Name(参考名称): 产品的通用名称。比如,我使用的是 “Pro Upgrade”。此名称是不允许进行编辑的,它不会显示于App Store中。

Product ID(产品ID): 你产品的唯一id。通常格式是 com.company.appname.product,但它可以说任何形式。它并不要求以程序的App ID作为前缀。

Type(类型): 有三种选择

Non-consumable(非消耗品): 仅需付费一次 (例如你希望将出现从免费版升级为专业版)

Consumable(消耗品): 每次下载都需要付费

Subscription(预订): 循环反覆

Price Tier(价格等级): 产品价格。参见不同等级的价格列表。

Cleared for Sale(等待销售): 一定要选取此项,否则的话,测试时会发生非法产品ID的错误。

Language to Add(增加的语言): 选一项。下列两项将出现:

Displayed Name(显示名称): 用户看到的产品名称。比如我选择 “Upgrade to Pro”。

Description(描述): 对产品进行描述。此处输入的文本将与Displayed Name 及 Price 一起在你代码中提取 SKProduct时出现。

Screenshot(截屏): 展示你产品的截屏。儘管屏幕上会显示“提交截屏会触发产品审核过程”之类的文字(个人拙见,这是非常糟糕的设计),你还是可以安全地提交截屏而不会使产品进入审核过程。存储后,选择“Submit with app binary” (随程序二进制码一起提交)选项。是产品与程序二进制绑定在一起,所以在你最后正式提交100%完成的程序二进制码时,产品也会随之提交。

点击 “Save”

最后一定不要忘了回到view details  编辑In-App Purchases

选择刚刚添加的iap版本

7. 编写代码

下面我们开始编写代码对刚加入到iTunes Connect中的产品信息进行提取。我访问产品数据,我们需要使用 StoreKit framework。

注意: StoreKit 无法在模拟器上工作。你必须在真机上进行测试。

1.添加 StoreKit framework 到你的项目中。

2.添加SKProduct引用到你的 .h 文件中:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值