Will iOS build with expired apple membership, and do I need to publish Expo app for standalone to work?

Two part question

  1. I tried building my expo project into a standalone iOS app with “exp build: ios” and input my Apple developer username, pass, and team. First, there was a problem because of 2FA, so I turned that off in my apple account. Then, I ran “exp build: ios” again and it said I had invalid credentials. In my Apple Developer Account it says “Your Developer Program Membership has expired” .

If I go ahead and pay the $99 to renew my apple membership, should the build finally work so I can get my .ipa file?

  1. First, I used the Expo XDE program to publish my app, and it worked fine on Expo. Then, I ran “exp build: android” and got a standalone .apk file. I installed the file onto my android device and it worked fine. Then, I decided to remove my pubished project from expo since I “thought” I did not need it anymore. Then, I tried running the standalone .apk and there was the same error screen I got when using the Expo app. I republished my app with XDE and now my standalone .apk magically works again.

*Does the standalone app somehow access the Expo server and run off the published app on Expo?

1 Like

Yes, the standalone app runs the published copy of your app’s JS - check out an overview of the Expo project lifecycle.

I think I answered your other question earlier this morning on github, let me know if you still have questions.

@ben Thanks! Ok. So if I want to make changes to the code, I merely have to publish my new changes correct? (I won’t have to go through the whole build process again and put the new files to the stores).

Also, referring to my other question on GitHub, you answered this:
“The binary will already be signed for App Store distribution, but you can probably re-codesign it in some other manual way (e.g. for enterprise distribution) if you have an Apple computer. I haven’t tried this myself so I’m not positive.”

I don’t understand. Why would I have to re-codesign the binary (which I have absolutely no idea how to do :stuck_out_tongue:? I am going to advise my client to buy the $99 Apple Developer License, turn off 2FA, then give me the user, pass, and team name. Once I have that info, I am going to run “exp build:ios” and get the .ipa. Once I have that file, I will give it to my client, and they will be able to put it on their intranet available for download so their employees can install it on their iPhones. Why wouldn’t this work? (I want to make sure I have all the info before telling my client what to do. I’d rather not have to tell them the wrong thing, then come back here for more help, then go back to him, etc.).

I think your instructions for your client are correct. This is just because Expo doesn’t have built-in support for Enterprise accounts right now. Our builder signs for the App Store because that’s, so far, what our users have asked for. We could probably add enterprise signing someday and would appreciate a feature request if that’s important to you.

The reason I said you might need to re-codesign manually is because I’m not positive that AppStore-signed builds will work for enterprise distribution-- they may need to be signed in a different way. cc @skevy / @dikaiosune

Actually I’m hearing internally that we may already support enterprise builds, but it might be a new thing so I’m not sure. We should wait for one of the others to jump into this thread and confirm.

@ben Ok, thanks Ben I’ll wait for someone to jump in. By the way, I am a HUGE fan of Expo and I just LOVE what you guys are doing. I truly think it’s groundbreaking in the Comp Sci industry. Not to go off on a tangent (but I will anyways lol), I’m somewhat worried about iPhone X and Pixel 2 and the incredibly powerful hardware and software that lies with native. I’m a little skeptical that React Native is going to be able to hang in there with the big boys (I realllllly hope I’m wrong, because I love both Apple and Google and don’t want to choose just one). What are your thoughts on Expos future? (AR, VR, etc.).

The nice part about React Native is that under the hood… it’s just native. Speaking of the future, we landed AR Support on iOS today and hope to have that available in our SDK shortly. :slight_smile:

That’s awesome news. What I meant earlier, is that going forward since Apple has ARKit and Gooogle has ARCore there’s going to be less and less similarities in the platforms since these kits are so specific. Which means less and less code will be reusable across Android and iOS.

@jcalderaio presumably this client is a member of Apple Developer Enterprise Program - Apple Developer – is that correct? I believe @skevy recently built support for creating these kinds of apps using our build service. It should work transparently if you provide credentials for an enterprise-enabled Developer Portal account.

@dikaiosune No, my client does not have an Enterprise Apple account. My client assumed that I would simply be able to get the .ipa file and give it to them - however, I don’t know how they were planning on distributing the app. I think they simply thought they would be able to host it on their intranet for download (which would work for the Android .apk file, but probably not the iPhone. ipa file), right? Sorry to sound so ignorant, but this is my first ever app that I’ve brought to completion and my first job out of college (even though I’m 31, but ya gotta start somewhere :slight_smile:). BTW, this is the beta phase. My client wanst to be able to spread it around to many of the employees to beta test, so that I can fix any issues if they arise. Android is SO much easier. All you need is the file and you can install it on any phone. I simply don’t understand the way iOS releases work and provisioning, binary, signing, etc.

My client insists on being part of the development process, although he is a mechanical engineer and does not understand the Software to production lifecycle (I don’t either as this is my first time). @dikaiosune, so if I am hearing you correctly here are the steps I should follow:

  1. Tell my client to buy an Enterprise Apple developer account at the link you provided and have him provide me the username and pass so that I can have access
  2. I will login to the account and turn off 2 factor authentication
  3. Next, I will follow the link to iTunes Connect in the developer account, and create a new App or App Bundle? (not sure which one).
  4. Then I will put the iOS bundle name that I used in the last step in app.json (“ios”: {
    “bundleIdentifier”: “com.yourcompany.yourappname”
    })
  5. Then, I will run “exp build:ios”, put in the user, pass, and team name from the developer account. Once the process is done, I will download the .ipa from the link given from “exp build:status” and give this file to my client? What is my client supposed to do with this file from here if all he wants to do is beta test it on multiple employees?

Thanks for putting up with all my questions guys :blush:

Yeah, I think that process can work – @skevy correct me if I’m wrong.