LoginSignup
17
17

More than 5 years have passed since last update.

StaticLibraryを配布したらXcode7で大量にワーニングが出た

Last updated at Posted at 2015-11-30

現象

StaticLibraryを配布したところ、利用者から下記の様なワーニングが多発したと連絡を受けた

warning: /var/folders/ht/bwnbnkj15712kftlggh_mrd039gknf/C/org.llvm.clang.hoge/ModuleCache/3OXN4L3TBS3XZ/Darwin-MI6WZSG1PNOM.pcm: No object file for requested architecture
while processing /Users/fuga/work/foo/h/wwwwww.framework/WwwWwww(WwwwWwww.o):

誤った解決方法

StaticLibraryの利用者側で、
「Debug Information Format」の指定を「DWARF with dSYM」から「DWARF」に変更する

僕は下記のような対応は解決ではないと思う
http://iphone-app-developer.seesaa.net/article/426858945.html

この設定を行った場合、ワーニングは表示されなくなるが、その代わりにdSYMファイルが作成されなくなる。

dSYMファイル

このdSYMファイルはデバックシンボル群を保持している。用途としてはクラッシュログが本来メモリダンプのみのためアドレスしか記載がないところ、dSYMファイルが存在していればアドレスからシンボルが確認でき、人間が意味の分かる内容になる。

よく見受けられるのはゲーム系開発などビルドに時間がかかりすぎる場合は、Debug時のみ「DWARF」を指定するなど。

とにもかくにも、「DWARF」にすればワーニングが表示されなくなるだけで、解決は何もしていない。

  • cf. Xcode7.1.1(Xcode7.1時に意識していない)時のデフォルト値
    「Debug Information Format」がDebug時は「DWARF」、Release時は「DWARF with dSYM」ぽい

正しい解決方法

StaticLibraryの作成者側のXcodeの設定で、下記を実施する。

Enable Modules (C and Objective-C) (CLANG_ENABLE_MODULES) = NO

Enable Modules (C and Objective-C)がYESだと?

StaticLibrary作成時に下記フォルダへcacheを生成していた。

/var/folders/ht/bwnbnkj15712kftlggh_mrd039gknf/C/org.llvm.clang.hoge/ModuleCache/

おそらく、StaticLibraryを配布した利用者側ではcacheを参照するようになっていたため、
作成者側ではワーニングが出ずに、利用者側ではワーニングが出現していたのだと思う。

最後に

StaticLibraryの利用者側のXcodeの設定で、下記を実施すると、

Enable Modules (C and Objective-C) (CLANG_ENABLE_MODULES) = NO

もれなくエラーが出現すると思われる。

たぶん・・・。

そもそも、この辺てXcode6以前の時て、どうだったんだろか。意識してなかった。

17
17
3

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
17
17