Xcode Command /usr/bin/codesign failed with exit code 1 : errSecInternalComponent

IosXcodeCertificateProvisioning Profile

Ios Problem Overview


I am trying to add new provisioning profile to my Xcode, to test an app on the device. Here are the steps I followed:

  1. Deleted all certificates and provisioning profiles

  2. Create/Add IOS Dev Certificate

  3. Add My IOS Device Online

  4. Create IOS Provisioning Profile

  5. Add IOS Provisioning Profile

  6. Clean App

  7. Build Then Run App

  8. Set Codesigning nd Provisioning Profile In Build Settings

  9. Lots of Googling > to no successes

Here is the error I get:

CSSM_SignData returned: 800108E6
/Users/alexpelletier/Library/Developer/Xcode/DerivedData/MyExpense-efnqzvoqwngzcmazaotyalepiice/Build/Products/Debug-iphoneos/MyExpense.app:     errSecInternalComponent
Command /usr/bin/codesign failed with exit code 1

Ios Solutions


Solution 1 - Ios

Open Keychain Access, then in the File menu select Lock All Keychains.

https://i.stack.imgur.com/dFPSl.png" width="399" />

Then go back to Xcode and clean and rebuild. It will prompt you for your password again to unlock the keychain.

https://i.stack.imgur.com/s4czg.png" width="529" />

After this, assuming you have no other compile issues, it will succeed!

https://i.stack.imgur.com/NOlbD.png" width="301" />

Solution 2 - Ios

This occurs when the login keychain is locked. To unlock the login keychain, run:

security unlock-keychain login.keychain

If your keychain is password-protected, specify the password using the -p option:

security unlock-keychain -p PASSWORD login.keychain

If you're using a continuous integration system, you'll likely want to inject the password via an environment variable/token, which most CI systems offer in their settings.

The error code in question is described in Apple's docs as an internal error, so it's entirely possible this occurs in other cases too.

Solution 3 - Ios

It seems like a bug in the code signing mechanism, restarting your mac should solve the problem

Solution 4 - Ios

Had the same issue on High Sierra/Xcode 9.4.1, all attempts to sign ended in errSecInternalComponent

  • Go to Keychain Access
  • Go to the login keychain
  • Select the category "My Certificates"
  • Find the certificate you're signing with and expand it to see the key.
  • Double click the key
  • Go to the "Access control" tab.
  • Update key access control to "Allow all applications to access this item"

Alternatively:

run codesign command on mac terminal and "Always allow" /usr/bin/codesign access to key

  1. If trying to sign from ssh/CI you also need to run

     security unlock-keychain login.keychain
    

before trying to sign app bundle

Solution 5 - Ios

I have met the same problem, I restart my macOS,and it works.

In China,we have a saying between developers:

> Little problems,just restart.Big problems,should reinstall.

Sometimes,the above saying will greatly help you!

Solution 6 - Ios

In case it helps someone else, I encountered an errSecInternalComponent error with codesign because I was running it over an ssh session to my macOS machine. Running the same command from a terminal window on the macOS machine itself worked.

Presumably this is because codesign needs access to the private key from the login keychain.

