SwiftUI AppClip 之 02 创建一个App Clip流程

创建一个应用剪辑

创建一个可立即启动并向未安装完整应用程序的用户提供其某些相关应用程序功能的应用程序剪辑。

使用教程

应用程序剪辑是应用程序的轻量级版本,可在人们需要的地方和时间提供某些功能。 使用Xcode,您可以将应用剪辑的目标添加到应用的Xcode项目中,并在应用剪辑和应用之间共享代码和资产。 就像处理项目中的其他目标一样,您可以使用Xcode在模拟器或设备上构建,运行和调试应用程序剪辑。 此外,您必须配置Web服务器,以使系统能够验证您的应用剪辑的真实性。

添加应用剪辑目标

应用程序剪辑需要一个相应的应用程序,该应用程序至少应提供与该应用程序剪辑相同的功能,并且您通常会对完整应用程序和应用程序剪辑使用相同的Xcode项目。 如果您要开始一个新的应用程序项目,请首先使用Xcode创建一个新的iOS项目。 如果要将应用剪辑添加到现有应用中,请打开其Xcode项目。 然后,将应用剪辑目标添加到Xcode项目:

  • 使用应用剪辑模板添加新目标。
  • 选择一个产品名称,为您的应用程序剪辑选择适用的选项,然后单击“完成”。
新建项目

Xcode为您选择的选项创建所有必需的文件,并使用以下命令为您的应用剪辑添加目标:

  • 一种构建和运行您的应用程序剪辑及其测试的方案。要构建和运行完整的应用程序,请继续使用现有方案。
  • 一种名为“按需安装功能”的新功能。
  • 父应用程序标识符权利。
  • 应用剪辑的应用标识符,使用完整应用的应用标识符作为前缀,后跟字符串。例如,如果您完整的应用程序的应用程序标识符为(AppIdentifierPrefix)com.example.MyApp.Clip。
  • _XCAppClipURL环境变量是应用程序剪辑方案中的一部分,可让您测试调用。
  • 支持与完整应用程序相同的设备,不包括macOS。

此外,Xcode为应用程序目标创建一个新的构建阶段,该阶段将应用程序剪辑嵌入到应用程序中。

在将自己的代码添加到应用剪辑目标之前,请在模拟器或设备上运行应用剪辑。此时,由于您尚未添加任何代码和资产,因此该应用程序剪辑显示为空白屏幕。

添加关联的域权利

用户从将调用URL传递给应用程序剪辑的调用中启动应用程序剪辑,或者如果用户安装了应用程序以替换应用程序剪辑,则将其传递给完整的应用程序。无论您选择支持哪种调用,都必须将“关联域权利”添加到应用程序和应用程序剪辑目标中:

  • 在Xcode中打开您的项目;然后,在项目设置中,启用“关联域”功能以添加“关联域权利”。

  • 对于每个启动您的应用程序片段或完整应用程序的URL,使用以下模式将其域添加到“关联的域”功能中:appclips:<完全限定的域>。例如,添加appclips:example.com。

除了添加“关联的域权利”外,您还必须对服务器进行更改,以允许系统在启动之前验证您的应用剪辑。


添加代码和资产

应用程序剪辑与完整应用程序使用相同的框架,并且向应用程序剪辑的目标添加代码或资产的工作原理与对其他任何目标一样。创建新的源文件和资产,或使用现有的源文件和资产作为应用剪辑目标的成员。为了确保项目的可维护性,完整的应用程序和应用程序剪辑应共享尽可能多的代码:

如果您创建一个新应用程序,则在创建该应用程序时要牢记创建一个应用程序剪辑,并遵循促进模块化代码库的最佳实践。例如,创建可重复使用的组件,将它们捆绑为Swift软件包,然后在完整应用程序和应用程序剪辑中使用这些软件包。

如果将应用程序剪辑添加到现有应用程序,请预留时间将其代码库重构为模块化,并在应用程序剪辑和完整应用程序之间共享代码,以避免重复代码。

将共享资产添加到新资产目录,然后在完整应用程序和应用程序剪辑中使用该目录。

使用主动编译条件

