ios - Unity3d iOS 构建 exportArchive IPA 大小

标签 ios xcode unity-game-engine

关于 Unity3d IPA 大小已经有几个问题,但我发现没有一个能正确解决问题。

问题是,如果我通过 XCode GUI 导出 IPA,我有一个 24mg 的 IPA,如果我用命令行导出,我得到一个 160mg 的 IPA。

步骤:

  • 使用默认 iOS 设置从 Unity 创建项目
  • 在 Xcode 7.3.1 中打开,选择Product -> Archive

现在,通过 GUI:

  • 打开 Organizer,选择存档、导出、保存以用于企业部署,完成

24mg 异丙醇

通过命令行:

  • 从 Organizer 获取 xcode 生成的存档路径(在 Finder 中显示)
  • 运行 xcodebuild -exportArchive -archivePath ~/Library/etc/etc/Unity-iPhone.xcarchive -exportPath build/Unity-iPhone -exportFormat ipa -exportProvisioningProfile "My Provisioning Profile"

这给了我 160 毫克的 IPA...

$ ls -lh
total 382480
-rw-r--r--  1 iz  staff   163M Jul 26 15:28 cmdline.ipa
-rw-r--r--  1 iz  staff    23M Jul 26 15:28 gui.ipa

解压缩 IPA 文件并比较树(使用 find . -exec ls -lh {}\;diff):

$ diff gui.txt cmdline.txt 
55,56c54
< -rw-r--r--  1 iz  staff   416B Jul 26 12:15 ./Payload/childplayground.app/archived-expanded-entitlements.xcent
< -rwxr-xr-x  1 iz  staff    30M Jul 26 12:23 ./Payload/childplayground.app/childplayground
---
> -rwxr-xr-x  1 iz  staff   270M Jul 26 12:27 ./Payload/childplayground.app/childplayground

这清楚地表明唯一的大小差异在主二进制文件本身内。此外,GUI 生成的 IPA 包含此命令行不包含的 archived-expanded-entitlements.xcent 文件...

关于我可以在命令行中更改什么以获得相同的 IPA 大小的任何提示?

最佳答案

我想我不应该忽略 deprecated 警告并改用 -exportOptionsPlist

生成的 IPA 与 GUI 具有相同的 24mg。

为了完整性,使用的 exportOptions.plist 文件是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>method</key>
        <string>enterprise</string>
    </dict>
</plist>

和命令行:

xcodebuild -exportArchive -archivePath ~/Library/etc/etc/Unity-iPhone.xcarchive -exportPath build/Unity-iPhone -exportOptionsPlist exportOptions.plist

删除了 exportFormatexportProvisioningProfile 并改用 exportOptionsPlist

关于ios - Unity3d iOS 构建 exportArchive IPA 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38593012/

相关文章:

ios - 检测目标 View Controller 中的导航弹出

ios - 如何正确弃用 Xcode 4 中的方法

swift - UIImageView 动画 Playground

android - Google Play 发布前报告中的这些警告是什么?

unity-game-engine - 奇怪的线条 3D Unity

ios - 在启动之前了解街景是否适用于特定的纬度/经度

ios - Firebase:如何将视频存储在存储器中,然后将视频 URL 存储在数据库中?

ios - XCode 不响应工具栏上的点击(例如打开 Assistant Editor)

Xcode 源代码管理显示多个工作副本

unity-game-engine - Unityscript - 这是什么样的声明?