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
删除了exportFormat
和exportProvisioningProfile
,而是使用了exportOptionsPlist