在应用片段和完整应用之间共享代码时,可能会遇到无法在应用片段中使用某些应用代码的情况。 在这些情况下,请利用“活动编译条件”构建设置,在其中可以声明排除代码的条件。


使用主动编译条件

首先,导航到应用剪辑目标的构建设置,然后为“活动编译条件”构建设置创建一个新值; 例如APPCLIP。 然后在需要的地方在共享代码中添加一个检查,以排除您不想在应用程序剪辑中使用的代码。

以下代码检查您添加到“活动编译条件”构建设置中的APPCLIP值。

#if !APPCLIP
// Code you don't want to use in your app clip.
#else
// Code your app clip may access.
#endif

现在,在模拟器或设备上构建,运行和调试您的应用剪辑。

注意:在开发过程中,请按照“测试App Clip的启动体验”中的说明在本地或在TestFlight中测试URL。

对您的服务器和Xcode项目进行更改

系统出示应用程序剪辑卡或允许应用程序剪辑调用之前,它会验证应用程序剪辑的配置和调用URL。如果无法执行验证,则不会显示应用剪辑卡,也不会启动应用剪辑。为了使系统能够验证您的应用剪辑,您需要对Web服务器和Xcode项目进行更改。

首先,按照在应用程序中支持关联域中的描述,将Apple App Site Association文件添加到您的服务器。接下来,使用appclips键为应用程序剪辑添加一个条目。如果您先前已将Apple App Site Association文件添加到服务器,则将appclips项的条目添加到现有文件中。

以下代码显示了要添加的内容。请注意,apps键的值是一个只有一个条目的数组-app clip的app标识符。

{
    "appclips": {
        "apps": ["ABCED12345.com.example.MyApp.Clip"]
    }
    ...
} 

最后,在Xcode中,将您网站的域添加到应用程序和应用程序片段的“关联的域权利”中。

配置并响应调用
系统使用您在App Store Connect中配置的URL来启动您的应用程序剪辑。 因此,识别启动应用程序剪辑的URL,在启动时对其进行响应并在App Store Connect中注册它们对于创建应用程序剪辑至关重要。

发布您的应用程序剪辑
应用片段需要相应的应用。 准备发布应用剪辑时,请将其作为应用存档的一部分提交。 请注意,您的应用程序剪辑在提交进行审查后必须通过App Store审查过程。

推荐

基础文章推荐

  • 《SwiftUI是什么,听听大牛们如何说》

经典教程推荐

  • 更新近百篇SwiftUI教程《SwiftUI2020教程》
  • 帮您突破数据存储难关《SwiftUI vs CoreData数据存储解决方案》

上新

  • 《WWDC2020专栏》
  • 《SwiftUI WWDC2020 新增组件列表》

技术源码推荐

推荐文章

CoreData篇

  • SwiftUI数据存储之做个笔记App 新增与查询(CoreData)
  • SwiftUI进阶之存储用户状态实现登录与登出
  • SwiftUI 数据之List显示Sqlite数据库内容(2020年教程)

Combine篇

  • 一篇文章学懂弄通SwiftUI与Combine(含轮播动画App源码)

TextField篇

  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • 《SwiftUI实战之TextField风格自定义与formatters》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》
  • 《SwiftUI 当键盘出现时避免TextField被遮挡自动向上移动》
  • 《SwiftUI实战之TextField如何给键盘增加个返回按钮(隐藏键盘)》

JSON文件篇

  • SwiftUI JSON文件下载、存储、解析和展示(代码大全)

一篇文章系列

  • SwiftUI一篇文章全面掌握List(教程和源码)
  • 《SwiftUI 一篇文章全面掌握TextField文本框 (教程和全部源码)》
  • SwiftUI一篇文章全面掌握Picker,解决数据选择(教程和源码)
  • SwiftUI一篇文章全面掌握Form(教程和源码)
  • SwiftUI Color 颜色一篇文章全解决

技术交流

QQ:3365059189
SwiftUI技术交流QQ群:518696470

  • 请关注我的专栏icloudend, SwiftUI教程与源码
    https://www.jianshu.com/c/7b3e3b671970

你可能感兴趣的:(SwiftUI AppClip 之 02 创建一个App Clip流程)