자동화 된 빌드는 Jenkins에서 실행됩니다. 빌드 자체는 슬레이브에서 실행되며 슬레이브는 SSH를 통해 실행됩니다.
오류가 발생합니다.
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
나는 지금까지 다른 게시물에서 본 모든 제안을 시도했습니다.
- 서명하기 직전에 보안 잠금 해제 키 체인을 사용하여 키 체인의 잠금을 해제합니다.
- 서명 키를 자체 키 체인으로 이동
- 서명 키를 로그인 키 체인으로 이동
- 서명 키를 시스템 키 체인으로 이동
- 키가 포함 된 키 체인으로 만 목록 키 체인을 수동으로 설정
모든 경우에 동일한 오류가 발생합니다.
문제를 진단하기 위해 로컬 터미널에서 "security unlock-keychain"명령을 실행하려고 시도했지만 실제로 키 체인을 잠금 해제하지 않는 것으로 나타났습니다. 키 체인 액세스를 보면 잠금 기호가 여전히 있습니다. 이것은 명령 줄에 암호를 전달하거나 암호를 묻는 메시지를 표시하는지 여부입니다. GUI를 사용하여 동일한 키 체인을 잠금 해제하면 암호를 묻는 메시지가 표시되고 잠금이 해제됩니다. 내가 실행하는 경우 또한, 나는, "보안 잠금 - 키 체인" 할 즉시 명령을 실행 한 후 키 잠금을 참조하십시오. 이렇게하면 잠금 해제 키 체인이 실제로 작동하지 않는다고 생각합니다. Lion (빌드 슬레이브에 사용)과 Mavericks (개발중인)에서 동일한 동작을 경험합니다.
다음으로 모든 보안 명령에 -v를 추가해 보았습니다.
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.
이것으로부터,리스트 키 체인이 작동하지 않는 것 같습니다. 어쩌면 작동하지 않을 수도 있습니다. : /
가 여기에 비슷한 질문이 . 해결책은 흥미 롭습니다. launchctl에서 "SessionCreate"를 true로 설정하십시오. 그러나 나는 마스터를 기반으로하지 않습니다. 내 빌드 프로세스는 슬레이브 빌드 머신의 SSH에서 시작됩니다. "SessionCreate"를 실행할 때 launchctl이 수행하는 작업을 수행하는 명령 줄 방법이 있습니까?