directly 'pod install' deprecated, rosetta2, intell x86 vs arm64

반응형

 

 

==================== DEPRECATION NOTICE =====================
Calling `pod install` directly is deprecated in React Native
because we are moving away from Cocoapods toward alternative
solutions to build the project.
* If you are using Expo, please run:
`npx expo run:ios`
* If you are using the Community CLI, please run:
`yarn ios`
=============================================================

 

 

[!] Do not use "pod install" from inside Rosetta2 (x86_64 emulation on arm64).

[!]  - Emulated x86_64 is slower than native arm64

[!]  - May result in mixed architectures in rubygems (eg: ffi_c.bundle files may be x86_64 with an arm64 interpreter)

[!] Run "env /usr/bin/arch -arm64 /bin/bash --login" then try again.

[!] RNNotifee: using Notification Service Extension.

[!] hermes-engine has added 1 script phase. Please inspect before executing a build. See `https://guides.cocoapods.org/syntax/podspec.html#script_phases` for more information.

 

 

 

 

 

⏺ 1. pod install 가 Rosetta2에서 실행되는 이유

  M2 맥북인데도 Rosetta2 경고가 나오는 이유는 터미널이나 Ruby가 x86_64 모드로 실행되고 있기 때문입니다.
  마이그레이션으로 옮겨온 경우 다음이 원인일 수 있습니다:

  - 터미널 앱 자체가 Rosetta 모드로 설정됨
  - Ruby/rbenv/CocoaPods가 Intel 버전으로 설치됨
  - 환경변수나 PATH가 Intel 버전을 가리킴

⏺ 2. 아키텍처 혼용 문제

  Rosetta2에서 pod install을 실행하면:
  - 성능 저하: x86_64 에뮬레이션으로 느려짐
  - 아키텍처 혼용: ffi_c.bundle 같은 네이티브 라이브러리가 x86_64로 컴파일되는데 Ruby 인터프리터는 arm64일 수
  있음
  - 빌드 오류 가능성: 혼합된 아키텍처로 인한 예기치 못한 오류

⏺ 3. 해결 방법

  즉시 해결 (임시):

  env /usr/bin/arch -arm64 /bin/bash --login
  cd ios && pod install

  근본적 해결:

  1. 터미널 앱 확인:
  - Applications > Terminal > 우클릭 > Get Info
  - "Open using Rosetta" 체크 해제

  2. Ruby 재설치 (arm64 네이티브):
  # 현재 아키텍처 확인
  uname -m  # arm64여야 함
  which ruby
  ruby -e "puts RUBY_PLATFORM"

  # rbenv 사용 시
  rbenv uninstall [현재버전]
  rbenv install [최신버전]
  rbenv global [최신버전]

  # 또는 Homebrew로 Ruby 재설치
  brew uninstall ruby
  brew install ruby

  3. CocoaPods 재설치:
  gem uninstall cocoapods
  gem install cocoapods

⏺ 4. Deprecation Notice 대응

  React Native은 CocoaPods에서 다른 솔루션으로 전환 중입니다.

  권장 사용법:
  - Expo 사용 시: npx expo run:ios
  - Community CLI 사용 시: yarn ios

  현재 프로젝트에서는 yarn ios 명령어를 사용하는 것이 좋습니다.

  5. 추가 경고들

  - RNNotifee: Notification Service Extension 사용 중 (정상)
  - hermes-engine: 스크립트 단계 추가됨 (빌드 전 검토 권장)

⏺ 요약: 마이그레이션으로 인해 Intel 버전 Ruby/CocoaPods가 설치되어 있을 가능성이 높습니다. arm64 네이티브
  환경으로 재설치하고, 앞으로는 yarn ios 명령어를 사용하세요.

 

 

 

  React Native의 방향성:
  - 현재: CocoaPods 사용 중 (하지만 deprecated)
  - 미래: CocoaPods 없이 다른 솔루션으로 전환 예정

  현재 상황에서는:
  1. yarn ios가 내부적으로 pod install을 자동 실행합니다
  2. 하지만 여전히 CocoaPods 의존성이 필요합니다
  3. 에러 코드 65는 Xcode 빌드 실패를 의미합니다

  당분간은:
  - pod install 여전히 필요
  - yarn ios 사용 권장 (자동으로 pod install 실행)
  - 빌드 실패 시 pod install 수동 실행 필요할 수 있음

  완전히 CocoaPods 없어지는 시기:
  - React Native 0.82+ 이후 단계적으로
  - 아직 구체적인 일정은 미정

⏺ 결론: 지금은 여전히 CocoaPods가 필요하고, yarn ios 실패 시 pod install을 직접 실행해야 할 수도 있습니다.

 

 

반응형

댓글

Designed by JB FACTORY