Build fails on iOS, probably due to newly enabled 2FA

Hello Expo,

I’ve recently enabled 2FA for my Apple ID, which now breaks my build:ios commands. I’ve previously let Expo handle all of the certs, but now the builds fail under the ‘Building and signing IPA’ step with the following error:

building and signing IPA
saved provisioning profile to temporary path
provisioning profile copied to home directory
done retrieving provisioning profile data
checking if teamID is present in keychain and that certificate is valid...
removed provisioning profile from the home directory
Error: codesign ident not present in find-identity: [the ID]
Looking for identities matching "([another iD])"
     0 valid identities found

    at Object.ensureCertificateValid (/usr/local/turtle-js/node_modules/@expo/xdl/build/detach/IosCodeSigning.js:123:11)
    at <anonymous>

After googling a bit, it seems the Expo CLI ought to be asking me to log in with Apple credentials (including 2FA code) when using expo:build, but it doesn’t. I’m guessing this is because for previous builds I’ve uploaded the certs, which are now supposed to instead be generated locally and uploaded by the CLI, correct?

I’m unclear how to migrate from the previous method to the new one without breaking anything in production. Should I just run expo build:ios -c and go from there, or only expo build:ios --clear-provisioning-profile --clear-dist-cert, or something else entirely?

Thanks! :grinning_face_with_smiling_eyes:


Some additional info/context
Running expo credentials:manager gives an output a la:

? Select platform ios
Fetching available credentials
Available credentials for iOS apps

Application credentials

  Experience: @[company]/[appname], bundle identifier: com.[scheme].ios
    Provisioning profile (ID: [profile id])
    Apple Team ID: [team id],  Apple Team Name: ---------


User credentials

  Push Notifications Key - Key ID:[key id]
    Apple Team ID: [team id],  Apple Team Name: ---------
    used by
      @[company]/[app] (com.[scheme].ios)

  Distribution Certificate - Certificate ID: [cert id]
    Apple Team ID: [team ID],  Apple Team Name: ---------
    used by
      @[company]/[app] (com.[scheme].ios)

Example of failing build


Please run expo diagnostics and paste the log that’s printed out along with your question or issue!

Expo CLI 3.12.1 environment info:
    System:
      OS: macOS 10.15.3
      Shell: 5.7.1 - /bin/zsh
    Binaries:
      Node: 12.14.1 - /usr/local/bin/node
      Yarn: 1.21.1 - /usr/local/bin/yarn
      npm: 6.13.4 - /usr/local/bin/npm
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: 11.3.1/11C504 - /usr/bin/xcodebuild
    npmGlobalPackages:
      expo-cli: 3.12.1

After googling a bit, it seems the Expo CLI ought to be asking me to log in with Apple credentials (including 2FA code) when using expo:build , but it doesn’t

It asks only if there is some credentials missing and in your case everything is setup.

My best guess is that distribution certificate expired, so if you run expo build:ios --clear-provisioning-profile --clear-dist-cert it will generate new ones

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.