Nasz serwer kompilacji Jenkins CI jest skonfigurowany na komputerze Mac Mini z systemem OSX Lion (10.7.3) i mam problem z uzyskaniem go do podpisania kompilacji systemu iOS, aby można było go przesłać do do TestFlight.Nie można podpisać kompilacji systemu iOS z Jenkinsem
Proces działa jako zwykły użytkownik o nazwie jenkins i jest uruchamiany podczas uruchamiania przy użyciu launchd. (Urządzenie nie jest przystosowany do zewnętrznego świata, więc nie powinno być żadnych problemów z bezpieczeństwem to działa w ramach normalnego konta użytkownika).
Oto błąd na wyjściu z konsoli Jenkins:
[workspace] $ /usr/bin/xcodebuild -target iMobileStCloud -configuration Release clean build
=== CLEAN NATIVE TARGET MyApp OF PROJECT MyProject WITH CONFIGURATION Release ===
Check dependencies
[BEROR]Code Sign error: The identity 'iPhone Distribution' doesn't match any valid certificate/private key pair in the default keychain
Częścią problemu wydaje się, że tylko Brelok system dostępny jest, gdy proces rozpoczyna się od launchd w bagażniku. Dodałem skrypt do procesu budowania notować keychains:
[workspace] $ /bin/sh -xe /var/folders/1y/1q3st_ss58z9ffj4dwbkdw8r0000gt/T/hudson8514187812830984272.sh
+ /usr/bin/security list-keychains
"/Library/Keychains/System.keychain"
"/Library/Keychains/applepushserviced.keychain"
"/Library/Keychains/System.keychain"
+ /usr/bin/security find-identity
udało mi się znaleźć dwa obejścia, ale żaden z nich jest naprawdę wykonalne:
Jeśli zalogować się do serwera i ponownym uruchomieniu proces launchd za każdym razem komputer zostanie uruchomiony ponownie następnie Jenkins jest w stanie załadować pęk kluczy logowania i dostępu do podpisywania certyfikatów:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
Możemy dodać certyfikaty do kluczy systemowych, ale oznacza to, że nie możemy używać tego komputera do tworzenia naszych dystrybucji dystrybucji aplikacji. (Xcode nie lubi pęku kluczy systemu).
Czy ktoś inny znalazł inne możliwe rozwiązania? Czy jest coś jeszcze oprócz launchd, którego mogę używać do uruchamiania procesów podczas uruchamiania w systemie OSX?
Will Xcode wciąż mają problemy, jeżeli te same klucze są _both_ w login- i pęku kluczy systemu? –
Umieszczenie kluczy w obu miejscach to kolejne obejście, ale z doświadczenia wiem, że naprawdę może powodować problemy z programem dostępu do pęku kluczy. Wydaje się być zagubiony i nie usuwa kluczy, które istnieją w dwóch brelokach. –
Zobacz pytanie dotyczące wymiany stosów na dostępne rozwiązanie: http://stackoverflow.com/questions/6827874/missing-certificates-and-keys-in-the-keychain-while-using-jenkins-hudson-as-cont –