Running security unlock-keychain login.keychain (as explained by cbracken's answer) from the same session also should work.

Solution 7 - Ios

As pointed out by @Equilibrium in one of the comments, if you are in command line env. like Jenkins(my case), you might need to pass the password to the security-unlock command mentioned in the solutions.

So instead of using,

security unlock-keychain login.keychain

use:

security unlock-keychain -p <login-keychain-password> <path-to-login-keychain>

where path-to-login keychain can be $HOME/Library/Keychains/login.keychain(my case) or simply login.keychain

Solution 8 - Ios

Nothing work for me from the above Solution.

Fallowing Solution Work for me...

  1. First Open Keychain Access
  2. Then Select Login And click Certificates
  3. Double click Apple Worldwide Developer Relations Certificate Authority Open trust section, and set to "Use System Defaults" from "Always Trust"
  4. Clean the build folder and run

Solution 9 - Ios

I ran security unlock-keychain login.keychain and my login password didn't work. So I rebooted, and then just ran Xcode again and it worked. Running the command works as well. Strange issue.

Solution 10 - Ios

for anyone that encountered this issue from jenkins and ssh:

high possibility that you have not granted access to the private key in keychain, i tried but not sure why all of these are not working:

  1. security import .p12 file with -A or -T /usr/bin/codesign
  2. security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k #{password} #{keychainPath}
  3. change all provisioning profile to [UUID].mobileprovision and copy them to '~/Library/MobileDevice/Provisioning\ Profiles' on jenkins server
  4. clean derived data and reboot jenkins server
  5. make sure default keychain is login keychain and unlocked it.

finally resolved by:

1.ssh [user]@[jenkinsServerIP] -L 5900:localhost:5900, log into jenkins server

2.open 'vnc://localhost'

this will launch a remote screen, if your jenkins server allow this...

then open keychain.app to grant access of /usr/bin/codesign to the private key

good luck

Solution 11 - Ios

If trying to sign from ssh run command:

security unlock-keychain login.keychain

before trying to sign app bundle

or from UI

Update key access control to "Allow all applications to access this item"

Thx to @Equilibrium and @Jon McClung

Solution 12 - Ios

I had the same issue Found out the problem is with code signing the app.

Opened the developer account and accepted the updated agreement and it worked.  

enter image description here

Solution 13 - Ios

Right clicking on the private key associated with the codesigning cert in the keychain, and then clicking on 'allow all applications' instead of relying on a prompt fixed it for me, since the build was happening via ssh.

Solution 14 - Ios

I had to:

  1. delete the certificate associated to the project

  2. Back to the Xcode and revoke the app certificate

  3. The Xcode require a new certificate

  4. Lock all KeyChain

  5. Clean the project

  6. Rebuild

That's it. Hope it helps to anyone.

Solution 15 - Ios

Just try it once using mac terminal but not from ssh session

security unlock-keychain login.keychain

And choose always allow in the prompted dialog. And then you could xcodebuild in the remote session.

Solution 16 - Ios

The above methods are useless to me.

I resoled it by:

  1. Open keychain access.
  2. Click Login Menu.
  3. Remove all personal certificates.
  4. Clean the project.
  5. Rebuild.

That's it. Hope it helps to anyone.

Solution 17 - Ios

In my case BUCK was trying to sign the IPA for development, but there were not any development certificates installed. Changing the build config to release (this is what I needed - to build for iTunes) fixed it for me.

Solution 18 - Ios

In my case, this solved.

xcode -> preferences -> accounts -> select the account -> manage certificate -> (+) in bottom left -> Apple development

Ref: https://stackoverflow.com/a/62646138/234110

Solution 19 - Ios

Just wanted to callout if someone face similar issue what I did. In my case my apple dev and distribution certificates, keys and provisioning profiles where upto date. My iOS code build was working in user mode without any issue however it does not work due to code sign issue when the code build runs with root privileges i.e. % sudo or invoking the Xcode using sudo through command line.

So, I copied the corresponding working certificates and keys the login to the system location in the keychain tool. Then it started working without any code sign issue.

Similarly, we can export the required certificates, keys for build from the working machine and import those into non working machine's keychain tool may solve the issue.

Solution 20 - Ios

If you get errSecInternalComponent after

Warning: unable to build chain to self-signed root for signer …

, you might have the wrong Apple World Wide Developer Relations root certificate in your keychain. In this case, make sure that you import the WWDR certificate with which your developer certificate was signed. I imported the WWDR certificate expiring in 2023 and two hours later finally realized that it didn't work because my developer certificate had been signed with the WWDR certificate expiring in 2030 (AppleWWDRCAG3.cer). Download page: https://www.apple.com/certificateauthority/

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAlex PelletierView Question on Stackoverflow
Solution 1 - IosMohit ManhasView Answer on Stackoverflow
Solution 2 - IoscbrackenView Answer on Stackoverflow
Solution 3 - IossigabrtView Answer on Stackoverflow
Solution 4 - IosEquilibriumView Answer on Stackoverflow
Solution 5 - IosifeegooView Answer on Stackoverflow
Solution 6 - IosjamesdlinView Answer on Stackoverflow
Solution 7 - IosMohit TaterView Answer on Stackoverflow
Solution 8 - IosMRazaImtiazView Answer on Stackoverflow
Solution 9 - Iossunapi386View Answer on Stackoverflow
Solution 10 - IosXi ZhangView Answer on Stackoverflow
Solution 11 - IosStas SView Answer on Stackoverflow
Solution 12 - IossahiljainView Answer on Stackoverflow
Solution 13 - IosPelletView Answer on Stackoverflow
Solution 14 - IosAndres FelipeView Answer on Stackoverflow
Solution 15 - IosFelixView Answer on Stackoverflow
Solution 16 - Iosyerwoo_gmailView Answer on Stackoverflow
Solution 17 - IosRAM237View Answer on Stackoverflow
Solution 18 - IosAnand RockzzView Answer on Stackoverflow
Solution 19 - IosDeepika MGView Answer on Stackoverflow
Solution 20 - IosRichard MöhnView Answer on Stackoverflow