Unity3d iOS构建exportArchive IPA大小

时间:2016-07-26 14:43:03

标签: ios xcode unity3d

关于Unity3d IPA尺寸已有几个问题,但我发现没有一个问题可以正确解决这个问题。

问题是,如果我通过XCode GUI导出IPA,我有24毫克IPA,如果我使用命令行导出,我得到160毫克IPA。

步骤:

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

现在,通过GUI:

  • 打开管理器,选择存档,导出,保存企业部署,完成

IPA含24mg

通过命令行:

  • 从管理器获取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大小吗?

1 个答案:

答案 0 :(得分:1)

我想我不应该忽略已弃用的警告并改为使用-exportOptionsPlist

生成了与GUI相同的24mg的IPA。

为完整起见,使用的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代替