Unity 打包对接 XCode 记录
由于公司需要將軟件發(fā)到蘋(píng)果商城,所以開(kāi)始打 IOS 包。以下為打包過(guò)程中遇到問(wèn)題的記錄。留備以后查看。
軟件環(huán)境
Windows 端:
- Win10
- Unity 2019.2.9f1
- TortoiseSVN
Mac 端:
- mac OS big Sur 11.6
- XCode 13.2.1
- Cornerstone
目前是采用從 Windows 端的 Unity 打出 Xcode 工程包,然后通過(guò) SVN 傳到 Mac 端再出包的流程。
其中參考文章如下:
- iOS 理解證書(shū)與描述文件
- iOS證書(shū)(.p12)和描述文件(.mobileprovision)申請(qǐng)
- Unity打包IOS應(yīng)用程序
- Unity3D打包(IOS)IPA詳細(xì)教程
1、記錄一些 Unity 和 XCode 的設(shè)置
注意:以下一些配置的位置和名稱(chēng)可能會(huì)根據(jù) Unity 和 XCode 版本的變動(dòng)而有所變動(dòng)。
Unity: Scripting Backend:選 IL2CPP,因?yàn)樾枰С?64 位,新版的 Unity 在切換成 XCode 時(shí)默認(rèn)就是 IL2CPP Api Compatibility Level:不要選子集,避免 dll 引用出問(wèn)題 Auto Graphics API:不勾選,摒棄掉 matel 渲染,只留 OpenGLES2 Architerctures:修改為 Universal,表示同時(shí)支持 32 位,64 位架構(gòu)XCode: Architerctures:設(shè)置為 Standard architectures,因?yàn)?32 位程序已經(jīng)被蘋(píng)果強(qiáng)制淘汰了 Capabilites->Background modes:設(shè)置問(wèn) ON,并勾選 remote notifications Product->Scheme->Edit Scheme->run:將 “GPU Frame Capture” 設(shè)置為 Opengl ES Build Settings->Enable Bitcode:設(shè)為 NO,否則所有第三方庫(kù)都需要支持 bitcode下面主要記錄 XCode 端相關(guān)問(wèn)題
2、 library not found for -liPhone-lib 問(wèn)題
“l(fā)ibrary not found” 類(lèi)問(wèn)題都是沒(méi)有找到相關(guān) lib 引用導(dǎo)致的,比較可能的情況是引用的地址出現(xiàn)問(wèn)題。
常見(jiàn)的修改方式是進(jìn)入 Targets->Build Settings->Library Search Paths 中將 “$(SRCROOT)/Librarie” 的雙引號(hào)去掉變成 $(SRCROOT)/Librarie。
但是我使用了此方法并沒(méi)有奏效,之后通過(guò) Library Search Paths 中列出的地址找到了引用目錄,在經(jīng)過(guò) Windows 端和 Mac 端的同名文件夾對(duì)比后發(fā)現(xiàn)是由于 Windows 端的兩個(gè) lib 文件不知何故并沒(méi)有成功上傳,所以導(dǎo)致 Mac 端確實(shí)沒(méi)有這兩個(gè) lib 文件。
將文件重新標(biāo)記上傳和下載后,問(wèn)題解決。
3、Command PhaseScriptExecution failed with a nonzero exit code 問(wèn)題
進(jìn)入 XCode 的 File->Project Setting 中
將 Shared Project Settings->Build System 調(diào)整為 Legacy Build System (Deprecated)
雖然這個(gè)已經(jīng)說(shuō)要被淘汰了,但是不用這個(gè)就報(bào)錯(cuò),小白表示很郁悶。
至此,在 Build 時(shí)的問(wèn)題都解決了。但是下面的問(wèn)題是竟然無(wú)法直接發(fā)布到真機(jī)上進(jìn)行測(cè)試。(當(dāng)然真機(jī)已經(jīng)加入了蘋(píng)果測(cè)試機(jī)型中)
4、xcode unable to install “打包的程序名稱(chēng)” 問(wèn)題
根據(jù)網(wǎng)上看到的方法:
將 File->Project Setting 中的 Per-User Project Settings->Build System 改為 Legacy Build System (Deprecated)
這之后遇到了一個(gè)權(quán)限問(wèn)題:Permission denied
解決方法是:打開(kāi)終端,輸入命令 sudo chmod -R 777 工程根目錄
經(jīng)過(guò)一番折騰以后結(jié)果還是沒(méi)有解決。
最后看到了這篇文章。
原文如下:
It is a very hot issue with the new update of Catalina. To be very precise the issue is with the manually signing of the provisioning profile. If you check Automatically manage signing it works.
也就是說(shuō),在 Targets->Signing&Capabilities 中勾選 Automatically manage signing 就可以了。
使用后發(fā)現(xiàn)這個(gè)解決方案可以解決我遇到的問(wèn)題。
5、關(guān)于證書(shū)的選擇
證書(shū)選擇不當(dāng)可能會(huì)導(dǎo)致在真機(jī)測(cè)試時(shí)無(wú)法成功出包。
在 PROJECT 和 TARGETS 中的 Build Settings 頁(yè)簽里,找到 code signing identity 選項(xiàng)。
調(diào)試時(shí)統(tǒng)一選為 developer,發(fā)布時(shí)統(tǒng)一選為 distribution 。
出包成功。
PS: 此次記錄的只是單獨(dú)出游戲 iOS 包的相關(guān)步驟,而如果需要在項(xiàng)目中添加其他諸如 admob sdk 之類(lèi)的插件則上面的第 2、3 步就不需要了,而是進(jìn)行其他各種新的操作和配置。
總結(jié)
以上是生活随笔為你收集整理的Unity 打包对接 XCode 记录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CentOS安装Confluence W
- 下一篇: day05-数据类型与操作