首页 > 解决方案 > 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 以下。

有谁知道它是否允许通过网络延迟加载图像以减小资产的大小,因为在我当前的应用程序剪辑中,它们占用了几乎一半的大小。可以这么说,有没有人试图上传一个应用程序剪辑,它正在这样做而没有被拒绝?

提前致谢

标签: iosapple-appclips

解决方案


我们创建了一个应用程序剪辑并使用 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")

推荐阅读