前言
App Clip (Apple 官网称之为「轻利用」)是你已有 App 的一个轻量级版本,它领有你 App 的局部性能,能够把它看做已有 App 的 lite 版本。
App Clip 体积十分小,压缩前包体积最大不超过 10 M,且无需经 App Store 下载,因而它能保障及时性,显示 App Clip 卡片的同时它简直就曾经装置在了设施上,响应迅速,如果你迫切希望用户拜访某些性能兴许 App Clip 能满足你的需要。
本文波及到的名词含意约定如下:
App:App 指具备残缺性能的应用程序,即上架 App Store 的那个应用程序。
App Clip:指本文要钻研的轻利用。
浏览本文你将学到
- 什么是 App Clip?
- App Clip 能做什么?
- App Clip 不能做什么?
- 如何让用户发现你的 App Clip?
- 如何开发一个 App Clip?
可返回 GitHub 获取本文配套 Demo(https://github.com/yaoming88/…)
什么是 APP Clip?
App Clip 要留神的点很多,为了残缺精确表述,同时防止挂出太多官网文档使读者精力扩散,笔者翻译了局部官网文档,如你曾经理解可跳过「什么是 APP Clip?」局部间接看编码局部。
App Clip 是用户快速访问和体验 App 性能的绝佳形式。App Clip 是 App 性能的一小部分,能够在须要时随取随用。App Clip 采纳轻量级文件,运行速度快,不便用户疾速地关上应用。不论是从餐厅叫外卖、租辆车还是首次设置新的联网电器,用户在几秒之间就能开始并实现对你 App 的体验。在他们体验过后,你能够提供从 App Store 下载残缺 App 的机会。
App 的一部分
App Clip 是 App 的一小部分,因而你能够应用 iOS SDK,在与残缺 App 雷同的 Xcode 我的项目中进行开发。另外,因为 App Clip 很小,即使尚未装置到设施上,也能疾速关上。筹备好提交审核时,你能够将它作为残缺 App 的一部分在 App Store Connect 中进行治理。
下载残缺 App
App Clip 提供了疾速展现 App 价值的机会。要让用户更轻松地获取残缺 App,你能够适时在 App Clip 中显示下载选项。你甚至还能保留用户提供的任何信息,并且无缝转移到残缺 App 中。
精简设计
App Clip 专一于疾速实现一项工作。在现实的 App Clip 体验中,用户能够在几秒之间开始和实现某项工作。你能够通过以下形式进一步精简体验:
反对 Apple Pay
不要求用户提供信用卡信息,而抉择通过 Apple Pay 实现收款。
与「通过 Apple 登录」配合应用
为了更加便捷地提供个性化体验,App Clip 能够应用「通过 Apple 登录」来登录你的 App 服务,不要求用户填写表单或设置新帐户。
在须要时随取随用
App Clip 体验的一个要害局部是发现路径:
App Clip 码
用户发现 App Clip 的最佳形式。App Clip 码形状好看而独特,用户一看见就晓得有 App Clip 等着他们摸索。每个 App Clip 码均编入一个 URL,还能退出 NFC 标签,用户能够用手机凑近读取,或是用摄像头扫描。
NFC 标签
用户只需将 iPhone 凑近你搁置在特定地位的 NFC 标签,即便是在锁屏状态,也可启动 App Clip。
二维码
将二维码搁置在特定的地位,让用户应用条形码读取器或「相机」App 扫描这个码来启动 App Clip。
Safari 浏览器 App 横幅广告
如果你的网页配置了实用于 App Clip 的智能 App 横幅广告,用户只需轻点该横幅,就能关上 App Clip。
「信息」中的链接
如果你在 App Clip 中启用了共享性能,用户能够通过 iMessage 信息发送链接,收到链接的人能够间接从「信息」中关上它。
「地图」中的地点信息卡
如果你的 App Clip 关联了特定的地位,你能够在「地图」的对应地点信息卡为其注销,以便用户能在相应地位看到并关上 App Clip。
最近应用的 App Clip
App Clip 不会芜杂地显示在主屏幕上,但用户能够在全新 App 资源库的「最近增加」类别中找到并启动 App Clip。
8 小时告诉
App Clip 能够采纳一种新的告诉类型,在用户启动你的 App Clip 后 8 小时内面向用户显示。用户轻点一个告诉,即可间接返回到你的 App Clip。
地位验证
Apple 推出了专门配合 App Clip 应用的地位验证 API,帮忙你确认用户扫描的 App Clip 码、NFC 标签或二维码的理论地位与显示的地位是否相符,你只需验证一次即可。
多种 App Clip 体验
一些 App 提供多种体验,你能够对 App Clip 进行配置,以特地的形式反对每一种体验。例如,一个餐厅 App 能够反对多家餐厅。App Clip 反对通过单个 App Clip 为每家餐厅打造独特的体验。
残缺 App 体验
如果用户已在设施上装置你的 App,App Clip 码和 App Clip 链接会关上这个 App,而非对应的 App Clip。你的 App 应解决这个链接,为用户提供与 App Clip 同样的体验。
App Clip 的限度
App Clip 是 App 的轻量级版本,在须要时随时随地提供其局部性能。它提供了一个重点突出的功能集,旨在立刻启动,爱护用户隐衷并爱护资源。因而,App Clip 有一些限度。在创立 App Clip 之前,请先查看 App Clip 可用的技术(https://developer.apple.com/d…)。
确保你要应用的框架能在 App Clip 上失常工作
App Clip 应用 SwiftUI 和 UIKit 开发,并能够拜访与你的残缺应用程序雷同的框架。然而,以下框架在运行时提供的性能无限或无奈提供性能:Assets Library, Background Tasks, CallKit, CareKit, CloudKit, Contacts, Contacts UI, Core Motion, EventKit, EventKit UI, File Provider, File Provider UI, HealthKit, HomeKit, Media Player, Messages, Message UI, PhotoKit, ResearchKit, SensorKit, 和 Speech。
爱护用户隐衷
App Clip 为爱护用户隐衷对一些权限进行了限度,避免用户跨应用程序和 App Clip 进行跟踪,例如:
SKAd
提供的性能不可用。- App Clip 无奈应用 App Tracking Transparency 跟踪用户。
name
和identifierForVendor
返回一个空字符串。- App Clip 无奈申请间断的地位拜访。然而,你能够调用
requestAuthorization()
申请受权,该受权将于第二天凌晨 4:00 主动重置。 - App Clip 无奈申请「
Pass Type IDs Entitlement
」来读取存储在「钱包」应用程序中的通行证。然而,如果你的 App Clip 蕴含向「钱包」应用程序增加通行证的性能,你能够查看此通行证是否曾经存在。无关更多信息,请参阅 Checking Whether a Pass Is in the Library。 - 除了相应的残缺应用程序外,App Clip 无奈与任何其余应用程序共享数据。无关更多信息,请参阅在 Sharing Data Between Your App Clip and Your Full App。
App Clip 还附带有助于爱护用户数据的限度。他们无法访问:
- Apple Music 和媒体
- 来自日历、通讯录、文件、衰弱、信息、揭示事项和照片等应用程序的数据
- 静止和健身数据
此外,你不能在你的 App Clip 中应用 FaceID,因为 NSFaceIDUsageDescription
受权对 App Clip 不可用。然而,你能够应用本地身份验证框架来应用 Touch ID 对用户进行身份验证。
留神:
你的残缺应用程序只能有一个 App Clip,残缺应用程序必须反对 App Clip 的所有性能。
编码
置信浏览完以上内容,你应该对 App Clip 是什么能干什么非常分明了,接下来一起看下 App Clip 的代码局部。
创立一个 Demo 工程
创立工程:
增加一个登录模块:
运行成果:
创立一个 App Clip target
App Clip 其实就是你原有工程里新增的一个 target
几乎截然不同
简略写几句代码
察看成果
主工程运行成果:
App Clip 运行成果:
咱们看到登录页面没有通过任何批改被 App Clip 完满复用,理论场景会略微简单些,须要暗藏三方登录入口。
App Clip Target 根本配置
配置环境变量
在 App Clip 这个 Target 上增加环境变量 APPCLIP
,用以辨别共享代码所处的以后环境
依据环境变量做适配
共享代码依据环境变量 APPCLIP
做适配:
将 App Clip 与你的网站关联(Associated Domains)
配置方面和反对 Universal Link 和 Web Credentials 类似,步骤如下:
- 为 App 和 App Clip 的 target 增加 Associated Domain
appclips:domain.com
。
- 在 Server 的 App Site Association (通常是在网站
.well-known
下的apple-app-site-association
文件) 中增加这个域名对应的appclips
条目:
{
...
"appclips": {
// App Clip 的 Bundle Identifier
"apps": ["ABCED12345.com.example.MyApp.Clip"]
}
}
如果你正在应用 Universal Link 则只需下载该文件(domain/apple-app-site-association),并增加以上配置后让运维同学帮你放到 Server 的指定地位即可。
留神: 当用户为 App Clip 装置相应的 App 时,残缺的 App 将替换 App Clip。从那一刻起,每次调用都会启动残缺的应用程序,而不是 App Clip。因而,你必须将残缺的应用程序与你的网站相关联。此外,残缺的应用程序必须解决所有调用并提供与 App Clip 提供的雷同性能。
剖析你要用 App Clip 实现的业务
App Clip 的设计初衷是免装置,疾速启动,所以包大小十分无限,请把无限的性能留给能疾速吸引用户的性能或及时性的要害业务。
模块划分(App 与 App Clip 共享代码提取)
如果你没有分模块开发,则只需在共享源文件处勾选 Clip 这个 target 即可
如果你应用 CocoaPods 分模块开发则更简略,你只需在 Podfile 文件里 Clip 下依赖该模块即可。
编写性能代码
获取 URL 携带的信息
与 Universal Link 一样,当 App Clip 被唤醒,App Clip 的 UserActivity 生命周期办法将被调用,基于你所应用的技术它将回调:
基于 SwiftUI:onContinueUserActivity(_:perform:)
)
基于 Scene:scene(_:willContinueUserActivityWithType:)
基于 App Delegate:application(_:continue:restorationHandler:)
获取到 NSUserActivity
后,就能够通过 webpageURL
获取唤起的 URL 了。
代码里辨别是 APP 环境还是 App Clip 环境
参考上文「配置环境变量」和「依据环境变量做适配」。
开发阶段调试
在开发阶段,能够通过设置 _XCAppClipURL
这个环境变量,运行 App Clip 这个 target 来模仿通过特定 URL 唤起的状况。当 Associated Domain 设置正确后,在 Xcode 中运行 App Clip,就能够拿到蕴含这个环境值的 NSUserActivity
。这样就能够模仿实在场景调试了。
与原生 APP 开发简直齐全一样,须要留神的是唤起时如何获取 URL 携带的信息。
真机测试
开发测试阶段能够通过配置 Local Experiences(本地体验)
来测试你的 App Clip。
真机配置 App Clip 体验
Setting
-> Developer
-> APP CLIPS TESTING
-> Local Experiences
-> Register Local Experiences
-> 填写测试信息
生成 App Clip Code
你能够应用 App Clip Code Generator 命令行工具或 App Store Connect 生成 App Clip Code。
1、下载 App Clip Code Generator 并装置
2、执行以下命令生成 App Clip Code
AppClipCodeGenerator generate --url https://appclip.example.com --index 9 --output ~/Desktop/filename.svg
咱们能够看到生成了一个 svg 文件,更多样式请 移步官网文档
提醒:
要应用 App Store Connect 创立 App Clip Code,你首先须要上传蕴含 App Clip 的 App 版本并创立高级 App Clip 体验。如果你尚未这样做 – 例如,在开发期间 – 请改用 App Clip Code Generator 命令行工具。
测试真机体验
以上设置实现后就能够真机体验你的 App Clip 了。
- 摄像头扫描
- 手机凑近 NFC 标签
数据迁徙
当用户下载完 App 时,App Clip 数据会主动迁徙到残缺 APP。
公布
随主利用提交到 App Store Connect,并按疏导正确配置 App Clip 体验即可。
总结
App Clip 开发属于 iOS 原生开发,能够应用 SwiftUI 和 UIKit,Swift 和 Objective-C,开发过程简直跟原生开发完全一致,对 iOS 开发者来说学习老本很小。
在微信小程序流行的当下 App Clip 在国内的发展前景还并不明朗,庆幸的是开发一个 App Clip 并不会占用你过多资源,要晓得 重点是代码复用。
最初举荐大家一款 App Clip Shazam
,体验形式:控制中心关上「音乐辨认」,当四周有音乐播放时会弹出告诉横幅,点击该告诉横幅即可关上该 App Clip 并定位到辨认到的歌曲,实用又有科技感。
参考
1[[app-clips]](https://developer.apple.com/a…)(https://developer.apple.com/a…)
更多精彩请关注咱们的公众号「百瓶技术」,有不定期福利呦!
- 1 ↩