2011-01-21 35 views
14

Tôi đang cố gắng thiết lập các bản dựng/tích hợp liên tục cho một ứng dụng iPhone ổn định.Thêm mã vào khóa riêng ACL không có Keychain

tôi có:

  • Một chuyên dụng Mac Mini.
  • Một tài khoản người dùng có tên "xây dựng"
  • Hudson thiết lập là một LaunchAgent cho xây dựng, bằng cách thả một plist trong/Users/xây dựng/Library/LaunchAgents
    • Cố gắng như một LaunchDaemon toàn hệ thống chạy như hudson , nhưng sau đó không có quyền truy cập vào keychain đăng nhập của người dùng. Câu chuyện dài, đầy đau khổ.
  • Hệ thống được đặt tự động đăng nhập "xây dựng" khi khởi động để Hudson bắt đầu chạy.

Vấn đề lớn là mã hóa và Keychain.

Chúng tôi tạo mã thay mặt cho danh tính nhà phát triển của khách hàng của chúng tôi, vì vậy chúng tôi có một số nhận dạng nhà phát triển và chúng tôi sẽ bổ sung thêm.

Tôi muốn đặt Mini trong phòng tối và không bao giờ nhìn vào nó, nhưng lần đầu tiên bạn xây dựng với bản sắc nhà phát triển, hộp thoại GUI bật lên hỏi bạn có muốn luôn cho phép codesign truy cập danh tính nhà phát triển không .

Giả sử bạn làm, hộp thoại đó sửa đổi danh sách điều khiển truy cập keychain (ACL) để cho phép mã hóa được cho phép.

Bạn có thể xem mục này bằng cách mở Keychain Access, mở rộng chứng chỉ, chọn khóa riêng, bấm chuột phải, chọn Nhận thông tin, sau đó chuyển sang tab Kiểm soát truy cập. Khóa "trinh" sẽ chỉ có Keychain Access trong danh sách ứng dụng "luôn cho phép" của nó. Một trong những bạn đã sử dụng và xác nhận trong hộp thoại sẽ có codesign là tốt.

Hộp này cung cấp cách thêm ứng dụng, ngoại trừ bạn có bộ chọn tệp công cụ tìm kiếm tiêu chuẩn, ẩn các thư mục Unix. Không có cách nào để điều hướng đến/usr/bin/codesign. Vì vậy, nó không thể thêm bằng tay!

Có ai biết về cách này không?

I'm aware of one method bằng cách sử dụng nút chuyển -Trong "nhập bảo mật" nhưng sau đó bạn phải chỉ định ACL khi bạn nhập khóa ở vị trí đầu tiên, vì vậy bất kỳ khóa nào được thêm vào giao diện Keychain sẽ phải được gửi và nhập lại. Không chính xác lắm.

+0

bạn đã bao giờ tìm thấy giải pháp cho điều này chưa? Có cùng một vấn đề. – scootklein

+0

Trong safari, "vnc: //miniName.local" là một cách, bạn có thể sử dụng máy từ xa một lần cho mỗi dự án. Scootklein của giải pháp với applescript trông giống như nó sẽ làm việc. –

+0

Khi bạn nói "Không có cách nào để điều hướng đến/usr/bin/codesign", ý của bạn là gì?/usr/bin/codesign chỉ là một chương trình, nếu bạn cần mở/usr/bin trong công cụ tìm kiếm "mở/usr/bin" – Daniel

Trả lời

18

Thông thường "sạch" phiên bản của hệ thống tập tin mà Keychain của Get Info quà thoại để bạn sẽ không cho phép bạn truy cập vào thư mục/usr/bin ẩn, nhưng tôi tìm thấy một khoảng cách này.

  1. Nhận cửa sổ Trình tìm kiếm thông thường để hiển thị tất cả các tệp. Nếu bạn không biết làm thế nào để làm điều này, check out this article.
  2. Trong cửa sổ Trình tìm kiếm thông thường, điều hướng đến/usr/bin
  3. Kéo thùng đến khu vực Địa điểm trong thanh bên. Bây giờ bin là một phím tắt bạn có thể truy cập từ mọi nơi.
  4. Từ trong cửa sổ Nhận thông tin -> Kiểm soát truy cập của Keychain, hãy nhấp vào nút "+" để mở hộp thoại tìm ứng dụng.
  5. Nhấp vào thùng hiện nằm bên dưới Địa điểm trên thanh bên này.
  6. Điều hướng đến và chọn mã hiệu.
  7. Nhấp vào nút Lưu thay đổi.
+0

Thông thường tôi sẽ không muốn đánh dấu câu trả lời của chính mình khi được chấp nhận khi có những câu trả lời hợp lý và tốt khác. Lý do duy nhất tôi làm như vậy là giải pháp mà tôi quản lý để tìm kiếm có thể được thực hiện trước thời hạn, trong khi câu trả lời của scootklein có nhiều phản ứng hơn. –

4

Tôi đã tìm thấy giải pháp bằng cách thực hiện một bản ghi "Nhấp" nút "Luôn cho phép" sau khi không có may mắn với bảo mật hoặc certtool để thêm đặc quyền ACL.

#!/usr/bin/osascript 
tell application "System Events" 
    tell window 1 of process "SecurityAgent" 
    click button "Always Allow" of group 1 
    end tell 
end tell 
3

Ok điều này đã cho tôi gần nửa ngày để tìm ra nhưng bây giờ tôi có nó hoạt động. Tôi đã theo dõi điều này article.

Bài viết hiển thị thêm cert như thế này với tùy chọn -A nhưng điều này không hiệu quả đối với tôi.

security import "ADistribution.p12" -k appledev -f pkcs12 -A -P "" 

Câu hỏi này đề cập đến tùy chọn -T đã làm việc cho tôi.

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign 
5

Chỉ cần đăng ký để nói THANK bạn rất nhiều, David Boike. Giải pháp tuyệt vời đã giúp tôi rất nhiều. Nhưng có một cách tốt hơn để làm điều này.

Open File Dialog press 'Cmd' + 'Shift' + '.' 

Kết hợp đó sẽ chuyển đổi chế độ hiển thị của các mục ẩn trên hệ thống tệp. Nếu kết hợp không hiệu quả, hãy thử thay đổi chế độ bản trình bày thành 'danh sách' hoặc 'lưới' và thử lại.

Xin cảm ơn và chúc bạn may mắn!

Các vấn đề liên quan