1、启用ODR
从 iOS9 开始就是默认开启的
2、创建标签
标签用于识别和管理一组 ODR
。将一个或多个标签分配给项目中的资源可将其标识为 ODR
。在运行时,所有 ODR
的访问都与标签(而非单个资源)配合工作。
eg: 在AskAnExpert文件夹下设置AAE标签
3、设置标签分类
On-Demand Resource的三种标签:
- Initial Install Tags:此种标签的资源,会随着App从App Store下载而下载,但是会影响App的ipa大小,也就是说此种资源会包含在ipa内。
- Prefetch Tag Order:此种标签会在App下载后,开始下载相应的资源,下载是存在顺序的,后面会说明。此种资源并不会影响ipa的大小,也就是说此种资源并不包含在ipa内。
- Dowloaded Only On Demand:此种标签下的资源,会在必要的时候,主动触发下载,这是我们开发者自己控制下载时机的。
4、大小限制
应用剪切后,标签中资源的总大小不得超过 512 MB
。应用商店中存储的按需资源的总大小不得超过 20 GB
。
标签的理想大小不大于 64 MB
。此大小在下载速度和本地存储之间提供了良好的平衡,以便在设备的本地存储处于低位时可以清除。
5、托管资源设置
您可以在任何兼容的 Web 服务器上托管您应用的按需资源。通过 App Store 分发的 App 可以在开发和测试期间从您自己的 Web 服务器获取按需资源,但在 App Store 上发布时必须使用 Apple 的托管服务。使用内部分发的企业 App 可以在开发和分发期间从您自己的 Web 服务器获取按需资源。
打包后多出OnDemandResources文件夹
在开发环境,需要把OnDemandResources文件夹放到对应的自有服务器上。
参考资料:
https://zhuanlan.zhihu.com/p/658534966
https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html
https://blog.youkuaiyun.com/u011154007/article/details/132539027
https://xie.infoq.cn/article/0675fdcaf9ef6b8a0c1b22122