|
I have a multi-configuration build set up using the Xcode plugin with a user-defined axis for build targets in the Xcode project, as well as the slave axis to force the builds to execute on my OSX build slave (and not anywhere else). The first build step in this job is to import the developer profile using the "Import Developer Profile" function. When I set it up this way, the first time I execute the build, the child jobs launch and complete successfully. The second time I try to run this build, however, all the child jobs fail at the "import developer profile" step. The console log for one of the child builds shows the following:
$ security list-keychains
$ security create-keychain -p ******** jenkins-iOS-Client-app=TargetA,label=osx
security: SecKeychainCreate jenkins-iOS-Client-app=TargetA,label=osx: A keychain with the same name already exists.
ERROR: Failed to create a keychain
Finished: FAILURE
The other child jobs show the same errors for their respective build targets.
If I manually run the 'security list-keychains' on the build slave as the build user (jenkins), I don't see any keychains listed:
$ sudo -u jenkins security list-keychains
Password:
"/Library/Keychains/System.keychain"
I'm guessing this is why the Xcode plugin tries to re-create the keychain.
This is a major issue for us as, without us being able to use multi-configuration jobs with Xcode, we have to create a new job for every individual build target, which is unscalable for us.
|