ios - App Clips - 通过网络延迟加载图像以减小大小
问题描述
我对 AppClip 的大小有疑问。在苹果文档中,他们写了以下关于尺寸的内容:
让您的 App Clip 保持小尺寸
App Clip 必须很小(未压缩的 App Clip 不超过 10 MB)才能立即启动。如果可能,请将您的 App Clip 保持在此限制以下。
要测量您的 App Clip 的大小,请为您的 App Clip 创建一个应用大小报告:
在 Xcode 中,归档 App Clip 对应的应用程序,打开 Organizer 窗口,选择归档文件,然后单击分发 App。
将 App Clip 导出为 Ad Hoc 或开发版本,并启用 App Thinning 和 Rebuild from Bitcode。
导出的 App Clip 的输出文件夹包含其大小报告:名为 App Thinning Size Report.txt 的文件。打开文本文件,记下您的 App Clip 的每个变体的未压缩大小,然后对您的项目进行调整,以将每个变体的未压缩大小保持在 10 MB 以下。
有谁知道它是否允许通过网络延迟加载图像以减小资产的大小,因为在我当前的应用程序剪辑中,它们占用了几乎一半的大小。可以这么说,有没有人试图上传一个应用程序剪辑,它正在这样做而没有被拒绝?
提前致谢
解决方案
我们创建了一个应用程序剪辑并使用 AWS3,但是它占用了很多空间(库),我们现在正在加载类似于本教程的图像
https://www.youtube.com/watch?v=OTcQnf6ziew
这是一个关于通过网络加载图像并将它们存储在 NSCache 中的视频,很棒的教程,结果非常干净。
您必须将图像存储在可以通过 URL 访问的公共存储库中 - 然后将这些 url 存储在某处(数据库或本地)供您的项目访问它们。
如果使用公共图像文件夹,请务必限制写入权限。
例子:
import UIKit
var imageCahe = NSCache<AnyObject,AnyObject>()
extension UIImageView {
func load(urlString:String){
if let image = imageCahe.object(forKey: urlString as NSString){
self.image = image as? UIImage
return
}
guard let url = URL(string:urlString)else{
return
}
DispatchQueue.global().async { [weak self] in
if let data = try? Data(contentsOf: url){
if let image = UIImage(data: data){
DispatchQueue.main.async {
imageCahe.setObject(image, forKey: urlString as NSString)
self?.image = image
}
}
}
}
}
}
然后,您可以使用 UIImageView 调用此方法。
x = Your ImageView
x.load(url:"https://image.com")
推荐阅读
- angular - 如何使用 Angular 中的 firestore 从一个引用中获取一份文档的值?
- elasticsearch - 如何使用 Elasticsearch 对文本输入执行部分单词搜索?
- sql-server - TRY_PARSE 表示服务器之间的科学记数法不同
- json - 如何使用 json 文件与 testcafe 中的多个 webelments 交互
- python - 最大错误答案后如何停止循环?
- sql-server - Datediff 与连接返回非预期结果
- javascript - 使用加载器 ts-node/esm.js 运行节点需要导入具有 .js 扩展名
- r - 根据逻辑条件选择 data.table 中的单个元素
- javascript - 将对象的对象重组为json数据
- webpack - 在 './components/map' 中找不到传单“导出 'initMap'