React NativeとExpoを使ってアプリを開発していたところ、Xcodeを16.3に更新した直後から、予期しないビルドエラーが出始めました。コンソールには
std::char_traits<unsigned char> に関するテンプレートエラーが繰り返し出て、一部のPodでコンパイルが止まりました。
早く作業を再開するため、Xcodeを16.2へ
ダウングレード
することにしました。この記事では、私が遭遇した状況と、Xcodeを安全にダウングレードする手順を紹介します。
static_assert(is_same<_CharT, typename traits_type::char_type>::value,
^ implicit instantiation of undefined template 'std::char_traits<unsigned char>'
簡単に言えば、
新しいXcodeと既存の一部のC++ネイティブコードがかみ合っていない
状態です。Expo環境ではC++コードを直接扱わないので、安定して動いていた以前のバージョンへ戻すのが、根本的な対策を施すより早い方法でした。
今回の経験で、
最新版が常に安定しているとは限らない
と改めて感じました。React Nativeのようにネイティブコンポーネントと連携するフレームワークでは、XcodeやAndroid Studioのバージョン互換性に気を配る必要があります。
今後は、メジャーバージョンを更新する前に、GitHubのIssueやExpoのリリースノートを確認してから判断しようと思います。