Xcode で could not build Objective-C module エラーが発生する
プログラミングで出逢った出来事
Xcode 6.1.1 で Swift で書いた Cocoa Framework をビルドしたところ could not build Objective-C module エラーが発生したので、その原因と対処方法を調べてみました。
Xcode で could not build Objective-C module エラーが発生する
Swift で書いていた Cocoa Framework プロジェクトを Xcode 6.1.1 でビルドしたところ、次のエラーが発生しました。
<unknown>:0: error: could not build Objective-C module 'ESFoundation'
このエラーは Cocoa touch Framework でも発生して、自分の環境ではBuild Settings
のProduct Name
設定を既定値から変更していた場合にだけ発生する様子でした。
ちなみにProduct Name
設定の既定値は $(TARGET_NAME) です。
エラーの原因と対処方法
原因
エラーの原因を調べてみると、どうやらプロジェクト内に登録されていたヘッダーファイルが次の条件だったときに発生する様子でした。
- ヘッダーファイルの名前が
Product Name
の設定と同じ - そのヘッダーファイルの
Target Membership
設定がProject
に設定されている
上記の条件に一致しても普通のビルドではエラーにならず、クリーンビルドしたときに始めてこのエラーが発生する場合があるようです。
対処方法
このエラーを回避するには、ヘッダーファイルのTarget Membership
設定を "Private" か "Public" に変更するか、そもそもチェックを外して Framework に含めないようにします。
そうすることで、今回のエラーは発生しなくなるようでした。