iOS App Clips学习笔记

iOS App Clips图鉴:原理、配置与调试,一文搞定免下载轻量应用 在移动开发中,应用体积和获客成本一直是核心痛点。iOS平台提供的轻量化运行机制——App Clips,允许用户无需下载完整应用即可体验核心功能。其底层通过关联域名(Associated Domains)与AASA文件实现URL触发,并严格限制包体在10MB以内。这种设计适合扫码支付、共享设备、线下点单等高频快速场景,既能完成支付、定位等原生能力,又能无缝引导用户安装完整应用。本文从工程视角,系统梳理了App Clips的架构原理、Target配置、签名规则、Experience注册及真机调试常见问题,帮助开 阅读详情
一、什么是App Clip?

App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序。它不需要下载就直接能打开。这样即可达到不下载完整版APP便可体验APP的部分功能,即用即走。

二、App Clip触发场景
  • 扫描NFC标签或者二维码
  • 点击来自Siri中基于位置的建议
  • 点击地图app中的链接
  • 点击网站上智能推荐应用横幅
  • 点击通过“信息”App分享的链接
三、App Clip 体验准备

开发环境:Xcode12 beta,iOS14系统

四、创建App Clip

创建App Clip的前提是必须先有一个App(没有项目则需先新建),然后在已有的App项目上新建Target:

(1)使用App Clip 模板添加一个Target:Xcode菜单项File->New->Target…

target.png

(2)输入App Clip的Product Name,选择开发相关配置,点击完成

target2.png

(3)项目结构与完整版App一致

project_arch.png

五、代码与资源复用

因为App必须包含App Clip的所有功能,所以App Clip代码应该是APP代码的子集。这样便会存在项目代码和资源的复用问题。

1、关于代码复用:
我们可以把重用代码拆分成重用组件,使用cocoapods来管理(新项目推荐使用Swift Packages)


source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

def pod_Target_TestDemo
	pod 'AFNetworking'
end

def pod_Target_Share
	pod 'SDWebImage'
end

target 'TestDemo' do
  pod_Target_TestDemo
  pod_Target_Share
end

target 'TestDemoAppClip' do
  pod_Target_Share
end


2、使用条件编译:
某些场景下,有些代码可能无法在App Clip的Target中使用:
(1)Objective-C中,我们可以通过在App Clip Target的Build Settings中找到Preprocessor Macros,新增APPCLIP项:

build_settings1.png

在代码中使用:


#ifndef APPCLIP
    NSLog(@"this is not App Clip!");
#else
    NSLog(@"this is App Clip!");
#endif

(2)Swift中,我们可以通过在App Clip Target的Build Settings中找到Active Compilation Conditions,新增APPCLIP项:

build_settings2.png

在代码中使用:


#if !APPCLIP
	print("this is not App Clip!")
#else
	print("this is App Clip!")
#endif


3、关于图片资源复用:
我们可以添加一个新的Asset Catalog作为一个共享的assets,然后在完整版App和App Clip中共用这些资源。

share_assets.png

六、App Clip访问调用URL

当用户启动一个App Clip,App Clip相关联的生命周期方法将被调用,我们会接收到一个NSUserActivity对象,后续便可通过访问这个NSUserActivity对象来处理任何状态和数据。

不同UI框架的生命周期方法需实现的回调方法不一致:

1、基于SwiftUI的App Clip和完整版App,需实现:

onContinueUserActivity(:perform:)

2、基于UIKit 的App Clip和完整版App
(1)生命周期事件定义在UISceneDelegate中,需实现:

scene:continueUserActivity:

(2)生命周期事件定义在UIApplicationDelegate中,需实现:

application:continueUserActivity:restorationHandler:

注意:完整版App必须处理App Clip所需处理的全部调用。启动时,需确保调用类型为NSUserActivityTypeBrowsingWeb,然后再访问已启动App Clip的URL。

