I am developing a bare Expo app which I’ve locally built on many physical iOS devices before. Recently I got a new iPhone 13 Pro, but Expo refuses to work on it. I: enabled developer mode on the new device, then ran npx expo device:create
to register the new device in my provisioning profile.
However, when I run the project with npx expo run:ios --device [device name]
, I get this:
✖ VerifyingApplication 40%
CommandError: ApplicationVerificationFailed
Which I have never seen in my life. I tried reinstalling my packages, doing rm -rf ios
to reset the native directory, but nothing works. The same project still builds on a device that previously worked, but not on the new iPhone 13 Pro. I’ve also tried restarting both the phone and my MacBook Pro, as well as using npx eas credentials
to create a new provisioning profile, and ensuring that I select the newly registered device. Nothing works.
Then I tried opening the Xcode workspace, after which the error message changed to:
error: Provisioning profile “iOS Team Provisioning Profile: com.sotravel.dev” doesn’t include the currently selected device “Nathan’s iPhone 13 Pro” (identifier 0000xxxx-xxxxxxxxxxxxxxxx).
Now I’m not sure how the provisioning profile that I just set up using npx eas credentials
interacts with running npx eas run
locally, but I can verify that the UDID which the error message claims is not in the provisioning profile, is in fact in the provisioning profile:
Provisioning Profile
Developer Portal ID XXXXXXXXXX
Status active
Expiration Fri, 26 Jul 2024 14:11:27 GMT+0800
Apple Team XXXXXXXXXX (My Name (Individual))
Provisioned devices - iPhone (UDID: [censored])
- iPhone 8 (UDID: [censored])
- iPhone XS (UDID: [censored])
- iPhone (UDID: [0000xxxx-xxxxxxxxxxxxxxxx])
Updated 26 seconds ago
Another part of the error message says:
error: No Account for Team “XXXXXXXXXX”. Add a new account in Accounts settings or verify that your accounts have valid credentials.
Now when I open the xcworkspace, it does seem like the account is missing. But I’ve never had to sign in via Xcode. I signed in through expo/eas on the command line once in the past and it’s been smooth sailing since. If I change the selected device in Xcode to the device that did, and still, works (the iPhone 8), the account is also missing. But Xcode does not complain about that device being missing from the provisioning profile, while it does complain for my new iPhone 13 Pro.
And isn’t the point of Expo to avoid having to manually mess with the native side of things? It seemed to me that so far, Expo has been settling it just fine. And even npx eas build
still creates a development build that I can install on my new iPhone 13 Pro. So why is it refusing to build locally?