또 다른 대안은 Appstore로 작업하는 경우 "Entitlements"가 필요하므로 Apple-Framework와 연결해야합니다.
작업에 인 타이틀먼트의 경우 (예 : 게임 센터) 당신은 필요 에 "바이너리를 라이브러리와 연결"-buildstep을 가지고 다음 "GameKit.framework"로 연결합니다. CMake는 "낮은 수준"의 라이브러리를 명령 줄에 "주입"하므로 Xcode는 실제로 그것에 대해 알지 못하므로 Capabilities 화면에서 GameKit을 활성화 하지 않습니다 .
CMake를 사용하고 "Link with Binaries"빌드 단계를 갖는 한 가지 방법은 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 버그입니다. http://cmake.org/Bug/view.php?id=14185 및 http://gitlab.kitware.com/cmake/cmake/issues/14185 참조
link_directories
자체 문서에서도를 사용 하지 않는 것이 좋습니다.find_library
원래 질문에서 실패한 전화 를 해결 하거나 @Andre의 솔루션을 사용하는 것이 더 나을 것이라고 생각합니다 .