Unity3d iOS构buildexportArchive IPA大小

Unity3d IPA尺寸上有几个问题,但是我没有发现能够正确解决问题的问题。

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

步骤:

  • 使用默认的iOS设置从Unity创build项目
  • 在Xcode 7.3.1中打开,selectProduct – > Archive

现在,通过GUI:

  • 打开pipe理器 ,select存档,导出,保存为企业部署,完成

IPA与24mg

通过命令行:

  • 获取由Organizer中的xcode生成的存档的path( Show in 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大小?

我想我不应该忽略弃用的警告和使用-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