2011-10-03 115 views
24

我已經在XCode中創建了一個簡單的基於導航的iPhone應用程序。該應用程序構建並從XCode下正確運行,但我無法從命令行構建它。無法從命令行構建XCode項目,但可以從XCode

從終端我執行:

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

,但我得到這個錯誤:

=== 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) 

是不是有什麼毛病我儘量處理它的方式嗎?

+0

如果您爲iOS設備構建,您是否在Xcode中獲得相同的錯誤? – Saran

+0

如果您爲配置調試構建,您是否在Xcode中獲得相同的錯誤? –

回答

24

除了unloc王鑰匙扣王,你也可以指定密碼標識(或設置你的目標)。開發證書採用「iPhone開發者:公司公司」的形式,這種「iPhone分銷:公司公司」的發行證書。

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

這對我有用,但是我也刪除了任何過期的證書,這些證書仍然在鑰匙串中懸掛。 – Pellet

4

很可能您的鑰匙串已鎖定。嘗試執行腳本前解鎖它,你可以(建設前右)在命令行做到這一點:

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

注意,我使用「登錄」鑰匙串這可能是你的情況

不同

而且,如果沒有幫助,嘗試刪除所有其他參數和剛剛離開水木清華這樣的:

xcodebuild -configuration Debug和清潔事先xcodebuild -configuration Debug clean

+0

爲了好的措施,我也做了:鑰匙串/ <鑰匙串名稱,例如登錄>/<我的證書> /獲取信息/信任/代碼簽名時,始終信任。 – AnneTheAgile

1

根據您的腳本的目的,也可能是足以只是關閉代碼簽名的腳本,您可以通過設置CODE_SIGN_IDENTITY =「」

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

顯然,這沒有做如果你正在嘗試從腳本進行最終構建,那麼這很好,但如果你只是試圖進行持續集成的測試構建(例如,來自詹金斯,以確保沒有人破壞任何東西),可能會很好。

1

我有類似的但不完全一樣的原職的歸檔錯誤:

** ARCHIVE FAILED ** 


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

事實證明,這是一個缺少應用服務(在我的情況下,HealthKit服務/授權),我已在我的開發應用程序ID中啓用,但未啓用我的生產應用程序ID

你在蘋果的會員中心啓用服務:https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

3

我使用的是深圳,它表明這個錯誤了。

原來,當我插入iPad但它不在提供配置文件中時發生。通過--verbose到深圳。它表明:

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' 

拔出設備,一切都運行得很好......

0

這可以通過在XCode中的「iOS的分配」到「iOS開發」改變固定在了XCode 8.0。它似乎不應該工作,但它確實出於某種原因。