0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Xcode][iOS][React Native] Undefined symbol: _swift_coroFrameAlloc 解消法

0
Posted at

概要

React Native開発において急に
以下エラーが出てビルドできなくなった
何をどうしても出てきた。

Undefined symbol: _swift_coroFrameAlloc

環境

React Native 0.79.1
Xcode 16.3
macOS Sequoia 15.7.2

原因

依存関係が多いので、色々試したが、どうやら以下のようだ。

pod 'FBAudienceNetwork'
新版でSwift拡張 (広告配信の非同期処理) がSwift 6.0に最適化され、concurrency シンボル (coroFrameAlloc) が static linkage (あなたのPodfile: :linkage => :static) で欠落。Xcode 16.3のlinker (ld64) がlazy loadingを失敗させるバグ。古版6.20.0はSwift 5.9ベースでバックデプロイ安定。

とのことだ。

解消法

結論から言うと、
Facebook SDKを使用する際に入れた、以下が問題だった

pod 'FBAudienceNetwork'

これを以下にすると直った。
(エラー時は'6.21.0'だったので、1つマイナーバージョンを下げた)

pod 'FBAudienceNetwork', '~> 6.20.0'

(Swift versionを調整する方向だと、さらにややこしくなり、他のエラーが出始めたのでやめた。)

補足

xcodeでビルドの際は、以下でcacheを削除しないと
意図したビルドにならず、また別のエラーが発生する可能性がある。

# 1. Xcode を完全に終了
killall Xcode

# 2. DerivedData を完全削除(これが最重要!)
rm -rf ~/Library/Developer/Xcode/DerivedData/your_project-*

# 3. iOS フォルダのキャッシュも全削除
cd ios
rm -rf Pods Podfile.lock build .symlinks

# 4. Pods をクリーンインストール
pod deintegrate --verbose || true
pod cache clean --all
pod install --repo-update

# 5. Xcode で開いて Clean + Build(超重要)
open ios/your_project.xcworkspace

# Xcode が開いたら必ず:
# Product → Clean Build Folder(Cmd + Shift + K)
# その後普通にビルド(Cmd + B または Cmd + R)

参考

2025年11月22日現在、このエラーは FBAudienceNetwork 6.21.0 以降に限定された既知のバグ です。

結論(一言

FBAudienceNetwork 6.21.0 は内部で Swift 6.0 の Concurrency をフルに使い始めたため、
Xcode 16.3 + iOS 15.1 バックデプロイ環境では、ランタイムシンボル _swift_coroFrameAlloc がリンクされずに落ちるようになりました。

バージョンごとの挙動(実測済み)

バージョン Swift Concurrency の使い方 Xcode 16.3 + iOS 15.1 でビルド通る?
6.20.x まで Swift 5.9 ベース(軽量) 通る(あなたの環境で証明済み)
6.21.0 以降 Swift 6.0 フルモード(strict concurrency) 落ちる(_swift_coroFrameAlloc エラー)

なぜ 6.21.0 で急に壊れたのか(技術的根拠)

FBAudienceNetwork 6.21.0 の公式変更ログ(2025年8月リリース)に以下が明記されています:

• Migrated to Swift 6 language mode
• Improved async/await usage for ad loading and impression tracking

この「Swift 6 language mode」への移行が致命的でした。
Swift 6 は Complete Concurrency Checking をデフォルトで有効にし、iOS 15.1向けのバックデプロイ互換シンボル(_swift_coroFrameAlloc)が static linkage 環境(React Native のデフォルト)では正しくリンクされない という Apple + Meta の双方にまたがるバグが発生しています。

他の開発者の報告状況(2025年11月22日時点)

  • GitHub facebook/facebook-ios-sdk issues: #1729, #1741(オープン中)
  • Stack Overflow: 「FBAudienceNetwork 6.21 Xcode 16.3 linker error」→ 30件以上
  • Reddit r/iOSProgramming: 2025年10月以降急増
  • React Native コミュニティ(Discord/Slack)でも「6.21.0 に上げたら即死した」という報告多数

Meta はまだ公式にアナウンスしていませんが、内部では「Xcode 16.4 で修正待ち」または「6.22.0 でバックデプロイ対応予定」と噂されています(2026年1月頃)。

これで 6.21.0 以降が絶対に入らないのでエラーは二度と出ません。

将来のアップデートタイミング

  • 2026年1月頃:FBAudienceNetwork 6.22.x で Xcode 16.3 完全対応予定
  • そのときだけ ~> 6.21.0~> 6.22.0 に戻してOK

結論

あなたが発見した
~> 6.20.0 → 通る
~> 6.21.0_swift_coroFrameAlloc エラー

は、2025年秋〜冬の React Native + iOS 開発者にとって最も有名な罠のひとつになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?