2012-03-27 1 views
1

저는 젠킨스 노예 (jenkins slave)에서 iOS 프로젝트를 만들고 이상한 결과를 얻고 있습니다. jenkins가 명령 줄에서 프로젝트를 빌드하려고해도 아무런 문제가 없습니다. 그러나 젠킨스는 신원이 키 체인에 두 번 이상 나옵니다. 신분은 중복되지 않습니다, 나는 그것을 여러 번 확인했습니다.젠킨스를 사용하여 키 체인 목록에서 중복 시스템 키 체인 없애기 StartupItem을 통해 mac osx 슬레이브로 시작했습니다.

나는 StartupItem에서 (-u는 PS가 올바른 사용자를 보여줍니다 sudo를 사용) 내 사용자로 젠킨스 슬레이브를 시작 해요. StartupItem에서 로그인 키 체인 시작 젠킨스에 액세스 할 수 없기 때문에 서명 인증서, 개인 키 및 WWDR 중간 인증서가 시스템 키 체인에 배포됩니다. 내가 인쇄하려면 명령 줄 단계를 설정 한

Missing certificates and keys in the keychain while using Jenkins/Hudson as Continuous Integration for iOS and Mac development

: SO와 구글 I 그것이 뭔가 관련이있을 수 있다는 것을 발견했습니다 통해 조금 파고 후

이 질문에 지적

+ security list-keychains 
    "/Library/Keychains/System.keychain" 
    "/Library/Keychains/applepushserviced.keychain" 
    "/Library/Keychains/System.keychain" 

하지만, xcodebuild는 "인증서 ID가 'XXXXXX가'번 키 체인에 비해 더 나타납니다"과 관련된 것으로 보인다 말을 계속 나를 위해 작동하지 않습니다 : 목록 - 열쇠 고리 출력과 나는 같은 받고 있어요 내가 가진대로 em.keychain은 키 체인 목록에 중복되었습니다.

나는 목록에 하나의 System.keychain을 떠날 수있는 방법을 찾을 수없는, 내가 시도 :

  • 보안 목록 - 열쇠 고리를 사용하여 첫 번째 스크립트를 실행 행운 오 승/목록을 변경하려면 -s
  • 모든 인증서 표시와 키를 청소하고 이전 사용자로부터 어떠한 혼란을 피하기 위해 노력 젠킨스 서비스를위한 전용 사용자 만들기 열쇠 고리
  • 를 재설정 다시
  • 을 시작하지만 것보다 뭔가하는 시스템 전체에 관련
  • LS 데이터베이스 재설정 중

누구로부터 단서가 있습니까?

나는 앞에서 언급 한 질문에 대한 의견을 남기려고했지만 나는 대답 할 수 없으므로 답할 수없고 답할 수 없다. 따라서이 질문을 통한 어떤 대답도 인정 될 것입니다. 미리 감사드립니다!


환경 :

  • OSX 라이온 10.7.3
  • 엑스 코드 4.3
  • 엑스 코드 명령 줄 도구 버전
  • 젠킨스를 업데이트했습니다. 1.456 및 최신 플러그인.

답변

2

현재 StartupItem을 사용하여 작업을 수행 할 수 없습니다 ... 저는 마침내 연결된 SO의 대답을 기반으로 LaunchDaemon을 사용하여 문제를 관리했습니다. 이것은 또한 사용자 목록에서 시스템 키 체인 키 체인 접근, 편집, 키 체인 목록을 열고 제거하여 고정 할 수 있습니다

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
     "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
     <key>GroupName</key> 
     <string>wheel</string> 
     <key>KeepAlive</key> 
     <true/> 
     <key>Label</key> 
     <string>org.jenkins-ci</string> 
     <key>ProgramArguments</key> 
     <array> 
       <string>/usr/bin/java</string> 
       <string>-jar</string> 
       <string>/Users/jenkins/work/slave.jar</string> 
       <string>-noCertificateCheck</string> 
       <string>-jnlpUrl</string> 
       <string>https://MySERVER/jenkins/computer/MacOSX/slave-agent.jnlp</string> 
     </array> 
     <key>RunAtLoad</key> 
     <true/> 
     <key>UserName</key> 
     <string>jenkins</string> 
     <key>SessionCreate</key> 
     <true/> 
</dict> 
</plist> 
1

그래서 launchchel에서 Jenkins를 LaunchDaemon으로 실행할 때 키 체인 목록이 표시됩니다.내가 launchctl을 시작할 때 사용할 사용자에게 어떤 키 체인 만 항상 표시되는지에 상관없이.

이 동작을 변경하기 위해 나는 launchd plist에서 Junchins를 LaunchAgent로 시작했습니다. 이 인스턴스에서 Jenkins를 사용하여 키 체인을 나열하면 약간 이상한 "System, applepushserviced, System"목록보다는 사용자 로그인 키 체인 및 시스템 키 체인이 표시됩니다.

+0

예, StartupItem에 대한 행운이 없었습니다.하지만 마침내 연결된 SO에서 LaunchDaemon을 사용하여 문제를 해결할 수있는 방법을 찾았습니다. 나는 그 질문에 대답해야만 결론을 내릴 수 있다고 생각합니다. "SessionCreate"속성을 추가하면 내 문제가 해결되고 로그인 할 필요가 없습니다. 시작시 작동합니다. –

0

: 이것은 내가 사용하고있어 LaunchDaemon입니다. 시스템에서 계속 사용할 수 있습니다.