2017-01-03 13 views
7

Otrzymuję poniższy błąd podczas próby zbudowania aplikacji na iOS. Ten błąd występuje tylko podczas budowania konfiguracji Release. Używam również CocoaPods dla moich zależności od innych firm, a te kompilacje działają na Jenkinsach przez SSH.Błąd xcodebuild - SecKey API wrócił: -25308

SecKey API returned: -25308, (null)/Users/iosbuilder/Library/Developer/Xcode/DerivedData/*/Build/Intermediates/ArchiveIntermediates/Production/InstallationBuildProductsLocation/Applications/*.app/Frameworks/AFNetworking.framework: 
unknown error -1=ffffffffffffffff 
Command /bin/sh failed with exit code 1 

Próbowałem odblokowywanie pęku kluczy na serwerze kompilacji, aby upewnić się, że nie jest blok UI dla uprawnień pęk kluczy, ale problem nadal nie ustąpi ...

Każdy pomysł, dlaczego to ma miejsce i jak mogę rozwiązać problem?

+0

Czy próbowałeś wyczyścić folder budowy projektu? – Aakash

+0

Tak, wyczyściłem wszystko wiele razy. – Jake

+0

Przejdź przez ten link: https://forums.developer.apple.com/thread/64101 – Aakash

Odpowiedz

5

Jest to problem dostępu do pęku kluczy. Rozwiązaniem jest Here

Z kodu w linku można spróbować wykonać to w skorupkach na kompilacji config projektu

0

Wystarczy wznowiona moją maszynę. I zadziałało.

0

Możesz użyć polecenia bezpieczeństwa, aby wyszukać kod błędu. W tym przypadku jest napisane "Interakcja z użytkownikiem jest niedozwolona". Jest to typowe, jeśli próbujesz podpisać swoją aplikację przez SSH, skrypt przez Jenkinsa.

security error -25308 
Error: 0xFFFF9D24 -25308 User interaction is not allowed. 

Trzeba wykonać polecenie zabezpieczeń w celu umożliwienia codeSigning swojej aplikacji poprzez non interaktywnej powłoki:

security set-key-partition-list -S apple: -k <Password> -D <Identity> -t private <your.keychain> 

o to "kompletna" Jenkins/SSH przyjazny skrypt do podpisywania aplikacji:

MY_KEYCHAIN="temp.keychain" 
MY_KEYCHAIN_PASSWORD="secret" 
CERT="certificate.p12" 
CERT_PASSWORD="certificate secret" 

security create-keychain -p "$MY_KEYCHAIN_PASSWORD" "$MY_KEYCHAIN" # Create temp keychain 
security list-keychains -d user -s "$MY_KEYCHAIN" $(security list-keychains -d user | sed s/\"//g) # Append temp keychain to the user domain 
security set-keychain-settings "$MY_KEYCHAIN" # Remove relock timeout 
security unlock-keychain -p "$MY_KEYCHAIN_PASSWORD" "$MY_KEYCHAIN" # Unlock keychain 
security import $CERT -k "$MY_KEYCHAIN" -P "$CERT_PASSWORD" -T "/usr/bin/codesign" # Add certificate to keychain 
CERT_IDENTITY=$(security find-identity -v -p codesigning "$MY_KEYCHAIN" | head -1 | grep '"' | sed -e 's/[^"]*"//' -e 's/".*//') # Programmatically derive the identity 
CERT_UUID=$(security find-identity -v -p codesigning "$MY_KEYCHAIN" | head -1 | grep '"' | awk '{print $2}') # Handy to have UUID (just in case) 
security set-key-partition-list -S apple-tool:,apple: -s -k $MY_KEYCHAIN_PASSWORD -D "$CERT_IDENTITY" -t private $MY_KEYCHAIN # Enable codesigning from a non user interactive shell 
### INSERT BUILD COMMANDS HERE ### 
security delete-keychain "$MY_KEYCHAIN" # Delete temporary keychain 

okrzyk Bochun Bai o spędzeniu 3 tygodnie wsparcia firmy Apple w celu znalezienia rozwiązania problemu -25308 i umieszczenie go na https://sinofool.net/blog/archives/322

Powiązane problemy