七、App Clip有哪些限制?
  • 大小限制:不能超过10MB。

  • 一个App有且只能有一个App Clip,且App的功能必须包含一个App Clip中的所有功能。

  • App Clip无法把数据存储到keychain来共享给完整版App,数据共用只能通过一个共享的app container 或者 user defaults ,注意不要在app container或user defaults中存储用户敏感信息。

  • App Clip不可用的frameworks:CallKit、CareKit、CloudKit、HealthKit、HomeKit、ResearchKit、SensorKit、 Speech。

  • App Clip无法获取到设备名([UIDevice name])和广告标识符(identifierForVendor),其对应的API会返回空串。

  • App Clip不能执行后台任务:例如,在App Clip不使用时,用NSURLSession进行后台联网或保持蓝牙连接。

  • App Clip的通知和定位权限是免申请,用户可以主动关闭:通知在8小时内有效,位置只能获取一次,第二天凌晨4点会自动重置。如需重度使用,可通过弹窗申请。

  • App Clip无法访问以下数据:

      运动和健身数据
      
      苹果音乐和媒体
      
      联系人,文件,消息,提醒和照片等应用数据
    
八、App Clip需注意的地方

1、 App Clip不会显示在用户主屏幕上,且用户不能像管理完整版App一样管理App Clip,如果App Clip在一段时间内不活跃,系统会自动从设备中清理掉对应的App Clip。

2、App Clip应避免复杂的界面元素,如TabBar或复杂的表单,为了降低技术的复杂性,推荐使用Apple Pay和Sign in with Apple。

3、App Clip会给完整版App保留以下功能:

(1)高级网络功能(如Bonjour)或本地Wi-Fi网络配置

(2)App extensions

(3)自定义和设置:如创建一个settings bundle

(4)数据移交和打开文档

(5)内购和支付卡配置

(6)低级Unix功能如:BSD通知

(7)iPad上的分屏

(8)自定义URL schemes的注册

(9)使用StoreKit的requestReview(in:)方法请求用户对该应用进行评论

(10)搜索配对的蓝牙设备

九、对于App Clip的一些疑问

1、App Clip必须在iOS14上,推荐使用Swift开发。

2、关于数据共享问题:
App Clip与主App通信方式和普通Extension Target一致,添加App Groups,把App Clip和主App放到同一个App Groups中就能访问user defaults数据。

3、如果App Clip需要展示广告或者推荐其他APP,我们应该怎么做?
使用 SKOverlay或者SKStoreProductViewController。

由于目前没法配置App Clip测试,关于App Clip配置部分建议看苹果官方文档,后续实际开发再补充。

此文仅供学习交流,转载请注明出处!

iOS App Clips学习笔记:https://www.yangshebing.com/2020/07/12/iOS-App-Clips%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/

「苹果小程序」App Clips 和微信小程序区别在哪?我们做了一次上手实操 作者|何世友、彭权华 阅读原文 6 月 23 日,Apple Park 的观众席上空无一人,但此时一场特别的「科技春晚」正在上演。 在 2020 年的 WWDC 大会中,自 iOS 7 以来变动最大的一次更新——iOS 14 来了,AirPods Pro 有了黑科技,ARM Mac 也来了。但对小程序开发者来说,他们最关心的应该还是此次 WWDC 发布的 App Clips 了。 「一个无需下载应用,就能使用 app 的功能。」这听上去是不是和小程序有点相似,但这是 App Clips,也被一部分人称为「 阅读详情

相关推荐

iOS操作系统的App Clip轻应用开发

App Clip技术旨在解决传统移动应用下载安装流程冗长的问题,为用户提供"即用即走"的轻量级体验。App Clip与完整应用的区别与联系开发框架和技术选型实际开发中的关键问题与解决方案性能优化和用户体验提升策略本文将按照App Clip开发的生命周期组织内容,从基础概念到高级优化技巧,最后探讨未来发展方向。每个技术点都将配合实际代码示例和架构图进行说明。App Clip:苹果官方定义的轻量级应用,体积小于10MB,可快速启动无需安装Invocation。

操作系统内核探秘的博客 1515

iOS-App Clips轻应用

App Clip 仅限应用于特定场景,即尽可能快地完成一个任务,即用即走。你可以把它看作主 app 的核心功能应用,对于复杂的任务应该在其对应的主 app 完成,因此某些功能被禁止在 App Clip 中使用官网介绍。

weixin_44836266的博客 3691

