問(wèn)題1:Xocde 編譯出現(xiàn) Undefined symbols for architecture x86_64:
(gitLap拉取的同事代碼)
系統(tǒng)以及軟件版本的參數(shù):
macOS 11.2
Xcode 12.4
ruby 3.0
pod 1.10.1
我的痛苦經(jīng)歷:
方案1:重新拉取 代碼(多次嘗試失敗
)
方案2:重新pod install 失敗
主经,重新 pod update 還是失敗
podFile 添加了項(xiàng)目具體路徑
project '/Users/dev4/Developer/iOS/MyApp/MyApp.xcodeproj'
# podFile
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
project '/Users/dev4/Developer/iOS/MyApp/MyApp.xcodeproj'
target 'MyApp' do
pod 'xxx'
pod 'xxx'
pod 'xxx'
...
end
重新pod install 或 pod update 還是失敗
方案3:查看是否引入文件和庫(kù), Targets -> Build Phases -> Compile Sources,結(jié)果都引入了(重新編譯還是失敗
)
方案4:
1煮落、查看 architecture 的架構(gòu) 是 arm64 沒(méi)問(wèn)題(Xcode -> Project -> Build settings -> Architectures -> Excluded architectures)
2、查看文件和庫(kù)的引入路徑 path 也沒(méi)問(wèn)題:
在(targets ——build settings —— other linker flags) 中是相對(duì)路徑 $(inherited)Xcode clean 后(重新編譯還是失敗
)
另外:
對(duì)于M1 新建的項(xiàng)目踊谋,如果有pod庫(kù)引入報(bào)錯(cuò)蝉仇,使用以下方法可以解決:
Clean the project (? + ? + k)
然后 run
方案5(成功了):
項(xiàng)目移動(dòng)到 m1電腦上運(yùn)行不起來(lái) ,原因是不支持x86的架構(gòu)殖蚕,如果對(duì)其他不影響的話轿衔,直接應(yīng)用程序-Xcode - 勾選 Rosetta - 退出Xcode - 重新打開(kāi),編譯運(yùn)行即可睦疫。
解決問(wèn)題很痛苦害驹,給個(gè)贊??吧!謝謝??
擴(kuò)展資料:
一蛤育、M1資料
1宛官、了解M1
2、了解Rosetta
3瓦糕、什么是Rosetta摘刑?
蘋(píng)果在上個(gè)月推出了搭載 M1 自研芯片的 MacBook Air、Mac mini 以及 13 英寸 MacBook Pro刻坊。其中枷恕,蘋(píng)果 M1 芯片與此前 Mac 采用的芯片最大不同是基于 ARM 架構(gòu),而不是過(guò)去英特爾芯片的 x86 架構(gòu)谭胚。
二徐块、arm版本選擇支持
arm64 : 必選項(xiàng),支持iphone5s及以上灾而;最低支持版本:iOS5.1.1
armv7s:支持iPhone5及以上胡控;
armv7:支持iPhone4及以上;
以上指令集旁趟,選擇越多昼激,打出來(lái)的包就越大;
若拋棄iPhone5s之前的機(jī)型锡搜,只需要選擇arm64即可橙困,這個(gè)包是最小的。
若要支持所有iPhone機(jī)型耕餐,選擇armv7凡傅、arm64即可。
參考資料:
1肠缔、https://stackoverflow.com/questions/41162645/ios-cocoapods-could-not-automatically-select-an-xcode-project-specify-one-in-yo
2夏跷、missing one or more architectures required by this target: x86_64
3哼转、如何在M1上編譯帶有CGO的Go項(xiàng)目
4、 Mac OS with M1 encounters with an error when using glfw glew
5槽华、 Apple M1,逆向環(huán)境設(shè)置與我自己遇到了很多坑逐一解決,給后來(lái)的同學(xué)一個(gè)參考吧