Unity iOS内购项目总结

作者: 蜜桃邂逅 | 来源:发表于2017-09-09 21:19 被阅读1404次

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

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

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

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

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

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

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

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

点击上图红色方块链接

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

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

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

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

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

点击“功能”按钮

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Unity iOS内购项目总结

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

Unity iOS内购项目总结 Unity iOS内购项目总结

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

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

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

相关文章

  • Unity iOS内购项目总结

    这几天在开发unity游戏的时候想接入ios的内购系统,所以网上查了一些有关的资料和教程。里面的东西比较全面,但也...

  • 一些资料

    Unity 集成iOS 内购 http://blog.csdn.net/dingxiaowei2013/artic...

  • Unity IOS内购

    【转】传送门:http://git.oschina.net/dingxiaowei/iOSPurchase

  • ios内购IAP相关内容

    ios内购IAP相关内容 iOS IAP应用内购详细步骤和问题总结指南 - 简书https://www.jians...

  • iOS内调用unity页面 退出之后 页面不能点击的问题

    近期在ios项目内集成了一个unity的页面,在view内加载了unityView,当调用unity的停止方法...

  • iOS内购总结

    内购流程: 用户先拿到购买产品的单子, 拿着单子去苹果那里交钱,交完钱让苹果在单子上盖个章 3.拿着盖了章的单子传...

  • iOS 内购总结

    [[SKPaymentQueue defaultQueue] addTransactionObserver:sel...

  • iOS内购总结

    内购类型有四种: 消耗型商品,非消耗型商品,非续期订阅,自动续期订阅. 其中最有难度的就是自动续期订阅的实现,开通...

  • iOS 苹果内购流程

    本文参考: iOS开发之内购完全笔记 iOS开发内购全套图文教程 iOS应用程序内购/内付费(一) 代码...

  • iOS 内购注意点

    公司的项目最近集成了iOS内购, 尽管网上有很多相当详细的内购集成教程, 但可能由于集成内购的应用比较少, 市场需...

网友评论

  • 迷途小明:兄弟,我有一个问题,我添加了一个非消耗性内购商品
    苹果审核被拒,对于已经付费的"非消耗性商品",需要提供一个恢复购买的按钮
    我的问题是如何在玩家卸载游戏,又重新安装时,能让我知道玩家已经购买过此商品,以便我能在UI上显示一个购买恢复按钮
    我的是单机游戏,不需要登录,也没有自己的服务器
    蜜桃邂逅:@迷途小明 这个具体操作我不是非常清楚,但是对于已购买的物品每个苹果都会和这个物品的product id进行绑定,就算玩家卸载重装后他还是买过这个物品的。一般情况下重装过后UI上是不会显示已经购买,但是玩家重新去点的话会自动提示玩家已经够买过了,点击提示框上的确定按钮后就会出现之前已经购买的UI界面。如果是再设置一个回复购买的按钮的话,我没试过,不过我想可以从product id入手,建议你去网上查下。
  • 8ed476074b00:请问一下 我按照上面的步骤进行下来 真机测试的时候点击购买按钮没有任何反应,在unity上面点击购买可以弹出类似unity自带的购买界面,不知道问题出在上面地方,能解答一下吗?
    蜜桃邂逅:@IceReek_679a 👌
    8ed476074b00:@別天神 谢谢回复,问题找到了 是连接沙箱网速太慢,之后就弹出苹果账号信息了。
    蜜桃邂逅:@IceReek_679a 你检查一下product id是否填写正确,unity上运行的内购不是ios的内购
  • a浮生若梦a:你好,我现在有一个问题,苹果填写内购产品,最多6个吗?我在添加的时候,显示已储存,但是返回列表后还是没有添加的那条数据,请问这是苹果什么原因吗,
    蜜桃邂逅:@a浮生若梦a 问题解决了吗?
    a浮生若梦a:@別天神 好的,我再试一下,谢谢:pray:
    蜜桃邂逅:@a浮生若梦a 不好意思,我现在躺床上准备睡觉了,明天还有工作。如果明天你还不能解决,我再帮你看下吧
  • Luser_CC:你好,做内购需要进行验证,为了安全,你这个验证是怎么做的?
    蜜桃邂逅:@CC_小白 嗯,不需要了,可能unity已经帮我们实现了。现在我的游戏内购没有问题
    Luser_CC:@別天神 游戏内购交易安全的验证啊,是xcode新增的验证,你这样做是不需要在xcode中在写代码了吗?
    蜜桃邂逅:@CC_小白 什么验证?是iTunes和unity之间交互的验证吗?就是product id
  • 56628f60b3d9:很不错的新手向教程,赞一个

本文标题:Unity iOS内购项目总结

本文链接:https://www.haomeiwen.com/subject/ilnojxtx.html