Unity 打包IOS(自動(dòng)化構(gòu)建)

打包流程

  • unity導(dǎo)出xcode工程
  • xcode 生成 archive包
  • 生成ipa包

自動(dòng)化構(gòu)建

Jenkins 第三方開(kāi)源工具

通過(guò)bat劳吠、shell執(zhí)行python腳本

unity editor 代碼設(shè)置 xcode 引用

 #if !UNITY_ANDROID
    using UnityEditor;
    using UnityEditor.Callbacks;
    using UnityEditor.iOS.Xcode;

    /// <summary>
    /// The post processor for xcode.
    /// </summary>
    internal static class XCodePostProcess
    {
        [PostProcessBuild(700)]
        public static void OnPostProcessBuild(
            BuildTarget target, string pathToBuiltProject)
        {
            if (target != BuildTarget.iOS)
            {
                return;
            }
    
            var projPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
            var proj = new PBXProject();
            proj.ReadFromFile(projPath);
            var targetGUID = proj.TargetGuidByName("Unity-iPhone");
            proj.SetBuildProperty(targetGUID, "ENABLE_BITCODE", "NO");
            proj.AddBuildProperty(targetGUID, "OTHER_LDFLAGS", "-ObjC");
            proj.AddFrameworkToProject(targetGUID, "libresolv.9.tbd", false);
            proj.AddFrameworkToProject(targetGUID, "WebKit.framework", false);
            
            proj.WriteToFile(projPath); 
        }
    }
    #endif

unity 命令行

/Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -quit -projectPath ~/UnityProjectPath -nographics -executeMethod GameEditor.BuildApp -logFile ~/UnityProjectPath/__kellylog.txt

Xcode 命令行

tool_path=$(cd "$(dirname "$0")"; pwd)

native_project_name=Unity-iPhone
output_path=${tool_path}/output
native_ios_project=${output_path}/${native_project_name}/ios

#clean一下工程
#-project TestAutoPacking.xcodeproj:編譯項(xiàng)目名稱
#-scheme TestAutoPacking:scheme名稱(一般會(huì)與你的項(xiàng)目名稱相同)
#-configuration Release:(Debug/Release)
xcodebuild clean -project ${native_ios_project}/${native_project_name}/${native_project_name}.xcodeproj -scheme ${native_project_name} -configuration Release

#archive導(dǎo)出.xcarchive文件
#-project TestAutoPacking.xcodeproj:同clean步驟中一樣
#-scheme TestAutoPacking:同clean步驟中一樣
#-archivePath /dandy/xmeAutoArchive/TestAutoPacking.xcarchive:導(dǎo)出.xcarchive文件的目錄以及文件名稱
#PROVISIONING_PROFILE=${provisionName}
xcodebuild archive -project ${native_ios_project}/${native_project_name}/${native_project_name}.xcodeproj -configuration Release -scheme ${native_project_name} -archivePath ${output_path}/${native_project_name}.xcarchive 
#生成ipa
#-archivePath /dandy/xmeAutoArchive/TestAutoPacking.xcarchive:剛剛導(dǎo)出的.xcarchive文件的目錄
#-exportPath /dandy/xmeAutoArchive/TestAutoPacking:將要導(dǎo)出的ipa文件的目錄以及文件名
xcodebuild -exportArchive -archivePath ${output_path}/${native_project_name}.xcarchive -exportPath ${output_path} -exportOptionsPlist ${tool_path}/exportOptions.plist

exportOptions.plist:

  • YOUR BUNDLEID 包名
  • YOUR PROVISIONINGPROFILE 證書(shū)
<?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>compileBitcode</key>  
    <false/>  
    <key>method</key>  
    <string>ad-hoc</string>  
    <key>provisioningProfiles</key>  
    <dict>  
        <key>YOUR BUNDLEID</key>  
        <string>YOUR PROVISIONINGPROFILE</string> 
    </dict>  
</dict>  
</plist> 

備注:

  • jenkins實(shí)時(shí)查看python腳本日志
 python -u test.py


  • 退出UnityEditor腳本執(zhí)行并返結(jié)果
EditorApplication.Exit(0)

jenkins python 讀取文件 報(bào)編碼錯(cuò)誤

UnicodeEncodeError: ‘gbk’ codec can't encode character '\ufffd' in position

https://blog.csdn.net/jim7424994/article/details/22675759

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子溉仑,更是在濱河造成了極大的恐慌吊说,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件磷仰,死亡現(xiàn)場(chǎng)離奇詭異袍嬉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)伺通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)箍土,“玉大人,你說(shuō)我怎么就攤上這事罐监∥庠澹” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵弓柱,是天一觀的道長(zhǎng)沟堡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)矢空,這世上最難降的妖魔是什么航罗? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮屁药,結(jié)果婚禮上伤哺,老公的妹妹穿的比我還像新娘。我一直安慰自己者祖,他們只是感情好立莉,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著七问,像睡著了一般蜓耻。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上械巡,一...
    開(kāi)封第一講書(shū)人閱讀 52,682評(píng)論 1 312
  • 那天刹淌,我揣著相機(jī)與錄音,去河邊找鬼讥耗。 笑死有勾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的古程。 我是一名探鬼主播蔼卡,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼挣磨!你這毒婦竟也來(lái)了雇逞?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤茁裙,失蹤者是張志新(化名)和其女友劉穎塘砸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體晤锥,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡掉蔬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年廊宪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片女轿。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挤忙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出谈喳,到底是詐尸還是另有隱情,我是刑警寧澤戈泼,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布婿禽,位于F島的核電站,受9級(jí)特大地震影響大猛,放射性物質(zhì)發(fā)生泄漏扭倾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一挽绩、第九天 我趴在偏房一處隱蔽的房頂上張望膛壹。 院中可真熱鬧,春花似錦唉堪、人聲如沸模聋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)链方。三九已至,卻和暖如春灶搜,著一層夾襖步出監(jiān)牢的瞬間祟蚀,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工割卖, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留前酿,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓鹏溯,卻偏偏與公主長(zhǎng)得像罢维,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丙挽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容