Một giải pháp thay thế khác, trong trường hợp bạn đang làm việc với Appstore, cần "Quyền lợi" và do đó cần liên kết với Apple-Framework.
Để các Tiện ích hoạt động (ví dụ: GameCenter), bạn cần có bước xây dựng "Liên kết nhị phân với Thư viện" và sau đó liên kết với "GameKit.framework". CMake "đưa" các thư viện ở "cấp độ thấp" vào dòng lệnh, do đó Xcode không thực sự biết về nó và như vậy bạn sẽ không kích hoạt GameKit trong màn hình Khả năng.
Một cách để sử dụng CMake và có "Liên kết với Binaries" -buildstep là tạo xcodeproj với CMake, sau đó sử dụng 'sed' để 'tìm kiếm & thay thế' và thêm GameKit theo cách XCode thích ...
Tập lệnh trông như thế này (đối với 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
lưu nó vào "gamecenter.sed" và sau đó "áp dụng" nó như thế này (nó thay đổi xcodeproj của bạn!)
sed -i.pbxprojbak -f gamecenter.sed myproject.xcodeproj/project.pbxproj
Bạn có thể phải thay đổi các lệnh script để phù hợp với nhu cầu của mình.
Cảnh báo: nó có khả năng bị hỏng với phiên bản Xcode khác vì định dạng dự án có thể thay đổi, số duy nhất (mã cứng) có thể không thực sự là duy nhất - và nói chung các giải pháp của người khác tốt hơn - vì vậy trừ khi bạn cần Hỗ trợ Appstore + Quyền lợi (và các bản dựng tự động), không làm điều này.
Đây là lỗi CMake, hãy xem http://cmake.org/Bug/view.php?id=14185 và http://gitlab.kitware.com/cmake/cmake/issues/14185
link_directories
không được khuyến khích, ngay cả trong tài liệu riêng của nó. Tôi nghĩ sẽ tốt hơn ở đây nếu giải quyếtfind_library
cuộc gọi không thành công trong câu hỏi ban đầu hoặc sử dụng giải pháp của @ Andre.