Unity iOS内购项目总结

这几天在开发unity游戏的时候想接入ios的内购系统,所以网上查了一些有关的资料和教程。里面的东西比较全面,但也有一些已经比较老了。所以在实际开发的时候还是踩了一些坑。所以在这里分享一下自己的经验,让像我一样的Unity新人少走弯路。

先介绍一下自己的开发环境和接入ios内购项目前的准备工作。我用的Unity版本是Unity 2017.1.1f1个人版,这个版本也是到目前为止(2017年9月)最新的版本。使用的是unity5.5之后自带的跨平台内购插件(In-App Purchasing)。想要接入ios内购项目就必须购买苹果的开发者项目,价格为99美元一年。至此,我们的准备工作就算完成了。

接下来,就要在apple网站上面配置我们的App。打开并登陆Itunes Connect。

Unity iOS内购项目总结_第1张图片

在创建App之前请把协议、税务和银行业务填写完毕。这个很重要,以后你的app赚钱了,你就必须要履行相关的义务。不过这篇文章不做介绍,需要了解的可以去百度。在这里我提供一篇介绍如何填写的文章:协议、税务和银行业务。

如果你完成了税务的填写,那么请点击我的App。

Unity iOS内购项目总结_第2张图片

下面白色部分是已经创建的APP。如果你是第一次开发ios项目的话请点上图左上角的“+”按钮。

Unity iOS内购项目总结_第3张图片
Unity iOS内购项目总结_第4张图片

如果你之前都没有开发过App或者你从来没有把Unity导入进Xcode的话,就会出现上面的对话框。什么是套装ID,其实就是Bundle ID。

Unity iOS内购项目总结_第5张图片
Unity iOS内购项目总结_第6张图片

这个就是Bundle ID,一个App对应一个Bundle ID。所以如果你跳出这个对话框就说明目前你已经没有可用的Bundle ID了,所以要注册一个。说到这里坑的地方就要来了,马上我会向大家展示。不过在这里不管你有没有跳出这个对话框,你都重新去注册一个新的。点击“请在此注册一个”按钮。如果你之前就有一个Bundle ID的话,请进入注册Bundle ID。


Unity iOS内购项目总结_第7张图片

点击上图红色方块链接

Unity iOS内购项目总结_第8张图片

上面红色方块里的就是你所拥有的Bundle ID,一般情况只要你曾经把unity导入到xcode里面都会有一个Bundle ID。不过坑就在这里,请点击你的这个Bundle ID。

Unity iOS内购项目总结_第9张图片

你会发现所有功能除了GameCenter以外都是关着的包活内购功能,并且不能修改,至少我目前为止还不知道怎么改。这就比较坑了,我没发现这个坑之前不管怎么试都没有成功。所以在这里我们就要新建一个Bundle ID。回到之前的页面,点击右上角的“+”按钮。


Unity iOS内购项目总结_第10张图片

在Name这一栏就填上你app的名字就可以了。

Unity iOS内购项目总结_第11张图片

Bundle ID就请按照下面的书写格式填写com.你或你的团队的域名.app的名字。

Unity iOS内购项目总结_第12张图片

上面就是在你这个id中可以提供的服务,我们发现内购功能已经被默认勾选了。如果你不需要其他功能的话就点击下面的“continue”按钮。这样我们的Bundle ID就创建好了,可以把页面关闭了。回到之前的Itunes Connect,点击新建App,这时候你刚刚注册的ID就显示在一个下拉框中,选择这个ID。

Unity iOS内购项目总结_第13张图片

点击“功能”按钮

Unity iOS内购项目总结_第14张图片
Unity iOS内购项目总结_第15张图片

这里我们就可以看见app里所有的内购项目了,如果你没有创建过内购项目,下面是空的。点击图中的“+”按钮。

这里对内购项目分为四个类型,每个类型下面都有明确的解释,你需要根据自己app的实际情况来选择消费类型。我在这里就选择“非消耗类型”来讲解。点击“费消耗类型”,并创建。

Unity iOS内购项目总结_第16张图片

参考名称就填实际的内购名称,比如说是出售某个皮肤,就填XXX皮肤。产品ID这个要注意了,一会要用的Unity中,请谨慎填写。一般的格式就是你的Bundle ID+内购项目名称。比如com.TeamName.AppName.Skin。下面是定价,按照实际需求设定。内容托管现在我还没搞清楚,以后会去了解下,再来补充,这里是不用去管它。

