정말 오랜만에 글 쓴다.

현생이 바쁘다는 핑계로, 막상 쓰면 좋아할 걸 알면서도 귀찮아서 쓰지 않았던 것 같다.

요즘은 미뤄왔던 SwiftUI를 해보고 있다. 좀 더 미리 했으면 좋았을텐데...

 

아무튼, 회사에서 간단한 앱을 새롭게 만들어야 해서, 겸사겸사 SwiftUI로 프로젝트를 만들었다.

 

호기롭게 Xcode 14.3으로 시작후, 빌드했더니 아래와 같은 오류 로그를 맞이했다.

“ld: building for iOS Simulator, but linking in dylib built for iOS, file for architecture arm64”

 

Xcode 14.3을 Rosetta로 돌리면 해결될 것 같았다.

기존 다른 구버전의 Xcode들처럼 Xcode 앱 정보 들어가서 'Rosetta를 켜려'했지만,

없어서 찾아보니 Xcode 14.3부턴 Rosetta로 실행하기 버튼이 사라졌다고 한다...

 

> 다른 해결방법을 찾아보자.

 


[해결법]

1. Excluded Architectures 를 arm64로 세팅

상세 방법
: 프로젝트 TARGET > Build Settings > Excluded Architectures
> Debug > Any iOS Simulator SDK를 arm64로 설정한다.

 

해결 단계 1

참고 자료: https://velog.io/@manpkh95/ld-building-for-iOS-Simulator-but-linking-in-dylib-built-for-iOS-file-for-architecture-arm64


2. Pod파일 수정

상세 방법
: 아래와 같이 pod 내용 추가 후 > pod install

post_install do |installer|
   installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
         config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
      end
   end
end

해결 단계 2

참고 자료: https://velog.io/@jee/Xcode-%EB%B9%8C%EB%93%9C%EC%97%90%EB%9F%AC-Architecture-arm64


더보기

보통 2번까지 하면 된다는 사람들이 있는데, 난 3번까지 해야만 오류가 해결됐다.

나처럼 안되는 사람들은 3번까지 진행해보면 될 것이다..!

3. 'Show Rosetta Destinations' 켜기

상세 방법
: Xcode14.3 상단 > Product > Destination > Destination Architectures > Show Rosetta Destinations 선택.

이렇게 설정하고 나면, 시뮬레이터 이름들이 (Rosetta) 가 붙으면서 정상적으로 빌드가 될 것이다. (아래 사진 참고)

 

해결 단계 3

참고 자료: https://sarunw.com/posts/open-using-rosetta-in-xcode-14-3/

 


이렇게 단계 1 ~ 단계 3까지 진행하고 난 뒤, 다시 빌드 해보면 정상적으로 될 거예요.

만약 다른 방법으로 해결된 분이 있다면 공유 부탁드립니다.

 

반응형