Building for iOS

Good day, expo team! I wanted to learn a something about developing an iOS app. Can I build an iOS application without a MacBook and absolutely free? Purely for personal use?

1 Like

To build an .ipa, you’ll need to be part of the Apple Developer Program (which is $100 per year)

2 Likes

@sourcecode007 Good morning mate! Unfortunately we cannot build or compile iOS apps without MacBook. It is possible to create an application to be used in simulators with “expo build:ios” and then selecting “application for a simulator”. In order for this app to be published in the app store and you can download it on a physical device, you need to be part of the “Apple Developer Program”, which, as already mentioned, may not have such an affordable price for publishing a standalone app and that only you will use. But if you have a larger scale production in mind, I recommend you sign up for the program. Another solution, if you want to use the app just for yourself, if you have an Android on hand you can compile an “apk” and it doesn’t need to be installed directly from the store. I hope to help with something, keep on programming friend, hug!

2 Likes

Hello Friend! Thanks for your answer! Can I make applications for a simulator and then run on a real device? It’s free?

1 Like

Thanks for your answer! But I wanna know may I develop an application for simulator and then run on real device! It is free?

@sourcecode007 Hey, I’ll leave here a text I was reading to try to help:

It’s usually easiest to test your standalone app on a simulator with the expo build:ios -t simulator command, and then use TestFlight for your physical device testing. But if you’d like an IPA that you can install directly onto your physical device through Xcode, you can generate one with Expo CLI:
Run expo build:ios once to generate some preliminary certificates, namely your app identifier, and distribution certificate.
Now, create a new provisioning profile here, and under Distribution, select Adhoc. Then provide your app identifier and the distribution certificate you created in the last step. If you don’t provide those exact certificates, your build will fail.
Download the provisioning profile, then pass it to the build command like this: expo build:ios --provisioning-profile-path ~/Path/To/provisioningProfileYouCreated.mobileprovision, and make sure the rest of the certificates you use match those you selected when creating your adhoc provisioning profile in the previous step.
Once Expo finishes your build, you can install it onto your device via Xcode by opening the Devices & Simulators window, selecting your connected device, and under Installed Apps, click the + and then select the IPA Expo generated for you.

I’ve never tested whether a simulator app (.ipa) also works on physical devices, apple is very strict about this and takes security more seriously, you can read more about the build process in the article a follow: Building Standalone Apps - Expo Documentation
You only need to pay if you want to advertise your app on the App Store, i hope to help you, hug!

1 Like

@carlosemanoel to get those certificates needed to build the IPA, you need to have an Apple Developer Account

@sourcecode007 to build a standalone iOS application, you need an Apple Developer Account. Until then, you can use Expo Go for development

2 Likes

Can I use Expo Go offline? That is, simply launch Expo Go and then launch the “finished” application. Or is it necessary to use a computer and run “expo start”?

@sourcecode007 Expo Go is a great tool, but unfortunately it depends on an active server 100% of the time, it would need to give “expo start” whenever I was going to use the application. If you want to use it separately, you would have to leave the server active all the time or at least give “expo start” whenever you use your app.

2 Likes

It doesn’t require an active server- you can load published projects (run expo publish) in Expo Go, as well

1 Like

Can you please clarify: I can create a project, upload it to “expo publish” and easily run it on expo go, right? Is it absolutely free to load projects on “Expo publish” and use “Expo publish”?

that’s correct

1 Like

Ok, thanks a lot!

One more question: if I load my project on “Expo publish”, everyone will see my project? May I make my project private?

On iOS, you can only load the project if you have permissions to do so (i.e. you add that user to your Expo team or organization)

1 Like

On iOS, you can’t share your published link

When you publish, any Android user can open your app inside Expo Go immediately.

Due to restrictions imposed by Apple, the best way to share your published app is to build a native binary with Expo’s build service. You can use Apple TestFlight to share the app with your testers, and you can submit it to the iTunes Store to share more widely.

I read topic about “Expo publish” and found this. What it means?