Apple On-Demand Resource
Xcode 可以给资源打 tag,被打 tag 的资源在打包时不会打到包内。需要时下载,测试时可以使用自己的服务器,但是发布到 AppStore 时需要托管到苹果的服务器。
苹果的 On-Demand Resource 文档


自建资源下发模块
了解到了苹果 On-Demand Resource 机制,我们可以结合Resource Tags 下的资源不会打包到 ipa 包的特性。设计一套自己的下发机制。
自动打包上传
给需要下发的资源打上 tag 标签,xcode 打包时运行脚本上传 tag 包,生成 tag 配置信息 plist 文件,打包完成手动检查 md5 的一致性。
按需下载模块设计

接口和使用参照了苹果的 ondemand 相关接口
上面其实是第一版…. 中间面临新的需求,比如需要保持一个下载进度,让 download view 能随时取到。
自动生成 plist
使用自带的 PlistBuddy 命令可以把 plist 更新
PlistBuddy参考
1 | echo "start on-demand resource module" |
check 和 上传脚本
1 | echo "start ondemand resource archive ......" |