OBJC创建一个APP CLIP的流程

前言

在 Xcode 工程中,你可以为你的 App 添加一个 app clip target, 利用 Xcode ,app clip 可以与你的 app 共享代码与资源,并可以编译,调试,运行在真机或者模拟器环境。但是,在实际使用过程中,开发者必须在自己的服务器上做好验证 app clip 的有效性的手段。

使用 App clip 的场景

image.png

增强用户体验

App clip 不会显示在主屏幕上,并且用户无法以管理 App 的方式对其进行管理。相反,一段时间不活动后,系统会从设备中删除 App clip 。因此,为您的 App clip 提供出色的用户体验非常重要。
App clip 应该避免复杂的界面元素(如标签栏或复杂的表单),从而提供线性,集中的用户体验。在要求用户执行复杂的任务的时候,应该减少使用复杂性的技术。例如,在 App clip 中使用 Apple Pay 来支付费用,或者利用 Sign in with Apple 来避免复杂的用户登录注册。

Keep Your App Clip Small

App clip 的大小必须不超过10 MB,才能提供即时启动。如果可能,将您的应用剪辑保持在此限制以下。

App clip 的可用框架

App clip 可以使用SwiftUI和UIKit,并且可以访问与完整应用程序相同的框架。但是,以下框架不适用于 App clip :CallKit,CareKit,CloudKit,HealthKit,HomeKit,ResearchKit,SensorKit 和 Speech。
在 App clip 使用这些框架中的任何一个都不会导致编译时错误,但是它们的 API 返回的值会指示运行时不可用,空数据或错误代码。例如,当您从应用程序剪辑中调用 HealthKit 的 isHealthDataAvailable()时,它会返回false。

用户隐私

App clip 可以使用 SKOverlay 或 SKStoreProductViewController 展示广告并推荐其他应用。但是,始终在 App clip 中启用“限制应用程序跟踪”,以保护用户隐私并防止用户跨应用程序和 App clip 进行跟踪。
App clip 无法通过 AppTrackingTransparency 请求授权来跟踪用户,并且 name 和 identifierForVendor 都返回一个空字符串。此外,App clip 无法执行后台活动,例如使用 URLSession 进行后台网络连接或在不使用 App clip 时保持蓝牙连接。App clip 也无法请求连续的位置信息访问权限。但是,他们可能会请求 When In Use authorization,该授权会在第二天凌晨4:00自动重置。
为了保护用户数据,App clip 无法访问:

  • 运动和健身数据
  • 苹果音乐与媒体
  • 来自通讯录,文件,消息,提醒和照片等应用程序的数据

除了与自身相对应的应用程序外,App clip 无法与任何其他应用程序共享数据。

创建一个APP CLIP的流程

1.添加一个App Clip的Target

首先你得闲有一个创建好的工程。在菜单栏通过路径File->New->Target->App Clip,创建一个Target。


create.png

2.项目配置

  1. 添加关联的域名 例appclips:example.com


    domain.png

2. CLIP的版本号一定要跟APP的版本号一致

  1. 提前配置APPCLIP的条件编译
    在 app clip 和完整应用之间共享代码时,可能会遇到无法在 app clip 中使用某些代码的情况。在这些情况下,请设置 Preprocessor Macros ,在其中可以声明排除代码的条件。


    preprocessor macros.png
  1. 服务器Apple App Site Association配置APPCLIP的键值
    在系统弹出 app clip 或允许 app clip 调用之前,系统会验证 app clip 的配置和调用的URL。如果无法执行验证,则不会显示app clip,也不会启动。为了使系统能够验证您的 app clip,您需要对你的 Web 服务器和 Xcode 项目进行配置:
  • 为你的服务器添加一个 Apple App Site Association 文件
  • 在 Apple App Site Association 文件中添加一个键值对,key 为 appclips,例如:
{
    "appclips": {
        "apps": ["ABCED12345.com.example.MyApp.Clip"]
    }
    ...
}

3.代码编写和引用APP文件

  1. 添加公共代码文件夹和图片资源文件夹
    为 App clip 编写代码逻辑和添加 asset 资源与正常开发 iOS App 没有什么区别,但是为了工程的可维护性,App clip 与完整的应用程序应该尽可能多的分享代码:
  • 如果你创建了一个新的 app, 并且带有 app clip 功能, 那么开发请遵循基于代码模块化的最佳实践,例如, 创建可重复使用的组件。
  • 如果为现有的 app 添加 app clip,建议先花点时间将代码重构为模块化,与 app clip 共享,避免代码重复
  • 在完整的应用程序与 app clip 中,Assets 资源共享


    common assets.png
  1. 区分APP和CLIP环境
#if !APPCLIP
// Code you don't want to use in your app clip.
    NSLog(@"不是app clip");
#else
// Code your app clip may access.
    NSLog(@"是app clip");
    
#endif
  1. 从App引用需要的公共.m文件


    image.png
  1. Cocoa Pods的Podfile 文件
    4.1 发现CLIP不能用动态库(待求证)需注释use_frameworks!
    4.2 配置CLIP的target
    4.3 配置项目的configurations


    configurations.png

4.本地测试APP CLIP

  1. 配置预览卡片
    在真正的启动App Clip之前,首先会弹出预览卡片。在提交App Clip时,是跟宿主App一起打包上传到App Store Connect上的,App Clip的预览卡片配置也是在App Store Connect上完成,提供给开发者自由配置的地方并不多,包括3个方面:


    app store connect.png

    a.配置一个头图
    b.配置副标题并提供描述文案
    c.配置交互按钮

  2. 配置_XCAppClipURL


    appclipurl.png

3. 删除设备的APP,通过二维码扫一扫打开CLIP

  1. 当APP CLIP被调起后,需要通过回调拿到URL信息
    使用系统相机扫描器扫描,将会弹出 App Clip Card
sao.png

5.审核和发布

准备发布 app clip 时,请将其作为 app archive 的一部分提交。请注意,必须通过App Store 审核,才能发布。

参考:
Creating an App Clip
Developing a Great App Clip

你可能感兴趣的:(OBJC创建一个APP CLIP的流程)