iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Xcode12】Double-quoted include “pb.h” in framework header, expected angle-bracketed instead の対処法

久しぶりに Cocoa Pods で、インストールしているライブラリを更新し Xcode12.0.1 でビルドしたところ下記のような見慣れないエラーに遭遇しました。

Double-quoted include “pb.h” in framework header, expected angle-bracketed instead

色々ググって見ると下記のような Issue を Cocoa Pods のレポで発見しました。

github.com

どうやら、Xcode12 から CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER のデフォルトオプションが Yes に変更され、それに起因して Cocoa Pods で生成される umbrella header でエラーが発生しているようです。CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER オプションについて詳しく知りたい方は下記を参照してみてください。

Xcode Build Settings

解決法

既に Cocoa Pods で対応がされていて、1.10 以降のバージョンで正常に umbrella header が生成されるようなので、Cocoa Pods を更新して pod install したら解決しました👷‍♀️

Default Xcode 12 settings fail to build CocoaPods-generate umbrella headers · Issue #9902 · CocoaPods/CocoaPods · GitHub

余談

umbrella headerUmbrella Framework のヘッダーファイルで、Umbrella Framework は複数の Frameworks を一つにまとめた Framework のことを言います。Mac OS X に含まれている CoreServices.framework なんかがこれにあたり、Frameworks ディレクトリに複数の Framework が内包されているのが分かります。

f:id:yum_fishing:20210120160902p:plain

ちなみに、エウレカ さんの記事に Umbrella Framework を実践的に作成した内容が書かれていてかなり勉強になります👀

medium.com

という感じで本日も以上になります👋

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com