苹果在推出iOS14的同时,推出了App Clip,功能和用法跟小程序和安卓轻应用类似。
但是,相对于小程序来说,App Clip 对于源生开发者更友好。
App Clip的开发跟源生应用的开发几乎无二。通过Swift或者OC来编写,对于开发者来说,大大降低了学习成本。
在 Xcode 工程中,你可以为你的 App 添加一个 app clip target, 利用 Xcode ,app clip 可以与你的 app 共享代码与资源,并可以编译,调试,运行在真机或者模拟器环境。
但是,在实际使用过程中,开发者必须在自己的服务器上做好验证 app clip 的有效性的手段。类似于,当初苹果推行的UniversalLink。
App Clip是建立在一个源生应用基础之上的。是App功能的一部分,可以理解为功能子集。
实操
一 给App新增一个app Clip Target (需要Xcode12以上才可以创建)
1 新增一个target,选中app clip点击确定。
2 输入 App clip 的名称,以及为 app clip 选择合适的选项,系统会自动依据住App给新的target创建identifier(原来的identifier.clip) 并点击完成 .
3 添加 Associated Domains Entitlement。 App clip 可以通过用户传入的一个 URL(例如:扫码)来唤起,用户可通过 app clip 传递给主 app 一个。URL 的方式安装完整应用,要支持以上俩种调用方式,必须在 app 和 app clip 中加入 Associated Domains Entitlement:打开工程设置,在 Associated Domains capability 中加入 the Associated Domains Entitlement使用以下样式将其 domain 添加到 Associated Domains capability 功能中:appclips:yourDomien.com(跟UniversalLink 的配置类似,只是将applink换成了appclips)
4 服务器配置,在系统弹出 app clip 或允许 app clip 调用之前,系统会验证 app clip 的配置和调用的URL。如果无法执行验证,则不会显示app clip,也不会启动。配置方法跟UniversalLink一样,新增一个键值对,key为appclips,value为一个对象 "apps": ["bundle id.Clip"]
二 给App Clip增加代码
就跟普通的多target项目一样,这里也只是新增了一个target。
1 找到对应app clip target目录下的文件,进行代码编辑(正常新建文件,系统会自动选的target为app clips)。
2 可以共享主App中的代码。此时,找到需要放进app Clip 中的文件,找到.m文件中的targer membership选项(这里本身只选中了主App的target),勾选上app clip target。 该文件就可以在app clips target中被访问到。
3 把代码编译成framework,引入项目。就可以共享了
4 把代码放到私有库中,在podfile中,新增 target 'ClipTest'。 将私有库的地址,同时引入两个target,就可以共享代码了
三 在 App Store Connect 中注册 App Clip
系统使用您在 App Store Connect 中配置的 URL 来启动您的 app clip。因此,识别启动 app clip 的URL,在启动时对其进行响应并在 App Store Connect 中注册它们对于创建 app clip 至关重要。
可以通过手机本地注册一个开发版本的,进行预览。
- 首先将 SugarClip 通过 Xcode 在手机运行起来。
- 打开手机【设置】-【开发者】-【Local Experience】-【Register Local Experience】
填入 URL PREFIX,打开任何以 URL PREFIX 为前缀的 URL,都会被当做打开 App Clip 来处理。
填入 Clip Bundle Id。
填入 Title、Subtitle,选择一张图片,这些信息将会显示在 App Clip Card 上。
准备发布 app clip 时,请将其作为 app archive 的一部分提交。请注意,必须通过App Store 审核,才能发布。
需要注意的点
目前,app clip只允许 和其对应的主 app 通信,不允许和其他 app 进行通信,这就导致微信登录分享支付等功能在 App Clip 里使用不了。但是可以使用苹果自带的 apple pay进行支付。
不能访问苹果音乐、多媒体,通讯录,文件,运动健康,相册等数据。
不能跟踪用户信息,也不能通过 identifierForVendor 来获取用户唯一标识。
不能持续地获取用户位置,每次使用位置需要请求用户授权,次日凌晨 4:00,会自动关闭授权。再次使用位置时,需要用户重新授权。