もう1つの選択肢として、Appstoreで作業している場合は、「エンタイトルメント」が必要であり、アップルフレームワークとリンクする必要があります。
資格が動作する場合(GameCenterなど)、にはが必要です。「ライブラリでバイナリをリンク」ビルドステップを実行し、「GameKit.framework」にリンクする必要があります。 CMakeはライブラリを "低レベル"でコマンドラインに "注入"するので、Xcodeはを実際にはと知らないので、ではありません。 Capabilities画面でGameKitを有効にします。
CMakeを使って "Link with Binaries"ビルドステップを行う方法の1つは、CMakeでxcodeprojを生成し、 'sed'を使って '&を検索'し、Xcodeが好きなようにGameKitを追加することです。 ..
スクリプトは次のようになります(Xcode 6.3.1用)。
s#\/\* Begin PBXBuildFile section \*\/#\/\* Begin PBXBuildFile section \*\/\
26B12AA11C10544700A9A2BA \/\* GameKit.framework in Frameworks \*\/ = {isa = PBXBuildFile; fileRef = 26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/; };#g
s#\/\* Begin PBXFileReference section \*\/#\/\* Begin PBXFileReference section \*\/\
26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameKit.framework; path = System\/Library\/Frameworks\/GameKit.framework; sourceTree = SDKROOT; };#g
s#\/\* End PBXFileReference section \*\/#\/\* End PBXFileReference section \*\/\
\
\/\* Begin PBXFrameworksBuildPhase section \*\/\
26B12A9F1C10543B00A9A2BA \/\* Frameworks \*\/ = {\
isa = PBXFrameworksBuildPhase;\
buildActionMask = 2147483647;\
files = (\
26B12AA11C10544700A9A2BA \/\* GameKit.framework in Frameworks xxx\*\/,\
);\
runOnlyForDeploymentPostprocessing = 0;\
};\
\/\* End PBXFrameworksBuildPhase section \*\/\
#g
s#\/\* CMake PostBuild Rules \*\/,#\/\* CMake PostBuild Rules \*\/,\
26B12A9F1C10543B00A9A2BA \/\* Frameworks xxx\*\/,#g
s#\/\* Products \*\/,#\/\* Products \*\/,\
26B12AA01C10544700A9A2BA \/\* GameKit.framework xxx\*\/,#g
このようにそれを「適用」し、「gamecenter.sed」し、これを保存し、(それはあなたのxcodeprojを変える!)
sed -i.pbxprojbak -f gamecenter.sed myproject.xcodeproj/project.pbxproj
あなたのニーズに合うようにスクリプトコマンドを変更する必要があります。
警告:プロジェクトフォーマットが変更される可能性があるため、別のXcodeバージョンでは破損する可能性があります(ハードコードされた固有の番号は本当にユニークではありません)。 Appstore +エンタイトルメント(および自動ビルド)をサポートしていますが、これはしないでください。
これはCMakeのバグで、私はあなたがFOOと呼ばれるライブラリにリンクするとしhttp://cmake.org/Bug/view.php?id=14185とhttp://gitlab.kitware.com/cmake/cmake/issues/14185
ありがとうございます! – Prime
['link_directories'](http://www.cmake.org/cmake/help/v2.8.10/cmake.html#command:link_directories)の使用は、それ自身のドキュメントであってもお勧めしません。元の質問で失敗した 'find_library'呼び出しを解決するか、@ Andreの解決策を使う方が良いと思います。 – Fraser
は、私はそれが特定のライブラリの場所を対象として、「インポート」ライブラリの対象ではなく、単にグローバルな検索パスを与える、より堅牢であることがわかりました。アンドレの答えを見てください。 –