App clips是iOS14之后苹果推出的新功能。是一种即时使用主App核心功能的轻量级App。
一、轻应用唤醒方式: 官网图片
- 相机扫描二维码,点击应用图标进入。
- NFC碰一下进入。
- 配置了特定地址的App,可在地图页面进入。
- 网页中配置了UniversalLink,可点击网页横幅进入App。
- 从信息中,点击他人的分享进入
二、设计的基本理念(翻译自官方文档)
- 完成常用、基本的功能的实现,交互快速而集中。将功能限制在完成手头任务所必需的范围内。
- 不要用于营销目的。App Clips需要提供真正的价值,帮助人们完成任务。不要将它们作为宣传服务或产品的手段,也不要在App Clip中显示广告。
- 避免在App Clip中使用网页视图。App Clips使用本地组件和框架来提供应用质量的体验。如果只有web组件对你可用,提供一个快速链接到你的网站,而不是一个App Clip。
- 设计一个线性的、易于使用的、集中的用户界面。App Clips不需要标签栏、复杂的导航或设置。尽量减少屏幕和输入表单的数量。尽可能地删除无关信息并减少用户界面的复杂性。
- 在启动时,显示App Clip中最相关的部分。跳过不必要的步骤,让人们立即进入App Clip中最适合他们背景的部分。确保人们可以立即使用你的App Clip。
- App Clips需要包含所有必需的资源,完整的功能,省略启动画面,不要有未发布的功能。
- 确保你的App Clip很小。App Clip越小,它在用户设备上启动的速度就越快。在带宽有限的情况下,保持App Clip较小尤为重要。尽可能地减少不必要的代码并删除未使用的资源文件。
- 避免下载额外的数据,这会让游戏失去即时性。
- 让App Clip可共享。当有人在消息应用中分享App Clip的链接时,收件人可以从消息应用中启动App Clip。提供分享App Clip中特定点的链接的功能,并鼓励人们与其他人分享App Clip。让购买服务或产品变得容易。
- 输入付款信息可能是一项耗时且容易出错的任务。考虑支持Apple Pay提供快速结账,让人们无需输入发货信息。
- 避免要求人们在使用你的App Clip之前创建一个帐户。创建帐户是一项复杂的任务,需要花费时间和精力。考虑不需要账户,或者考虑让人们在完成任务后创建一个账户。如果你的App Clip需要一个账户来提供价值,那就限制人们需要提供的信息量——例如,通过提供“苹果登录”功能。
- 在你的应用中提供一种熟悉的、专注的体验。当人们安装完整的应用时,它会取代他们设备上的app Clip。从这一刻起,将启动App Clip的调用将启动整个应用程序。确保你的应用为以前使用过app Clip的用户提供了一个专注的、熟悉的体验。不要要求额外的步骤来减缓人们的速度;例如,当人们从App Clip切换到应用程序时,不要求他们再次登录。
三、轻App限制:
- 安装包大小限制10M以内
轻App目的是快速完成核心功能,对于复杂业务应放在主App中完成。 - 不能使用特定的Framework
在涉及阶段要考虑AppClips有一些不支持的框架:Assets Library, CallKit, CareKit, CloudKit, Contacts, Contacts UI, Core Motion, File Provider, File Provider UI, HealthKit, HomeKit, Media, Player, Messages, Message UI, PhotoKit, ResearchKit, SensorKit, Speech - 关于隐私
- 禁止AppClips在后台运行、
- 不允许通过idfv等唯一标识跟踪用户
- 不允许持续定位,每次定位都需要请求权限
- 只能与主App进行通信,不能与其他App通信
- 不能访问原生软件:相册、通讯录、多媒体、健康等
四、开发AppClips:
1. 新建App Clip。
1.1选择工程目录,添加一个Target
1.2输入Clip,选择Clip,点击下一步
1.3输入名字,选择开发语言点击完成
2. 配置开发证书等。
如果选择了自动配置证书,有可能会自动分配一个Bundle ID,如果没分配就去开发者网站添加。
2.1 新建App group:
2.1.1 选择 Identifiers,点加号新建
2.1.2 选择AppGroup:
2.1.3 编辑好了信息,就能点完成
2.2 新建bundle id:
2.2.1 选择Identifiers,点加号新建
2.2.2 选择App id
2.2.3 选择App Clip
2.2.4 选择主App,写名字
2.2.5 写描述,选择功能权限
2.3 新建描述文件:
2.3.1 选择profile,点加号新建
2.3.2 选择想要的描述文件对应的类型
2.3.3 选择bundleId
2.3.4 选择证书
2.3.5 开发测试证书选择设备
2.3.6 描述文件名
3. 配置工程
3.1 将下载的描述文件下载到本地,双击安装,选择描述文件
3.2 添加App Groups,主App和轻App都要添加。以轻App为例:
3.2.1选择工程目录,选择新建的Clip,选择Signing&Capabi'lities,点击 +Capability
3.2.2输入框中搜索group,没添加过的这里面会有一个AppGroups,我这添加过了,就没了
3.2.3选择group id。如果账号下有多个group id这里可能有多个,只选择新建的那一个就可以
3.3添加Associated Domains。和AppGroups一样的位置。这个是可以拉起AppClip的关键。
3.4模拟web发出的invocation来启动App Clip。
3.4.1选择轻应用,进入编辑页面
3.4.2用键值对的方式给AppClip配置拉起链接key为_XCAppClipURL
,值为配置在Domains中的地址
4. 配置启动链接
可将domain生成二维码,用于扫描。可以用草料二维码,这是一个在线生成二维码的网站,方便。
5. 配置测试机
5.1 设置 - 开发者
5.2 轻App测试中选择本地体验
5.3 新建或编辑轻App体验
5.4 编辑信息
6. 测试启动
6.1 打开系统相机,扫描之前生成的二维码
6.2 轻app的启动界面。此时轻App已经下载完成,点击打开,即立马进入主页
7. 开发
7.1 复用主App的代码
例如SecondVC之前只是在主App使用,现在轻App也想复用
7.1.1选择需要复用的文件,在右侧所支持的项目中点击添加
7.1.2选择轻App,点击保存。如果当前文件要在轻App中复用,那么文件中用到的框架或类也必须要在轻App中复用
7.2 轻App中用到了三方框架
7.2.1 用Cocoapods管理的
轻App也是一个Target,需要在Podfile中单独写一个Target管理其所需三方。编辑好podfile之后,执行pod install
即可。
7.2.2 用Package Dependencies管理的。选择工程 - 轻应用Target - General - Frameworks...
7.3 添加标识
复用代码后,在开发中主、轻App在一些特别的地方需要执行不同的代码时,需要通过标识来判断当前运行的哪个Target。
7.3.1 选择工程 - 轻应用Target - Bulid Setting - 搜索other swift flag
7.3.2 在other swift flag中添加-D
、AppClip
7.3.3 在需要做区分的位置通过#if
来判断target
#if AppClip
let baiDuKey = "asdfasdfasdfaswefrasdfasdgfghd"
#else
let baiDuKey = "2341234123412341234123412341234"
#endif
网友评论