Unity iOS内购项目总结_第17张图片

本地化版本,一般情况填都是简体中文,如果打算在别的国家上架并使用当地的语言就点击“+”按钮添加新的语言。显示名称和描述都是按照实际情况来填写。App Store推广暂时不用管,如果你的项目有需求也可以进行设置。

Unity iOS内购项目总结_第18张图片

接下来就是审核信息了,一般情况就是把你的购买这个项目的UI截图并上传,然后在旁边的审核备注里填写具体的购买信息和购买后的作用。

到这里一个内购项目就已经完成了,如果上面的信息没有填写完整的话,这个内购项目的状态会变成“缺少元文件”。这里顺便提一句,之前我让大家看的第一个Bundle ID,如果使用这个Bundle ID,里面的内购功能没有打开的话,你所创建的所有内购项目的状态都是“正在等待上传”。就是这个坑让我卡了大半天。所以新人在这里就需要注意了。当你的内购项目成功创建以后,状态应该是“准备提交”。

Unity iOS内购项目总结_第19张图片

好了,如果在测试阶段的话,我们还需要一个沙箱测试账号,用这个账号可以测试内购项目而不用自己的钱。回到Itunes connect主页。点击“用户和职能”按钮。

Unity iOS内购项目总结_第20张图片

再点击“沙箱测试技术员”按钮

Unity iOS内购项目总结_第21张图片

然后在用户旁边点击“+”按钮,完成所有填写,可以随便填,记住邮箱和密码就行。至此,itunes connect上面所有的操作就算完成了。接下来就要到Unity里面进行操作了。

打开Unity,进入你的项目,在最右边的面板中选中Services,并打开下面的In-App Purchasing。

Unity iOS内购项目总结_第22张图片

然后根据提示把内购插件导入进你的项目中,这个插件就在你项目的Plugins文件夹下面。这个插件可以用简单的控件进行操作,也可以用脚本来操作。这里我就不用代码了,因为这类代码网上也很多,需要的可以自己去找下。

这里我就介绍下如何使用挂载控件的方法,简单易懂。

首先选中需要内购的Button,在这个Button中添加IAP Button的组件。

Unity iOS内购项目总结_第23张图片
Unity iOS内购项目总结_第24张图片

上面这个面板就是添加内购组件的面板。此时这个里面是空的,需要添加内购项目。点击“IAP Catalog”按钮。点击“Add Product”按钮。

Unity iOS内购项目总结_第25张图片

注意这里的ID就是之前的产品ID。下图右边的产品ID。

Unity iOS内购项目总结_第26张图片

Type就是之前选择内购项目的四个类型之一,是什么就选什么。Locale填Chinese,Title就选内购项目名称。创建完之后回到Inspector面板,这时候点击Product ID下拉菜单,就会显示你刚创建的内购项目。选完它之后,就可以添加购买成功和失败的方法了。就像普通按钮那样就行了。之后就可以到入到Xcode中了。不过这之前一定要注意在PlayerSetting里的Bundle Identifier一定要和在Itunes Connect中创建的要一模一样。导入到Xcode后,打开Capabilities中的In-App Purchasing。

Unity iOS内购项目总结_第27张图片

为了使用沙箱账号进行测试,我们必须把原来自己真机上的账号注销掉。点击app store把页面滑到最下面,这时可以看见自己的邮箱账户。点击你的邮箱,再点注销。此时你的账号就被注销掉了。

Unity iOS内购项目总结_第28张图片
图片发自App

在这里,你不需要登入沙箱账号,因为一会点击app中内购按钮的时候才会被要求登入。此时就算你登入了要会被告知失败。准备好以后,就从Xcode中打开你的app项目,并点击你刚刚设置好的内购按钮。下面是我项目的演示。


Unity iOS内购项目总结_第29张图片
图片发自App



Unity iOS内购项目总结_第30张图片
图片发自App

可以看到,测试已经成功了。但要注意一点,Environment sandbox,这个意思是你正在使用沙箱测试账号购买这个内购商品,如果没有出现,请不要点击购买进行测试,重新检查自己的ios账号有没有注销掉,不然会扣除里面真的货币。

好了,到这里,所有的步骤都已经完成了。如果想要在真正上线的app中使用,还需要和app一起提交进行审核。

我自己也是一名unity初学者,如果不嫌弃,我们可以一起交流,你有什么问题也可以来问我。

你可能感兴趣的:(Unity iOS内购项目总结)