當前位置:ag真人国际官网-ag旗舰厅官方网站 » 編程軟體 » xcode64位編譯

xcode64位編譯-ag真人国际官网

發布時間: 2024-06-30 16:00:29

⑴ xcode build for ios simulator arm64

前言

將一個老項目由xcode11升級到xcode12的時候,在用模擬器編譯的時候,報了一個錯誤,具體如下:

「ld: building for ios simulator, but linking in dylib built for ios, file '/users/xxxx/work/git/xxx/framework/googlecast/googlecast.framework/googlecast' for architecture arm64」

我使用模擬器編譯的,遇到arm64的錯誤,一開始還是一頭霧水啊。於是google和網路就上了,經過一番查找,基本定位到問題了。

原因

下面翻譯一位外國同仁的解釋:

xcode 12實際上是apple silicon的墊腳石,但有了這個平台,我們將得到基於arm64的macos,模擬器也將運行在arm64架構上,而不是目前基於intel的x86_64架構。

xcode通常依賴於「run destination」來構建它的庫/應用程序,所以當一個模擬器被選擇為「run destination」時,它將為可用的模擬器架構構建應用程序,當一個設備被選擇為「run destination」時,它將為設備支持的架構構建(arm*)。

xcodebuild,在xcode 12 build系統中,arm64是支持apple silicon的有效架構。因此,當一個模擬器被選擇為運行目標時,它可能會嘗試針對基於arm64的模擬器編譯/鏈接你的庫/應用程序。所以它在---格式中給clang( )發送了一些-target標志,如arm64-apple-ios13.0-simulator,clang試圖構建/鏈接基於arm64的模賣世擬器,但最終在基於intel的mac上失敗。

但xcodebuild只在發布版本中嘗試這個。因為「build active architecture only (only_active_arch)」構建設置通常被設置為「no」,僅用於「發布」配置。這意味著xcodebuild將嘗試為選定的運行目標構建所有庫/應用的架構變體。對於模擬器運行目標,它現在將包括x86_64和arm64,因為arm64在xcode 12 中也是一個支持apple silicon的模擬器架構。

了解原因後,剩下來就是如何解決了。

解決方法

首先看一下xcode11和xcode12在architecture配置這一塊的區別:

xcode11:中宴肢

xcode11中有valid architectures的配置項。

xcode12:

在xcode12中,在architecture配置組中,用excluded architectures代替了valid architectures,那麼valid architectures跑到哪裡去了,在user-defined配置組裡面。

我們的目的是能在xcode12的模擬器上順利編譯,那麼可按照下面的步驟修改:

1. 將build active architecture only配置的debug值改為yes。如下圖。

2. 如果在xcode11中有valid architectures的配置項,那麼請在xcode12的user-defined配置組裡面刪除valid architectures的配置項,同時在target上面的project裡面的user-defined配置組裡面同樣刪除valid architectures的配置項,如何刪除,選中,敲擊鍵盤的delete就可以了。

3. 將validate workspace配置項修改一次,一定要變成黑粗體,默認值是no,改成yes就可以,或者再改回no,反正得折騰一次。見下圖。(之前有一篇文章升級xcode12.3報錯提到過這個配置,可參考一下。)

4. 配置完前三步基本就能編譯通過了,如果還是報錯,請嘗試在excluded architectures的debug模式下添加arm64,如下圖:

經過這幾步,基本就能順利編譯通過了,不過別忘了再用真機編譯試試哦,別再影響了真機祥禪測試。

結束語

個人感覺這個是xcode12的一個坑了,不過如果所有的項目裡面都採用xcframework,估計這個問題就能屏蔽掉了。

原文鏈接:https://blog.csdn.net/guoyongming925/article/details/114628455

熱點內容
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
安卓系統視頻製作哪個好用 發布:2024-07-17 15:10:47 瀏覽:210
androidapk結構 發布:2024-07-17 15:10:43 瀏覽:945
网站地图