2016-11-17 19 views
10

CMake đã có thể cấu hình mã ký tự động cho XCode < = 7 và iOS dự án với một tài sản mục tiêu thiết lập nhưCMake và Mã Đăng nhập XCode 8 dành cho iOS dự án

set_target_properties(app PROPERTIES XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "PROPER IDENTIFIER") 

XCode 8 thay đổi quá trình ký. Nó bây giờ là bắt buộc rằng các tùy chọn "Tự động quản lý ký" trong các thiết lập dự án "Tổng quát tab -> Ký" được chọn. Nếu tôi kiểm tra các tùy chọn này theo cách thủ công cho một dự án tạo ra cmake, việc ký kết hoạt động tốt. Nhưng tôi không tìm thấy một cách để kích hoạt tùy chọn này từ dự án cmake theo mặc định. Điều này có thể được thực hiện cho cmake (> = 3.7.0)?

Trả lời

1

Nếu bạn muốn tự động ký trong CMakeLists.txt

SET_XCODE_PROPERTY(MyTarget CODE_SIGN_IDENTITY "iPhone Developer") 
SET_XCODE_PROPERTY(MyTarget DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}) 

DEVELOPMENT_TEAM_ID - là TeamID Ví dụ bạn. 2347GVV3KC


Nếu bạn muốn ký thủ công:

SET_XCODE_PROPERTY(MyTarget CODE_SIGN_IDENTITY ${CODESIGNIDENTITY}) 
SET_XCODE_PROPERTY(MyTarget DEVELOPMENT_TEAM ${DEVELOPMENT_TEAM_ID}) 
SET_XCODE_PROPERTY(MyTarget PROVISIONING_PROFILE_SPECIFIER ${PROVISIONING_PROFILE_NAME}) 

CODESIGNIDENTITY - Đặt để nhận dạng dấu hiệu đang ưa thích của bạn, để xem danh sách: /usr/bin/env xcrun security find-identity -v -p codesigning

ví dụ. AAAAAAC9F10573BBBBBBBBBBBF25F7445951F3D8

Hoặc bạn chỉ có thể viết: "iPhone Distribution" nhưng tôi không chắc chắn là nó nguyên tắc chung :)

PROVISIONING_PROFILE_NAME - tên file mà không cần mở rộng ví dụ. Tên đầy đủ của tôi: Game_AppStore.mobileprovision vì vậy đây tôi viết Game_AppStore

Việc cấp phép cho hồ sơ previosly nên được thêm vào Xcode bộ nhớ cache vì vậy nó sẽ có sẵn trong ~/Library/MobileDevice/Provisioning\ Profiles More info Bạn chỉ có thể làm điều đó từ Xcode bằng cách nhấn Provisioning Profile: Name và chọn Import Profile... sau đó chọn nó. Hãy nhớ rằng khi bạn vô hiệu hóa nó, bạn cần xóa nó khỏi bộ nhớ cache.


SET_XCODE_PROPERTY là một vĩ mô:

# This little macro lets you set any XCode specific property 
macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE) 
    set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE}) 
endmacro (set_xcode_property) 
Các vấn đề liên quan