なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Expo 57 で Xcode 27 から出るようになった TN3187 に対処する

Xcode 27 にした状態で、 Expo 57 のプロジェクトをビルドすると、次のようなエラーが出てシミュレーター上でアプリが起動しなくなりました。

failure in void _UIApplicationEvaluateRuntimeIssueForNoSceneLifecycleAdoption(void)_block_invoke (UIApplication_RuntimeIssues.m:106):
Application failed to launch: UIScene life cycle is required for apps built with this SDK. See Technote TN3187 for more information on migration.

これの対処方法を紹介します。 といっても簡単で、expo と expo-build-properties を最新にして、次のような設定を app.config.js に加えるだけ:

diff --git a/app.config.js b/app.config.js
index e8dbbe71..5354566f 100644
--- a/app.config.js
+++ b/app.config.js
@@ -173,6 +173,7 @@ module.exports = ({ config }) => {
         "expo-build-properties",
         {
           ios: {
+            enableSceneSupport: true,
             forceStaticLinking: ["RNFBApp", "RNFBMessaging"],
             useFrameworks: "static",
             ccacheEnabled: true,

この後、

$ pnpm exec expo prebuild --clean --platform ios

をして、クリーンビルドし治した後、いつも通り起動スクリプトを呼べば、無事起動します。クリーンビルドしないと、 expo-build-properties の変更は反映されないのでそこだけ注意。 ということでメモでした。


参考: