虽然听起来有点奇怪:Swift语法都还没琢磨明白就要写付费订阅的功能了🤣但需求来了总不能不理是吧,本想在B站找找付费订阅相关的开发教程的,结果找到的全是"iOS游戏辅助开发流程"、“IOS无法取消订阅解决办法”、“兼容iOS16 跟Lebus学iOS原生开发…”、“关于入门成为苹果平台上独立开发者的二三事”…🤣
最后还是靠Google找到了RevenueCat
,初步在demo实现了订阅的功能,特做记录。
老规矩,在做某一件事前首先要看的便是官方教程了:App 内购买项目配置流程,这里说明了如何设置订阅项、如何沙箱测试等操作,如果你也是我一样的IOS开发新手,建议是必看的。
关于RevenueCat
说明
- 这个产品提供了用于和Apple通讯的API服务(好像叫Server to Server?),另外提供了Swift/OC的SDK用于与RevenueCat通讯及对StoreKit的包装。
- 这个属于商业产品,月销售额低于1万美元不收取任何费用
- 使用他们提供的Demo,可以快速实现订阅目标
使用流程
App Store Connect配置
- 创建订阅群组;
- 创建订阅(自行设定订阅时长、价格或者试用期等等);
RevenueCat配置
- 注册
RevenueCat
帐户; - 新建App Store App;
填写对应的APP name、App Bundle Id、共享密钥(在App Store Connect-APP信息-App专用共享密钥中可见);
3. 新建成功后可看到RevenueCat App ID
(Demo代码中使用)、Apple Server Notification URL
(填入到App Store Connect-APP信息-App Store 服务器通知-沙盒环境服务器 URL);
- 创建Entitlements;
- 点击Attach关联Products,然后点击
Add a new product
,创建产品,这需要与App Store Connect中的订阅名称、identifier保持一致,最终应该如下图:
- 创建Offerings;
- 在Offerings下创建Packages以及关联对应的Product(如Annual就应该关联quick.process.1year);
Demo使用
- Demo源码下载;
- 关联开发者帐户、TeamId、bundleId等信息;
- 安装
RevenueCat
包:在Swift Package Manager中添加URL https://github.com/RevenueCat/purchases-ios.git; - 填写源码
Shared/Constants.swift
中的ApiKey、及entitlementID(此文设置的是ProAccess
);
测试
- 在
设置-App Store-沙箱帐户
登录刚刚创建的帐户; - 将xcode运行目标设为自己的手机,运行即可查看效果;
在User界面登录沙箱帐户,可以看到订阅状态是未激活的
此时在Weather界面点击Change the Weather
会弹出购买订阅的信息
点击购买就会弹出购买确认
输入密码购买之后User界面的状态就会变为已激活,此时就可以随意点击Change the Weather
来改变天气了!
总结
RevenueCat本身优点还是很明显的,IOS开发者可以专注前端业务逻辑,不用关注后台相关的东西,并且作为一个成熟的产品,应该是全球范围的高可用的,比自建的服务器应该要稳定很多。
缺点就是在国内访问好像速度不够快,境外访问应该没有这个问题。
这次先记录到这里,应该有不少处不够清楚甚至有错误的地方,下次加强🥹🥹