2011-10-03 40 views
24

Tôi đã tạo trong XCode một ứng dụng iPhone điều hướng đơn giản. Các ứng dụng xây dựng và chạy đúng từ dưới XCode nhưng tôi không thể làm cho nó xây dựng từ dòng lệnh.Không thể xây dựng dự án XCode từ dòng lệnh nhưng có thể từ XCode

Từ ga tôi thực hiện:

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build 

nhưng tôi nhận được rằng lỗi:

=== BUILD NATIVE TARGET George OF PROJECT George WITH CONFIGURATION Debug === 
Check dependencies 
[BEROR]Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain 

** BUILD FAILED ** 


The following build commands failed: 
    Check dependencies 
(1 failure) 

Có điều gì sai trái với cách tôi cố gắng để xử lý nó?

+0

Bạn có gặp lỗi tương tự trong Xcode nếu bạn xây dựng cho iOSDevice không? – Saran

+0

Bạn có gặp lỗi tương tự trong Xcode không nếu bạn xây dựng cấu hình Debug? –

Trả lời

24

Ngoài unloc vua keychain, bạn cũng có thể chỉ định mã nhận diện (hoặc đặt nó trong mục tiêu của bạn). Phát triển certs có dạng 'iPhone Developer: Company Inc', phân phối certs như thế này 'iPhone Distribution: Company Inc'.

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='iPhone Developer: Company Inc' 
+0

Điều này làm việc cho tôi, tuy nhiên tôi cũng đã xóa bất kỳ chứng chỉ hết hạn nào vẫn còn treo trong móc khóa. – Pellet

4

Có thể nhất là keychain của bạn đã bị khóa. Hãy thử mở nó trước khi thực hiện kịch bản, bạn có thể làm điều đó từ dòng lệnh (bên phải trước khi xây dựng):

security unlock -p YourPasswordToKeychain ~/Library/Keychains/login.keychain

Note, Tôi đang sử dụng "đăng nhập" keychain mà có thể là khác nhau trong trường hợp của bạn

Ngoài ra, nếu điều đó không giúp, hãy thử loại bỏ tất cả các thông số khác và chỉ để lại smth như thế này:

xcodebuild -configuration Debug và trước sạch xcodebuild -configuration Debug clean

+0

Để có biện pháp tốt, tôi cũng đã làm: Keychain///Nhận thông tin/Tin tưởng/Khi ký mã, luôn tin tưởng. – AnneTheAgile

1

Tùy thuộc vào mục đích của kịch bản của bạn, nó cũng có thể là đủ để chỉ cần tắt ký mã trong kịch bản, mà bạn có thể làm bằng cách thiết lập CODE_SIGN_IDENTITY = ''

xcodebuild -project George.xcodeproj -alltargets -parallelizeTargets -configuration Debug build CODE_SIGN_IDENTITY='' 

Rõ ràng đó là không tốt nếu bạn đang cố gắng xây dựng cuối cùng từ một kịch bản, nhưng nó có thể tốt nếu bạn chỉ cố gắng xây dựng thử nghiệm để tích hợp liên tục (ví dụ: từ Jenkins, để đảm bảo rằng không ai phá vỡ bất kỳ thứ gì).

3

Bạn có thể xây dựng từ dòng lệnh một bản dựng được nhắm mục tiêu tại trình mô phỏng mà không cần ký sự cố.

này đã giải quyết được vấn đề ký cho tôi:

xcodebuild -sdk iphonesimulator 

Nguồn: xcodebuild Code Sign error: No matching codesigning identity found:

Đó là đặc biệt hữu ích nếu dòng lệnh xây dựng là có chỉ để tỉnh táo kiểm tra mã nguồn trong một thiết lập tích hợp liên tục.

1

Tôi đã có một lỗi lưu trữ tương tự nhưng không hoàn toàn giống như các bài bản gốc:

** ARCHIVE FAILED ** 


The following build commands failed: 
    Check dependencies 
(1 failure) 

Điều này hóa ra lại là một thiếu dịch vụ ứng dụng (trong trường hợp của tôi, dịch vụ HealthKit/quyền lợi), mà tôi đã bật trong ID ứng dụng phát triển của tôi chứ không phải ID ứng dụng sản xuất của tôi.

Bạn kích hoạt dịch vụ ở Trung tâm Thành viên của Apple: https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

3

Tôi đang sử dụng Thâm Quyến, nó cho thấy lỗi này quá.

Biến ra, điều đó xảy ra khi tôi cắm iPad nhưng không có trong hồ sơ cung cấp. Bằng cách đi qua --verbose để thâm quyến. nó cho thấy:

Check dependencies 
Code Sign error: No matching provisioning profiles found: None of the valid  provisioning profiles include the devices: 
XXXX’s iPad 
CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 8.3' 

tháo thiết bị, mọi thứ hoạt động tốt ...

0

này có thể được cố định trong XCode 8.0 bằng cách thay đổi từ "iOS phân phối" để "phát triển iOS" trong XCode. Nó không có vẻ như nó sẽ làm việc, nhưng nó vì một lý do nào đó.

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