React Native で iOS アプリを開発中、Git のブランチを切り替えたり、ライブラリを追加/削除していたら、「Typedef redefinition with different types (‘uint8_t’ (aka ‘unsigned char’) vs ‘enum clockid_t’)」というエラーが発生し、アプリのビルドに失敗するようになってしまいました…。
なお、こちらのエラーは Xcode で実行した時に確認できたエラーです。
普段はコマンドラインツール上で実行しているのですが、エラーが長すぎて上の方が見れなかった…。
で、色々調べたところ、一番参考になった記事がこちら。
Catalyst + ReactNative: Typedef redefinition with different types (‘uint8_t’ (aka ‘unsigned char’) vs ‘enum clockid_t’) error when building for mac target · Issue #28810 · facebook/react-native · GitHub
https://github.com/facebook/react-native/issues/28810
こちらの投稿で「Facebook Flipperとそれに関連する他のすべてを削除する」とあり、そちらを試したところ、ビルドできるようになりました!
詳しい手順は、まず Podfile
を開き、下記の 2行を削除もしくはコメントアウトします。
use_flipper! <- この行を削除 or コメントアウト post_install do |installer| flipper_post_install(installer) <- この行を削除 or コメントアウト end
その後、Pods
ディレクトリと Podfile.lock
を削除してから下記コマンドを実行します。
pod cache clean --all pod install
こちらを実行後、react-native run-ios
を実行したところ、あの苦労は何だったのだろう…と思うくらいすんなりとビルドに成功しました。
以上、React Native で開発中の iOS アプリで「Typedef redefinition with different types (‘uint8_t’ (aka ‘unsigned char’) vs ‘enum clockid_t’)」エラーが発生した時の対処法でした。
ご参考になれば幸いです。