Tôi đang cố gắng tự động hóa quy trình xây dựng ứng dụng iPhone với chứng chỉ cụ thể. Vì vậy, hãy tưởng tượng nếu người dùng khác nhau tải lên chứng chỉ của họ vào hệ thống và ngay lập tức nó có sẵn để ký mã. Tôi muốn làm điều này mà không có bất kỳ sự tương tác nào. Tôi cũng không muốn làm lộn xộn lên hệ thống hoặc đăng nhập keychain với các chứng chỉ người dùng khác nhau. Để kết thúc này, tôi có:Làm cách nào để thêm quyền ủy quyền ký mã ứng dụng từ móc khóa mới mà không có bất kỳ tương tác nào của con người
- đã tắt yêu cầu trong XCODE để yêu cầu ký mã cho bản dựng.
- phát triển một kịch bản ruby để xây dựng một ứng dụng thông qua các công cụ dòng lệnh xcodebuild
- tạo ra một kịch bản để tự động tạo ra một keychain mới cho một người sử dụng của hệ thống của tôi
- viết một kịch bản để mã hóa ký một ứng dụng iphone xây dựng.
Mọi thứ đều hoạt động, nhưng tôi cần phải nhấn thủ công khi chương trình mã vạch cố gắng thực hiện quyền ký tên. Keychains của tôi là tất cả mở khóa. Điều kỳ lạ là nó hoạt động nếu tôi làm cho keychain là keychain mặc định, nhưng đó không phải là khả năng mở rộng, tức là tôi chỉ có thể có một quá trình xây dựng ở bất kỳ thời điểm nào.
Khi tôi bằng tay nhấn luôn cho phép quá trình đó, tôi nhận được một mục trong bãi keychain của tôi trông như thế này:
entry 1:
authorizations (6): decrypt derive export_clear export_wrapped mac sign
don't-require-password
description: privateKey
applications (2):
0: /usr/bin/codesign (OK)
Vì vậy, tôi nghĩ rằng tôi cần phải sử dụng lệnh ủy quyền trong bảo mật để pre-autorize codesign cho các quyền đó. Trang bảo mật khá kém. Tôi không thể làm cho nó hoạt động bằng các lệnh như thế này:
bảo mật -v ủy quyền - dấu hiệu mới |/usr/bin/codesign [mã ký hiệu vars trỏ đến ứng dụng và một móc khóa cụ thể]
Có ai có ý tưởng nào không?
mở khóa bảo mật -p –
Tôi đã mở khóa móc khóa tất cả cùng. Những gì tôi đã phát hiện ra là nếu tôi đi vào xcode đầu tiên và làm một bản dựng, tất cả các bản dựng sau đó dường như hoạt động tốt ngay cả trên các móc khóa khác. Vì vậy, bây giờ tôi: 1. tạo một keychain mới (Tôi có nhiều người dùng để quá khó quản lý mọi thứ trong một keychain) 2. đặt làm khóa mặc định 3. mở khóa. 4. Xây dựng thông qua xây dựng xcode với ký mã và bộ chứng chỉ thông qua tệp xcconfig. Đây không phải là giải pháp tuyệt vời b/c là nỗi đau khi thiết lập máy chủ mới. Tôi sẽ khám phá các thực thi-với-priv nhiều hơn, nhưng tôi thấy tài liệu lệnh bảo mật khủng khiếp. – cmos