M 1 MAC開発のための更新プロジェクト


このポストでは、デフォルトではネイティブのプロジェクトがXcode 12.4でアップルシリコン上でビルドされるようになります.ステップは私が私のアプリを更新するために続いたものと同じですが、私は物事を適切に保つためにデフォルトのプロジェクトを使用します.あなた自身のプロジェクトを更新するに沿って従うことができますが、あなたが追加した別のモジュールとそれらのPOD(すなわちFireBase)がまだアップルシリコンのサポートを追加していないかもしれないことを心に留めておいてください.
まず、基本的なプロジェクトを作りましょう.
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)
問題は、私たちがX 86 RAW 64 IOSシミュレータを構築しているが、ARM 64ライブラリとコードを構築してリンクすることです.我々は変更するいくつかの設定があります.最初に、オープンXcode
cd rntest
open ios/rntest.xcworkspace
# or xed -b ios
ARM 64アーキテクチャをビルドから除外します.ターゲットの下で、プロジェクト-> build settings -> excludesアーキテクチャを選択し、任意のIOSシミュレータSDKを追加します.あなたのポッドプロジェクトのために同じことをしてください.


何らかの理由であなたのプロジェクトが設定されている場合は、あなたのプロジェクトからこのキーを削除したいと思います.
我々は非常に行うに近いですが、あなたのポッドにインストールされているフリッパーのバージョンは、M 1のMacの修正を含めるのに十分新しいされていない可能性があります.VALID_ARCHSを開き、以下を適用する
- use_flipper!
+ use_flipper!({ 'Flipper' => '0.75.0' })
あなたのポッドを更新します
cd ios/
# optionally reinstall all your Pods if you're still having issues
# pod deintegrate
pod update
失敗したビルドを実行した場合、このような派生データをクリアしたいかもしれません
rm -rf ~/Library/Developer/Xcode/DerivedData/
さて、ビルドフォルダ(CMD + Shift + K)と建物(CMD + R)をクリアすることでクリーンビルドを実行します.
すべては今動作するはずです!あなたがまだ問題を抱えているならば、彼らはM 1で素晴らしくプレーしない特定のポッドに関連があるかもしれません.