3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Swift + SPM 環境で「Test 実行時だけ module not found」になる原因

3
Posted at

結論(先に)

Test Scheme の Build Configuration が、存在しない Debug を参照していたのが原因でした。

Run は成功するのに、Test だけ
Unable to find module dependency
が出る場合、コードや SPM より先に Scheme を確認すべきでした。

発生した問題

SwiftUI + Swift Package Manager 環境で、以下の現象が発生しました。

  • App の Run は正常
  • Unit Test 実行時のみエラー
  • Factory / Alamofire など、複数の SPM ライブラリで再現

エラー内容

Unable to find module dependency: 'Factory'

環境

  • macOS: 26.0

  • Xcode: 26.2

  • Swift: 6.2

  • SwiftUI

  • Package Manager: Swift Package Manager

  • 使用ライブラリ:

    • Factory
    • Alamofire

状況の詳細

  • App の Run は問題なし
  • Test Target にも SPM ライブラリは追加済み
  • キャッシュ削除、DerivedData 削除、Test Target 作り直し
    すべて効果なし

原因

Test Scheme の Build Configuration が Debug になっていた

自分のプロジェクトでは、

  • 実際に使っている Build Configuration は
    Debug-simulator
  • Debug という Configuration は存在しない

にもかかわらず、

Edit Scheme → Test → Build Configuration
Debug が設定されていた

という状態でした。

なぜこんなことが起きるのか

  • Xcode は Test Scheme を自動生成するとき、
    「Test = Debug」前提で設定する
  • その後 Project 側で Debug を削除・使わなくしても、
    Scheme は自動で更新されない
  • Scheme は
    buildConfiguration="Debug"
    という ただの文字列を保持しているだけ

結果:

  • Run:Debug-simulator → OK
  • Test:存在しない Debug → SPM が解決できない

というズレが発生。

解決方法

Edit Scheme → Test → Build Configuration を修正

スクリーンショット 2025-12-22 19.41.53.png

  • 存在する Build Configuration
    (例: Debug-simulator)に変更

これだけで、

  • module not found
  • Factory / Alamofire のエラー

完全に解消しました。

教訓

Run が通って Test だけ壊れるとき、
コードより先に Scheme の Build Configuration を疑う

SPM・外部ライブラリ・キャッシュは無罪で、
原因は Xcode の Scheme 設定でした。

まとめ

  • Xcode は存在しない Build Configuration(Debug)を
    Test Scheme に平然と設定することがある
    スクリーンショット 2025-12-22 19.41.17.png
  • Build Configuration をカスタムしているプロジェクトほど要注意
  • Test 実行時エラーは、Scheme を最優先で確認するべき
3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?