7

当我添加一个 Today Extension 时,我的应用突然变重了……所以我做了一个快速检查,看看这些脂肪是从哪里来的。看起来 .apex 是 13MB,“Assets.car”文件比我的主应用程序中的文件(+8MB)还要大。问题是,我在扩展中的资产目录中只使用了一张图片。

我在 Xcode 中检查过,我的主应用程序资产目录没有切换为使用扩展程序复制,但听起来确实如此。

正常吗?您知道如何减少最终的 .apex 大小吗?

谢谢!

4

1 回答 1

3

你有机会使用Cocoapods吗?

当前有一个未解决的问题导致Copy Pods Resources运行脚本定位所有资产并将它们编译成一个大存档,这可能不是所有目标都需要的。

在解决此问题之前,一个简单的解决方案是在post_install您的Podfile:

# 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

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

于 2015-01-26T13:11:07.510 回答