I’ve been building for iOS for a while now as we push through tests. I’ve regularly seen (and been confused by) the message “No currently active or previous builds for this project.” It continued and built the app normally after that.
Now, however, expo is not seeing my credentials and asks if would like to upload them. Not sure how to fix without messing up my build certificates. I have not used -c out of concern I would lose any valid information. Oddly, I was able to pull iOS certs. Are these likely to be the same ones I’ve used? I could use -c and then upload them if that seems safe.
# exp fetch:ios:certs
[exp] Retreiving iOS certificates for @roblingle/heel
[exp] Writing distribution cert to /…/heel_dist.p12…
[exp] Done writing distribution cert to disk.
[exp] Writing push cert to /…/heel_push.p12…
[exp] Done writing push cert to disk.
[exp] Save these important values as well:
[redacted]
[exp] All done!
# env EXPO_DEBUG=“true” exp build:ios
[exp] Making sure project is set up correctly…
[exp] Your project looks good!
[exp] Checking if current build exists…
[exp] No currently active or previous builds for this project.
[ { action: ‘ruby_dir’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx’,
doesExist: false },
{ action: ‘app_management’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/app_management’,
doesExist: true },
{ action: ‘fetch_cert’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/fetch_cert’,
doesExist: true },
{ action: ‘fetch_new_provisioning_profile’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/fetch_new_provisioning_profile’,
doesExist: true },
{ action: ‘fetch_push_cert’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/fetch_push_cert’,
doesExist: true },
{ action: ‘validate_apple_certs’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/validate_apple_certs’,
doesExist: true },
{ action: ‘validate_apple_credentials’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/validate_apple_credentials’,
doesExist: true },
{ action: ‘validate_apple_push_certs’,
path: ‘/Users/rob/.nvm/versions/node/v8.9.1/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.0.17-osx/validate_apple_push_certs’,
doesExist: true } ]
? How would you like to upload your credentials?
(Use arrow keys)
❯ Expo handles all credentials, you can still provide overrides
I will provide all the credentials and files needed, Expo does no validation
Well, it’s different now.
Safe to use -c? Is that a local clear only or what?
# exp whoami
[exp] Logged in as roblingle
# exp build:ios
[exp] Making sure project is set up correctly…
[exp] Your project looks good!
[exp] Checking if current build exists…
[exp] No currently active or previous builds for this project.
[exp] Error while gathering & validating credentials
[exp] We do not have some credentials for you, provisioningProfile; recommend -c
[exp] Set EXPO_DEBUG=true in your env to view the stack trace.
-c will delete your certs & related things from our machines. In that case you’d also probably should go to developer.apple.com and delete a cert no longer used by expo. Make sure you have an available slot so that the exp client can then make a new distribution cert and make a provisioning profile based off that cert.
So, I’d rather not do that.
Is there any way to get back to the expo-provided certs I used last week? Or can I -c and then upload the ones I got from fetch:ios:certsearlier today?
Make sure you have an available slot so that the exp client can then make a new distribution cert and make a provisioning profile based off that cert.
Can you explain that a little more? Does that mean Expo will talk to Apple to add the new cert for the app, and then I can go ahead and use “Application Loader”?
Right now the way that making a provisioning profile works is that it picks the latest distribution cert that you have available on your apple developer account.
I need to change code in order to make a provisioning profile as a function of distribution cert if you profile, that is instead of letting the exp client make it.
I will look at doing this now, seems like a use case that you would want? (I am not sure if it is possible yet in principle)
it picks the latest distribution cert that you have available on your apple developer account
Interesting. I didn’t remember Expo knowing anything about my developer account.
I need to change code in order to make a provisioning profile as a function of distribution cert if you profile, that is instead of letting the exp client make it.
Not sure I understand. I meant to ask if I need to use -c and then select I will provide all the credentials and files needed, Expo does no validation, and upload (via Expo command line?) the certs that I got from Expo earlier.
If you provide all the files, then you need to provide a p12 distribution cert, a p12 push cert, and a provisioning profile.
From fetch:ios:certs, I got dist and push certs, and dist and push passwords. And I found my provisioning profile at Apple, so I guess that’s all I need to -c and re-upload.
Do want to thank you guys, Expo’s been great for letting me work on my app and ignore most of the tedium of the Apple dev experience.
I’m getting an error on each build now, no details.
If it’s not fixable and I can’t use my certs anymore, will I need to delete my current dist/push certs from Apple? Will that cause problems with existing notification tokens? Will I be effectively starting a new app release process or will I still have my alpha/beta setup, store settings, etc? @edgar
No details. I check status after starting and the build is in progress. At some point it errors out.
Minor thing that may not be related, the provisioning file I download from Apple has a slightly different extension:
[exp] Please provide the path to your .mobile provisioning profile
? Path to your .mobile provisioning Profile /Users/rob/Downloads/comappstuff_AppStore.mobileprovision
[exp] Starting build process…
[exp] Unable to find an existing exp instance for this directory, starting a new one…
Also, I’m not sure why I see that last message or why it reports “No currently active or previous builds for this project”.
env EXPO_DEBUG=“true” exp build:status
[exp] Making sure project is set up correctly…
[exp] Your project looks good!
[exp] Checking if current build exists…
[exp] ============
[exp] Build Status
[exp] ============
[exp] iOS: There was an error with this build.
Here’s everything after key imports, so I think I cleaned out passwords.
No details as far as I can tell. This time I regenerated the provisioning file on Apple and used that with the keys and passwords I’d gotten from Expo previously. The application-identifier key in both includes the team prefix. That appears to be normal, but it’s not a strict match with bundleIdentifier in app.json.
Unless you see something there… If I delete my provisioning file and revoke distribution/push certs so that Expo can generate them, will that affect my notificationTokens?
Hi @roblingle - During the time your push certificates are revoked and until Expo has the new ones, you won’t be able to send push notifications but this won’t affect the Expo push tokens. Once you’ve let Expo provision new push certificates (or have uploaded new push certificates to Expo with exp), your existing Expo push tokens will start working again.
Thanks, guys. Any ideas why the build failed? The imported certificates seemed to be fine.
I’m about to move the project to a new account, and I’m planning to clear and regenerate certs/profile there.
I plan to import my Android certs into that account, and hoping that goes well. Fortunately (I think), I’m using their new app signing process so I can revoke and add a new cert there if I have to.
I assume that this move will break notificationTokens, being a different Expo “experience”.