Bản dựng tự động của chúng tôi đang chạy trên Jenkins. Bản thân bản dựng đang chạy trên các nô lệ, với các nô lệ được thực thi thông qua SSH.
Tôi gặp lỗi:
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
Tôi đã thử mọi đề nghị tôi đã thấy cho đến nay trong các bài viết khác ở đây:
- Sử dụng bảo mật mở khóa-móc khóa ngay trước khi ký để mở khóa móc khóa.
- Di chuyển khóa ký ra vào móc khóa riêng của nó.
- Di chuyển khóa ký vào móc khóa đăng nhập.
- Di chuyển khóa ký vào móc khóa hệ thống.
- Cài đặt thủ công danh sách khóa cho chỉ móc khóa có chứa khóa.
Trong mọi trường hợp, tôi nhận được cùng một lỗi.
Trong nỗ lực chẩn đoán sự cố, tôi đã thử chạy lệnh "bảo mật mở khóa" trên thiết bị đầu cuối cục bộ của tôi và thấy rằng nó không thực sự mở khóa móc khóa - nếu tôi tìm trong Keychain Access, biểu tượng khóa vẫn ở đó. Đây là trường hợp cho dù tôi chuyển mật khẩu trên dòng lệnh hay liệu tôi có để nó nhắc tôi về nó không. Mở khóa cùng một móc khóa bằng GUI sẽ nhắc tôi nhập mật khẩu và sau đó mở khóa. Ngoài ra, nếu tôi chạy "khóa bảo mật", tôi sẽ thấy khóa phím ngay sau khi chạy lệnh. Điều này khiến tôi nghĩ rằng móc khóa mở khóa không thực sự hoạt động. Tôi trải nghiệm hành vi tương tự trên Lion (mà chúng tôi đang sử dụng cho các nô lệ xây dựng) và Mavericks (mà tôi đang phát triển.)
Tiếp theo, tôi đã thử thêm -v vào tất cả các lệnh bảo mật:
list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
"/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.
Từ điều này, dường như các móc khóa danh sách là những gì không hoạt động. Có lẽ không làm việc. : /
Có một câu hỏi tương tự ở đây . Giải pháp rất thú vị - đặt "SessionCreate" thành true trong launchctl. Nhưng tôi không xây dựng trên bản gốc - quá trình xây dựng của tôi được bắt đầu từ SSH trên máy xây dựng nô lệ. Có lẽ có một cách dòng lệnh để thực hiện launchctl đang làm gì khi bạn chạy "SessionCreate"?