Using Jenkins as installed by the installer results in permissions issues when trying to build using the Xcode Plugin.

XMLWordPrintable

    • 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

      {NSFilePath=/var/root/Library/Developer/Xcode/DerivedData/MyApp-ankgjozmpmrcwuejjwykmeibjorp/Logs/Build/Cache.db, NSUnderlyingError=0x4024f3200 "The operation couldn’t be completed. Permission denied"}

      . 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.

            Assignee:
            Sami Tikka
            Reporter:
            Allen Fisher
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: