iosjenkinsxamarinxbuild

iOS Code Signing Fails Only For Jenkins


I'm trying to build a Xamarin Touch project from a Jenkins build it fails at the code signing phase.

My certificates and keys are in the System keychain so should be accessible to Jenkins. I have no code signing issues when I build the project:

The only time the code signing issue is seen is when the Jenkins build itself.

The error is "User interaction is not allowed", I'm at a loss as to explain what is going wrong for the Jenkins build when everything is working as the Jenkins user when I run the same command from a shell.


Solution

  • So it turns out my problem was that my code signing keys were still in the login keychain as well as the system keychain.

    I'm guessing this meant the build saw the keys in the login keychain first but then failed because that wasn't unlocked.

    Once I deleted them from the login keychain, so they were only in the system keychain, it started working.

    I'm still not sure why this was only a problem from within Jenkins as everything was working fine using a shell logged in as Jenkins.