27、探索 Combine 框架与 App Clips 开发

本文深入探讨了 Combine 框架的错误处理机制,重点介绍了 flatMap 和 catch 操作符的使用,并全面解析了 App Clips 的概念、使用场景、用户旅程及触发方式。通过一个咖啡店应用的示例,详细讲解了如何创建 App Clip 目标、共享主应用的代码和资源、使用 Active Compilation Conditions 条件编译,以及如何在 App Store Connect 中进行 App Clip 的配置与测试。文章最后总结了 App Clips 的开发要点,并展望了其未来在移动应用

java5的博客 92

App Clips 介绍及配置流程

App Clips 是 iOS 14 的一个重要“卖点”,它提供了一种“即时使用”的方式,让用户可以在特定时间、特定场景,在不下载完整 App 的前提下,体验到 App 的核心功能。

假装自己很用心的博客 3855

28、开发与识别:App Clips与Vision框架的技术探索

本文深入探讨了iOS 14中引入的App Clips功能,包括其配置、链接及触发方式,并结合Vision框架讲解了文本识别与手部地标识别的技术实现。通过详细示例代码,帮助开发者快速掌握App Clips的开发流程以及Vision框架的核心功能,从而提升应用的用户体验与交互能力。

java5的博客 96

USC EE450 CSCI455 CSCI571 Midterm 总结

EE450 Compter Network                1.历年Midterm考题。(更新至2017年spring,如果大家有新的资源欢迎编辑)                 google drive:https://drive.google.com/drive/folders/0B_LCDxpiiXZ1cUNReFpZZHo4NG8?usp=sharing

Small_hour 7112

iOS - App Clip「苹果小程序」

App Clips是什么? 官方对其的定义是—— App clips are a great way for users to quickly access and experience what your app has to offer. An app clip is a small part of your app that’s discoverable at the moment it’s needed. App clips are fast and lightweight so a user

宋卓的博客 5413

【Agent】多智能体框架MetaGPT入门教程

创建一个 Action 类的子类 SimpleWriteCode,子类中定义好 prompt,并解析返回结果。在 MetaGPT 中,

酒酿小圆子呀~ 3142

App Clips简介以及demo演示

一、探索app clips https://developer.apple.com/wwdc20/10120 1、开发者需要知道的前提条件 1、必须要有对应的app(clip应该只是app的一个附属产品);//这与微信小程序不同 2、必须是iOS14系统; 3、可以用 Swift 或 Objective-C 语言; 2、开发过程中需要注意的点 1、这是一个独立的程序,并不依赖于具体app,专门用于app clips所必需的功能; 2、和app一起提交审查就可以,两者不能分别提交审查;...

cyhaolihai的博客 5440

置顶必读(1) | 2026最新首发,全网最全 Spring Boot 学习宝典(附思维导图)

从0到1以知识点+实例+项目的教学模式对SpringBoot框架由浅入深进行学习,快来跟bug菌一起学习吧。

**My Coding Family** 16万+

Android系统开发工程师面试指南与参考答案

本文整理了Android系统开发工程师面试常见问题与参考答案。核心内容涵盖:1)Framework层定制方法,如修改HAL和系统服务;2)ANR问题分析工具(systrace)与解决方案;3)性能优化实践,包括开机加速和功耗管理;4)四大组件工作机制与应用案例;5)Native崩溃调试技巧。文章强调通过AOSP源码研究、工具使用和项目案例准备来提升面试表现,重点考察应聘者的系统开发深度和实操能力。参考答案均基于实际开发经验,提供可量化的优化成果说明。

郑伟强dev的专栏 257

iOS调试利器Chisel:App Clips轻量级应用调试的终极指南

Chisel是一套强大的LLDB命令集合,专为iOS应用调试设计,能够显著提升开发效率。无论是定位UI问题、分析内存泄漏还是调试复杂业务逻辑,Chisel都能提供简洁高效的解决方案,尤其适合App Clips这类轻量级应用的快速调试需求。 ## 🚀 快速安装指南 ### 一行命令完成安装 通过Homebrew可以轻松安装Chisel: ```bash brew install chisel

gitblog_00977的博客 961

