今天扩展程序复制了主应用程序的资源目录。

8
当我添加了一个Today Extension之后,我的应用突然变得很重...所以我迅速检查了一下这些“肥胖”来自哪里。看起来.apex文件有13MB,'Assets.car'文件比我的主应用程序中的文件还要大(+8MB)。问题在于,在我的扩展程序中只使用了1个图片目录中的图像。
我在Xcode中检查过了,我的主要应用程序资产目录没有被复制到扩展程序中,但是它似乎实际上是存在的。
这正常吗?您知道如何减小最终的.apex大小吗?
谢谢!

我也看到了这个问题。主应用程序有一个4MB的assets.car文件。即使从扩展中删除了所有资源,它仍然是16MB。 - Zane Claes
是的,我的小部件 assets.car 文件甚至比我的主应用程序文件还要大。 - Dimillian
我们也遇到了这个问题。即使我们的扩展程序中并没有使用很多资源。有人已经找到了解决方法吗? - toofah
1个回答

3

你是否正在使用Cocoapods

当前存在一个开放问题,导致Copy Pods Resources运行脚本定位并编译所有资源到一个大的存档文件中,这可能对某些目标不是必需的。

在此问题解决之前,一个简单的解决方案是在你的Podfile中添加一个post_install钩子:

# Fix broken copy-resources phase per https://github.com/CocoaPods/CocoaPods/issues/1546.
post_install do |installer|
  installer.project.targets.each do |target|
    scriptBaseName = "\"Pods/Target Support Files/#{target.name}/#{target.name}-resources\""
    sh = (<<-EOT)
      if [ -f #{scriptBaseName}.sh ]; then
        if [ ! -f #{scriptBaseName}.sh.bak ]; then
          cp #{scriptBaseName}.sh #{scriptBaseName}.sh.bak;
        fi;
        sed '/WRAPPER_EXTENSION/,/fi\\n/d' #{scriptBaseName}.sh > #{scriptBaseName}.sh.temp;
        sed '/*.xcassets)/,/;;/d' #{scriptBaseName}.sh.temp > #{scriptBaseName}.sh;
        rm #{scriptBaseName}.sh.temp;
      fi;
    EOT
    `#{sh}`
  end
end

以上代码片段的功劳归功于问题线程中所有乐于助人的人!

就是这样了。非常感谢!我应该看一下Cocoapods的级别。从28MB降到了19MB! - Dimillian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接