Search code examples
iosxcodecode-signingxcodebuild

Cannot build project using xcodebuild, but can using Xcode.app


I am unable to make a build of my project using the xcodebuild command as it cannot find the singing identity for the development team. However, I can make a build using Xcode.app. This is the error I get with xcodebuild:

=== BUILD TARGET AppName OF PROJECT AppName WITH CONFIGURATION Release ===

Check dependencies
No signing certificate "iOS Development" found:  No "iOS Development" signing certificate matching team ID "1234567890" with a private key was found.

The project settings define that the code signing identify for release builds is set to "iPhone Distribution":

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
DEVELOPMENT_TEAM = 1234567890;

And I can see the signing certificate and key in my keychain for that identify:

keychain

The build command I am using is:

xcodebuild \
  -workspace "AppName.xcworkspace" \
  -scheme "AppName (Release)" \
  -destination generic/platform=iOS \
  build

The scheme defines to build using release configuration.


Solution

  • As it happens I was logged in to the build server using SSH and when you log in to a mac using SSH the keychain is not unlocked automatically, therefor even though a certificate did exist, xcodebuild could not access it.

    This question on Super User explains how you can unlock the keychain over ssh, or you can just use Terminal.app locally.