51-14 Retentive Network,RetNet 多尺度保留机制序列建模论文精读

RetNet 提出了多尺度保留机制序列建模,该机制支持三种计算范式,即并行、循环和分块循环。RetNet有更好的全局注意力建模、高效的计算效率、对遮挡的鲁棒性、支持基于注意力的图像生成、与置信度相关的门控机制和多任务学习等特点,对不同视觉任务可以共享历史注意力记忆,可以同时进行分类、分割、检测等任务。RetNet在视觉领域应该有广阔的应用前景。

AIgraphX 1614

ios14 App Clips特性

简介 今年上半年的苹果开发者大会,苹果宣布了App Clips,这是一个应用的小片段,让你无需下载完整的应用就能与之互动,类似于微信的小程序,“用完即走”的理念。 App Clips 是iOS 14的一个主要部分,它的主要表现是通过App Clips用户可以从类似“卡片”界面查看应用内的信息,以帮助决定是否购买,而不是要求用户下载一个完整的应用。 包内容限制 App Clips被设计的很小,显示范围仅占屏幕一半,容量要求不超过10MB,并可使用Apply Pay和Sign-In With Apple等最新的

weixin_44836266的博客 968

SI案例分享--考虑ESD保护二极管的差分线阻抗仿真

PCB设计中的cut out参考面早已是SI评估中常用的阻抗优化方式,通过合理的仿真建模,可以提供合适的设计参考,并保持与测试结果的高度一致性。

一只豌豆象的博客 1438

rk3576 点亮 LCD(mipi)

瑞芯微 RK3576 是一款面向中高端 AIoT 市场的 SoC,其 MIPI DSI (Display Serial Interface) 接口在性能和灵活性上相比前代(如 RK3399/RK3568)有显著提升,特别是在物理层协议的支持上更加现代化。相比RK3399 RK3568的mipi 接口少了 8lane,但是RK3576 MIPI DSI 增加更低功耗的 C-PHY。

weixin_35723192的博客 364

iOS第九十七篇:App Clips轻应用实现

App Clips是苹果推出的轻量级应用体验,允许用户在不安装完整App的情况下快速访问核心功能。本文档规范App Clips的设计与实现标准。

I_did_it的博客 940

RK3568平台开发系列讲解(安卓篇)LED呼吸灯系统流程

1.app层封装后使用NotificationManager发出:NotificationManager.notify() 2.Android 系统架构中:一个manager类对应一个aidl接口,一个manager对应一个底层的服务,notification也是这个架构

内核笔记 3646

XcodeGen+App Clips:零配置构建轻量级iOS应用的完整指南

你是否还在为Xcode项目文件的合并冲突而头疼?是否因App Clips的繁琐配置望而却步?本文将带你通过XcodeGen实现App Clips项目的自动化构建,从根本上解决传统开发模式中的配置管理难题。读完本文,你将掌握: - XcodeGen的核心工作原理与项目规范 - App Clips的YAML配置全解析 - 多环境构建与依赖管理技巧 - 从零到一的自动化部署流程 ## 一、XcodeG...

gitblog_00128的博客 527

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

告别Xcode配置噩梦:用XcodeGen+App Clips构建轻量级iOS应用的实战指南

你是否还在为Xcode项目配置而头疼?手动管理Target依赖、重复设置构建设置、处理复杂的工程结构——这些繁琐工作占用了大量开发时间。本文将展示如何通过XcodeGen实现零配置构建,并结合App Clips(应用剪辑)快速开发轻量级iOS应用,让你专注于功能实现而非工程配置。读完本文,你将掌握自动生成Xcode项目、配置App Clips目标、管理依赖和构建脚本的完整流程。 ## Xcode...

gitblog_00971的博客 356

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

探秘 App Clips

正文字数:3378字预计阅读时间:9分钟◆◆ ◆简介在iOS14中苹果推出了很多新特性,其中就包含App Clips。App Clips类似微信的小程序,不需要显式的去App S...

SOHU_TECH的博客 1092

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 2020新的开始-前路漫漫
下一篇: Swift面试题2021(附答案)
Skinny Camel
博客等级 码龄15年 71粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值