M1 Mac & Xcode에서 'building for iOS Simulator, but linking in object file ... for architecture arm64' 오류 해결

Xcode 프로젝트 파일에 Firebase를 설치 후 빌드하면 다음 오류가 발생했을 때의 해결 방법
ld: in /Users/[ユーザー名]/[プロジェクト名]/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_a8eeba373b74508311b8b22b8d3202a6.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/[ユーザー名]/[プロジェクト名]/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

개발 환경



Xcode 12.3
M1 MacBook Air

왜 이러한 오류가 발생하는지



arm64 아키텍처 지원 및 Xcode12 호환 버전은 많은 일반적인 타사 라이브러리(Firebase, AFNetworking 등)에서 아직 제공되지 않습니다.

라는 것입니다.

대처법 단계 ①



첫째, 프로젝트 Build SettingsExcluded ArchitecturesDebugRelease Any iOS Simulator SDK를 추가하여 arm64를 제외합니다.


대처법 단계②



스텝②에 관해서는 수동으로 arm64를 제외하는 방법과 arm64 다시 쓴 후에 podFile 를 해서 덮어쓰는 방법이 있습니다.

· 수동으로 arm64를 제외하는 방법



다음 Pods pod update Build Settings Excluded Architectures 그리고 DebugRelease Any iOS Simulator SDK를 추가하여 arm64를 제외합니다.


· PodFile 재기록 후 update로 덮어 쓰는 방법



아래 코드를 PodFile에 추가하고 arm64
post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end



대처법 스텝③



.xcworkspace 프로젝트를 시작한 후 pod update + Command + Shift 로 클린합니다.

그러면 시뮬레이터에서 시작할 수있었습니다.

참고



XCode 12, FIRAnalyticsConnector, Build Error
Xcode 12 Compilation Errors (While running with iOS 14 Simulators)

뭔가 잘못이나 더 좋은 방법이 있으면 부드럽게 가르쳐 주시면 다행입니다 🙇‍♂️

좋은 웹페이지 즐겨찾기