cocos2dxのプロジェクトにfabricとcrashlytics導入しようとして、詰まったことと、解決方法

androidはすんなりとfabricが入ったんですが、iosだとfabricとcrashlyticsのpod install時に詰まってしまって、
かなり時間を取られてしまいました。

なので内容と対策方法を書きます。

エラーの内容としては、pod install時に以下のwarningが出てしまって、正常にインストールできておらず、
<fabric>関連のヘッダーファイルがxcode上では、参照できるものの、

[Fabric with:@[[Crashlytics class]]];

のところで、参照エラーになってしまうというものでした。

podファイルのエラーは以下の通りです。

[!] The `everybodytrump-desktop [Debug]` target overrides the `GCC_PREPROCESSOR_DEFINITIONS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-desktop/Pods-everybodytrump-desktop.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-desktop [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-desktop/Pods-everybodytrump-desktop.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-desktop [Release]` target overrides the `GCC_PREPROCESSOR_DEFINITIONS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-desktop/Pods-everybodytrump-desktop.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-desktop [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-desktop/Pods-everybodytrump-desktop.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Debug]` target overrides the `GCC_PREPROCESSOR_DEFINITIONS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Debug]` target overrides the `LIBRARY_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Release]` target overrides the `GCC_PREPROCESSOR_DEFINITIONS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Release]` target overrides the `LIBRARY_SEARCH_PATHS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `everybodytrump-mobile [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-everybodytrump-mobile/Pods-everybodytrump-mobile.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

解決方法は、ログに書いてある通り、それぞれの場所に$(inherited)を追加するだけです。

場所をまとめると。

下図のような感じで、BuildSettingsからOther Linker flagSearch PathProcessor Macroにそれぞれ$(inherited)を加えます。

cocoapad linker対策

 

$(inherited)は、参照しているlibの一覧ぽいです。

しかし、自分のケースでは、すでにcocoapad経由で導入していたadmobがあり、それが$(inherited)に定義されているため、
admobのlibを参照することができずに、$(inherited)を記述しても、実行できませんでした。

なので、一度admobを参照から外して、inheritedからadmobのlinkを消して、解決しました。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です