2017-01-03 19 views
7

Tôi nhận được lỗi bên dưới khi cố gắng tạo ứng dụng iOS của mình. Lỗi này chỉ xảy ra khi xây dựng cho cấu hình Phát hành. Ngoài ra, tôi đang sử dụng CocoaPods cho các phụ thuộc bên thứ ba của tôi và các bản dựng này đang chạy trên Jenkins thông qua SSH.lỗi xcodebuild - API SecKey trả lại: -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 

tôi đã cố gắng mở khóa keychain trên máy chủ xây dựng để đảm bảo không có một khối UI cho phép keychain, nhưng vấn đề này vẫn còn dai dẳng ...

Bất cứ ý tưởng tại sao điều này đang xảy ra và cách tôi có thể khắc phục vấn đề này?

+0

Bạn đã cố gắng dọn dẹp thư mục xây dựng của dự án? – Aakash

+0

Có, tôi đã xóa mọi thứ nhiều lần. – Jake

+0

Đi qua liên kết này: https://forums.developer.apple.com/thread/64101 – Aakash

Trả lời

5

Đây là vấn đề truy cập bằng keychain. Giải pháp là Here

Với mã trong liên kết mà bạn có thể cố gắng thực hiện điều đó trong vỏ trên build cấu hình của dự án

0

Chỉ cần khởi động lại máy tính của tôi. Va no đa hoạt động.

0

Bạn có thể sử dụng lệnh bảo mật để tra cứu mã lỗi. Trong trường hợp này, thông báo cho biết "Tương tác của người dùng không được phép". Điều này là điển hình nếu bạn đang cố gắng ký ứng dụng của mình thông qua SSH, tập lệnh thông qua Jenkins.

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

Bạn cần phải làm một lệnh an ninh để cho phép codesigning của ứng dụng của bạn thông qua một vỏ tương tác phi:

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

Đây là một "hoàn thành" Jenkins/SSH kịch bản thân thiện với ký ứng dụng của bạn:

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 

Gửi ra Bochun Bai để dành 3 tuần với sự hỗ trợ của Apple để tìm giải pháp cho -25308 và đăng lên https://sinofool.net/blog/archives/322

Các vấn đề liên quan