M1 Mac 개발을 위한 React Native 프로젝트 업데이트

3025 단어 reactreactnative
이 게시물에서는 기본 React Native 프로젝트를 Apple 실리콘의 Xcode 12.4에서 빌드하는 방법을 살펴보겠습니다. 단계는 내 앱을 업데이트하기 위해 따랐던 단계와 동일하지만 관련성을 유지하기 위해 기본 프로젝트를 사용하겠습니다. 계속해서 자신의 프로젝트를 업데이트할 수 있지만 추가한 다른 모듈과 해당 포드(예: Firebase)는 아직 Apple 실리콘에 대한 지원을 추가하지 않았을 수 있습니다.

먼저 작업할 기본 프로젝트를 가져오겠습니다.

npx react-native init rntest


추가 변경 없이 실행할 수 있는 몇 가지 일반적인 오류는 다음과 같습니다.

/Users/mngyuan/git/personal/rntest/ios/rntest.xcodeproj The linked library 'libPods-rntest.a' is missing one or more architectures required by this target: arm64.



Undefined symbol: protocol descriptor for Swift.ExpressibleByFloatLiteral
...



ld: in /Users/mngyuan/git/personal/rntest/ios/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o), building for iOS Simulator, but linking in object file built for iOS, file '/Users/mngyuan/git/personal/rntest/ios/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


문제는 우리가 x86_64 iOS 시뮬레이터용으로 빌드하고 있지만 arm64 라이브러리 및 코드로 빌드하고 연결한다는 것입니다. 변경할 설정이 있습니다. 먼저 Xcode를 엽니다.

cd rntest
open ios/rntest.xcworkspace
# or xed -b ios


빌드에서 arm64 아키텍처를 제외할 것입니다. 대상 아래에서 프로젝트 -> 빌드 설정 -> 제외된 아키텍처를 선택하고 디버그 및 릴리스 모두에 대해 모든 IOS 시뮬레이터 SDK: arm64를 추가합니다. 포드 프로젝트에 대해 동일한 작업을 수행합니다.





어떤 이유로 프로젝트에 VALID_ARCHS가 설정되어 있는 경우 이 단계에서 프로젝트(및 Pods 프로젝트)에서도 해당 키를 제거해야 합니다.

거의 완료되었지만 포드에 설치된 Flipper 버전은 M1 mac용 수정 사항을 포함할 만큼 새롭지 않을 수 있습니다. ios/Podfile를 열고 다음을 적용합니다.

- use_flipper!
+ use_flipper!({ 'Flipper' => '0.75.0' })


그리고 Pod를 업데이트하세요.

cd ios/
# optionally reinstall all your Pods if you're still having issues
# pod deintegrate
pod update


실패한 빌드를 수행한 경우 다음과 같이 DerivedData를 지우고 싶을 수 있습니다.

rm -rf ~/Library/Developer/Xcode/DerivedData/


이제 빌드 폴더를 지우고(Cmd+Shift+K) 빌드(Cmd+R)하여 클린 빌드를 수행합니다.

이제 모든 것이 작동합니다! 여전히 문제가 있는 경우 M1에서 아직 제대로 재생되지 않는 특정 포드와 관련이 있을 수 있습니다.

좋은 웹페이지 즐겨찾기