1. CocoaPod 설치 이슈
- Mac OS Big Sur 에서 Cocoapod 을 설치할 때 Cocoapod 설치를 위해 필요한 Ruby Gem Library 인 FFI 가 Apple Silicon을 지원하지 않아 Arm64 Native 버전으로 Cocoapod을 설치 할 수 없습니다.
- 그래서 Rosetta를 이용하여 아키텍처를 X86으로 변경한 후 설치하는 방법이 일반적이지만 좀 더 개선된 방법을 공유합니다.
- Gem List 에 보이는 cocoapod 관련 gem을 uninstall 합니다.
- Brew를 설치하고 ruby2.7 버전을 추가합니다.
- ruby version 이 2.7 이상으로 변경 되며, Gem 역시 brew로 설치된 Ruby버전을 바라보게 됩니다.
- gem install ffi 실행 (권장)
- brew install cocoapods
- gem install cocoapods 명령어를 사용하지 않는 이유는 설치는 되지만 자동으로Symbolic Link가 추가 되지 않아 수작업을 해야 되기 때문입니다.
- cocoapod 정상 작동 확인
- 더 이상 rosetta 의 도움 없이 native로 빌드 된 cocoapod을 사용할 수 있습니다.
2. Cocoapod으로 설정된 프로젝트 빌드 이슈
- Podfile에 EXCLUDED_ARCHS 설정을 하지 않으면 다음과 같은 화면을 빌드 시 보게 됩니다.

- Apple Silicon Mac 환경에서 Compile 이 x86_64 로 나오는 것은 Cocoapod 이 Pod Initilize 할 때 Workspace 파일을 구성하면서 Build 설정을 x86으로 변경했기 때문입니다.
- 위 문제를 수정하기 위해서 거의 대부분의 해결 방법이 Exclude Architecture를 arm64 로 하는데, (정확히 말하면 arm64 iOS simulator sdk 를 제외한다는 뜻입니다.) x86제외하지 않고 arm64를 제외하는 이유는 아직 잘 모르겠습니다. 이론적으로 생각하면 arm64 iOS Simulator 에 x86으로 빌드된 바이너리가 실행된다는 이야기인데, 내용상 설명할 수 없거나, 자료를 얻을 수 없는 케이스가 많아 나중에 좀 더 자세히 알게 되면 추가로 설명하겠습니다.
- 우선 pod file 에 다음과 같은 문구를 추가하면 거의 모든 케이스는 대응이 가능합니다.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.1'
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
end
3. Widget 추가하기 이슈
- cocoapod 1.10.1 (집무실 iOS 2.0.7 기준) 버전에는 Widget 프로젝트를 추가해서 빌드를 하면 2번과 같은 이슈가 발생합니다. 그래서 2번 이슈 해결방법과 동일 한 방법을 사용해도 문제가 수정 되지 않았습니다.
- cocoapod 1.11.2 에서는 이 문제가 수정된 것으로 보이며, widget 프로젝트 추가 후 다른 설정은 필요 없습니다.

- widget 프로젝트는 arm64로 컴파일 되며, iOS 최소 버전은 집무실 프로젝트에 영향을 받지 않습니다.
- Swift UI로 개발해야 되기 때문에 최소 버전은 iOS 13입니다.
- 빌드 Log에서 보이는 것 처럼 Widget은 Cocoapod 설정 에 영향을 받지 않는 것으로 보입니다.
- 기본 프로젝트를 실행하면 아래와 같이 보입니다.
