Unity ios、android、pc一鍵打包(三)


                                                                                      ios

   ios不允許代碼熱更,但是其他資源文件可以熱更,我們利用uLua也可以進行熱更,只不過效率有點低,但是我們主要考慮不熱更代碼的一鍵打包功能。

1、主要是在mac os系統下進行打包,最好的辦法就是利用shell腳本。如果對python有大致的了解也可以用。

 

#shell http://www.cnblogs.com/tacg/archive/2014/12/09/4153068.html
cd ../../../
# 當前目錄
UNITY_PROJECT_PATH=$PWD
cd ../
XCODE_EXPORT_PATH=$PWD/iosexprt
BUILD_LOG_PATH=$PWD/buildlog
cd $UNITY_PROJECT_PATH

echo clean exist Xcode project,path=${XCODE_EXPORT_PATH}
rm -rf ${XCODE_EXPORT_PATH}
rm -rf ../Ipa

#-logFile is important 這里日志生成的重要部分.函數奔潰找回都是通過此處的
/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -projectPath ${XCODE_EXPORT_PATH} -excuteMethod 
PublishCommand.Build32Bit -logFile $BUILD_LOG_PATH

#build ipa

#證書 需要自己申請
xcodebuild build -target Unity-iphone CODE_SIGN_IDENTITY="" PROVISIONING_PROFILE=""
APP_PATH=$(find ./build -name *.app)
APP_NAME=$(basename $APP_PATH .app)

echo run xcode
xcun -sdk iphones PackageApplication -v $APP_PATH -o $XCODE_EXPORT_PATH/build/$(APP_NAME).ipa

mkdir ../Ipa
mv $XCODE_EXPORT_PATH/build/$(APP_NAME).ipa $UNITY_PROJECT_PATH/../Ipa/$(APP_NAME).ipa

#build 64bit
# IL2CPP: http://www.gameres.com/339671.html
# 一鍵打包: http://www.xuanyusong.com/archives/2720 

1) android打包點都差不多哦,調用Unity內部函數,

2) CODE_SIGN_IDENTITY="" PROVISIONING_PROFILE="" 是你的開發者證書

3) 以上是針對ios 32bit的打包,64位稍后再說。

4) -logFile $BUILD_LOG_PATH 是生成日志的地方,ios靠這個文件才能還原日志,可利用PP助手查看

 

2、導出的XCode工程經常會嵌入第三方SDK,sdk經常會修改object-c代碼,加入第三方framework,手動導入很麻煩

方法:參考一下兩篇文章,闡述得比較詳細,看完即了解,主要是unity打包的時候會有一個回調函數OnPostProcessBuild.

        http://www.xuanyusong.com/archives/2720

        http://www.xuanyusong.com/archives/2734

3、IOS 64bit Build,unity在在以下設置

PlayerSetting->Scripting Backend-> IL2CPP

ARchitecture : Armv64  > Armv7 > Universal(通常是Armv6)

這個指令集通常是向下兼容的,對應的機型選擇相應的指令集效率更高,通常我們選用universal

Armv6:iphoe4以下 通常第一代機型

Armv7:iphone4/4s

Armv7:iphone5/5c

Armv64:iphone5s以上

1) 先參考一下兩篇文章了解IL2CPP,為什么我們要了解這個IL2CPP尼?這是一個趨勢?

http://www.gameres.com/339671.html

http://zhuanlan.zhihu.com/indieace/19972689

2) 啟用IL2CPP怎么都會剝離代碼,這是一個萬年的坑,剝離代碼往往會出現很多問題,unity Assets/link.xml是阻止代碼剝離的xml文件

剝離的坑:

2.1 在unity4.6以上經常有人會用到Animator這個類,但是迫於他有很多坑bug所以經常有人會用回Animation,如果你沒有用到IL2CPP就會幫你剝離

而這些經常是綁定在預制上的,你播放特效或者動畫的時候就會失效,只好在link.xml防止被剝離拉

2.2 經常第三方庫沒有及時更新到64位bit經常會出現各種奇奇怪怪的bug,代碼剝離要慎重使用啊 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM