-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major
-
Component/s: xcode-plugin
-
None
-
Environment:Mac OSX 10.7, Jenkins 1.446, XCode PI 1.2
The Jenkins Mac OS installer adds Jenkins as a system daemon, which makes it difficult unlock a keychain and sign an iOS application.
I can build just fine from Xcode itself and I can run all the commands from the command line that Jenkins generates. However, when I try and allow Jenkins to build it,
I get several errors: Allowing Jenkins to unlock the keychain:
Started by user ha:AAAAjx+LCAAAAAAAAABb85aBtbiIQSajNKU4P08vOT+vOD8nVc+jsiC1KCczL9svvyT1dMUiOWdZ/mImBiZPBrac1Lz0kgwfBubSopwSBiGfrMSyRP2cxLx0/eCSosy8dOuKIgYpNOOcITTIMAYIYGRiYKgoADI4Sxj49UuLU4v0E/Py8ypz80uLARtlXCuUAAAAanonymous Using master perforce client: AF_MobileProject_CI <perforce stuff snipped>
Working directory is /Users/allen/Projects/Jenkins/MobileProject/Cocoa_Dev/MyAppDev/MyApp/MACPROJ.
[MACPROJ] $ /usr/bin/xcodebuild -version Xcode 4.2.1 Build version 4D502 <version stuff snipped>
Cleaning up test-reports : /Users/allen/Projects/Jenkins/MobileProject/Cocoa_Dev/MyAppDev/MyApp/MACPROJ/test-reports
[MACPROJ] $ /usr/bin/security list-keychains -s /Library/Keychains/System.keychain
[MACPROJ] $ /usr/bin/security login-keychain -d user -s /Library/Keychains/System.keychain
[MACPROJ] $ /usr/bin/security unlock-keychain -p ******** /Library/Keychains/System.keychain
security: SecKeychainUnlock /Library/Keychains/System.keychain: The user name or passphrase you entered is not correct. FATAL: Unable to unlock the keychain. ha:AAAAWB+LCAAAAAAAAABb85aBtbiIQSmjNKU4P08vOT+vOD8nVc8DzHWtSE4tKMnMz/PLL0ldFVf2c+b/lb5MDAwVRQxSaBqcITRIIQMEMIIUFgAAckCEiWAAAAA=Build step 'XCode' marked build as failure
Finished: FAILURE
In an attempt to get it building, I turned off unlocking the keychain to let it prompt me:
<beginning stuff snipped>
Cleaning up test-reports : /Users/allen/Projects/Jenkins/FinMo/Cocoa_Dev/MyAppDev/MyApp/MACPROJ/test-reports
Going to invoke xcodebuild:target: MyAppGo, sdk: DEFAULT, project: /Users/allen/Projects/Jenkins/MyApp/Cocoa_Dev/MyAppDev/MyApp/MACPROJ/MyApp.xcodeproj, configuration: , clean: NO, symRoot: DEFAULT, configurationBuildDir: /Users/allen/Desktop/
[MACPROJ] $ /usr/bin/xcodebuild -target MyAppGo -project /Users/allen/Projects/Jenkins/MyApp/Cocoa_Dev/MyAppDev/MyApp/MACPROJ/MyApp.xcodeproj -configuration build CONFIGURATION_BUILD_DIR=/Users/allen/Desktop/
Build settings from command line: CONFIGURATION_BUILD_DIR = /Users/allen/Desktop/
2012-01-19 13:39:53.670 xcodebuild[72650:a0b] [MT] IDELogStore: Failed to open Build log store: Error Domain=NSCocoaErrorDomain Code=257 "The file “Cache.db” couldn’t be opened because you don’t have permission to view it." UserInfo=0x4024f3180
. User info:
{ NSFilePath = "/var/root/Library/Developer/Xcode/DerivedData/MyApp-ankgjozmpmrcwuejjwykmeibjorp/Logs/Build/Cache.db"; NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=13 \"The operation couldn\U2019t be completed. Permission denied\""; }. — xcodebuild: WARNING: Configuration is not in the project. Building default configuration.
=== BUILD NATIVE TARGET MyAppGo OF PROJECT MyApp WITH THE DEFAULT CONFIGURATION (Debug) ===
Check dependencies
[BEROR]Code Sign error: a valid provisioning profile matching the application's Identifier 'com.mycompany.MyApp' could not be found
-
- BUILD FAILED **
The following build commands failed: Check dependencies
(1 failure) Build step 'XCode' marked build as failure
Finished: FAILURE The provisioning file and all the other items the project need are available.
To work around it, if I run the Jenkins.war as me (or as sudo and use the system keychain), the build works correctly.