Vince Mansel
iOS Mobile Application Development
Show Menu

A Jenkins Automated Build & Test Environment for iOS App Development Part 4

11/05/2012   

This seems like inching along at the moment. The Xcode Code Signing error still plagues the process but at least it is manifiesting in a slightly different way. On the remote build machine, once the admin user’s keychain was copied to the jenkins user’s ~/Library/Keychains, the fail transformed to:

Code Sign error: A valid provisioning profile matching the application's
Identifier 'com.company.MyApp' could not be found

A few more spins did not improve the situation. Another thing I noticed is the remote build machine does not have a public key for the Developer profile in the keychain so I am not clear if that is an issue, but it is worth investigating. (Not required). Also, I will check if a “valid provisioning profile” should be specifically generated for the specific app that is targeted for build on the remote build machine. (Not Required)

UPDATE

It turns out the jenkins user on the remote build machine was not setup completely for xcode builds on the command line. The xcodebuild command looks for “a valid provisioning” profile in the directory ~/Library/MobileDevices/Provisioning Profiles. These are not kept in the project but instead are assigned on a per MAC OSX user basis. I created the additional directory structure for the Jenkins user and manually copied the <long string of numbers>.mobileprovision file from the admin user to the jenkins user. (See StackOverflow: 4744959)

Now, Jenkins builds the project up to a point where it fails in the compile phase because it cannot find a third party library. In the original source file, that library is manually included in the project but the git commit/push from the dev machine does include it in the repository. So the next step from here is automating the cloning of the third party project.

Leave a Reply

Your email address will not be published. Required fields are marked *

*