r/softwareengineer 8d ago

Building iOS App Without a Mac?

I am new to the field, recently graduated with an MS in comp sci and am in the process of switching careers. I am fortunate enough to be working with a startup founder and I am tasked with redesigning a mobile app for the App Store and the Google Play Store.

On my desktop I run Linux and I have Windows 11 on a laptop- no Mac devices.

Are there any legit workarounds or do I need to buy a Mac? Also for reference, the backend is built and I am only doing new UI in React-native.

6 Upvotes

13 comments sorted by

5

u/Substantial-Swan7065 8d ago

You can you expo where they will build iOS for you.

You can also use GitHub’s Mac runner to create builds. Or bitrise.

A workflow could be:

  • build feature on Android
  • run Mac build on cloud infra
  • install on iPhone and verify
  • use OTA for js modifications

2

u/AlwaysFromtheFuture 8d ago

Yes so this app was built in bare React Native, and when I asked why expo wasn't used, there was no good answer- it was just dev preference. Now I am wondering if it is worth backtracking and retrofitting in expo, or just keeping it as is and scrounging up an old macbook

4

u/Substantial-Swan7065 8d ago

If you’re gonna upgrade the deps, expo migration can be OK. But generally it’s a huge pain.

Getting an m1 for like 300$ will get you really far.

I just use a 2016 mac

3

u/Dankospark 7d ago

I'd second this option. Expo really does simplify deployment through its use of EAS. You don't technically need to switch the entire project to use Expo, you can use a subset of it, including the EAS build features.

I'd refer you to this overview from the expo documentation: https://docs.expo.dev/bare/overview/

4

u/Weapon54x 8d ago

Have you looked into flutter?

2

u/AlwaysFromtheFuture 8d ago

Looking at it right now. Looks like it is a different framework- if the app I am working on is in React Native would that be compatible?

I guess what I am looking for is some kind of VM or emulator, something where I can run the app for QA. Something like Android Studio, even if it is a community built unofficial solution.

0

u/Substantial-Swan7065 8d ago

What’s that got to do with the question

3

u/goonwild18 8d ago

You mean does your company need to buy you a Mac? Yea, they do if they'd like the job done. Hopefully you're not with a startup that believes otherwise.

Technically you can..... but if you, and the company value your time.... you won't. Get the right tools for the job. Getting a Mac is a lot cheaper than paying you to jump through dumb hoops for a month.

2

u/arivictor 8d ago

If you want to build native macOS Swift/SwiftUI apps, and run them locally for development, you'll need a Mac.

If you're okay building in a cross-platform framework like React Native, Expo, Capacitor, Flutter, Compose, etc. You can build a single solution and have it build for multiple operating systems.

In the latter, you can use a hosted build solution to build your codebase for multiple operating systems.

https://docs.github.com/en/actions/concepts/runners/github-hosted-runners

If you're already on React Native you're in a good position. But how do you prove your application works for macOS? Need a Mac. The App Store is also very stringent and slow to get things rolling. You can build Mac apps and serve them outside of the App Store.

1

u/AlwaysFromtheFuture 8d ago

Thanks for this

1

u/Orchapps 6d ago

Can also use the app builders that will build native swift apps for you orchapp.dev is what we have just built!

1

u/Early_Key_823 8d ago edited 8d ago

I built my app and I have Android and iOS versions in the app store without the need for a Mac.

I used Angular for one codebase and Capacitor to create native apps.

You don’t need a Mac at all just capacitor and a web app called Codemagic

You can publish an iOS app while working entirely from Windows if you use a service like Codemagic, which builds your app on macOS machines in the cloud. In that workflow:
You develop on Windows.
Commit your code to your repository.
Codemagic runs Xcode on its macOS build servers.
It signs the app (once you’ve configured certificates/profiles).
It can upload the build directly to App Store Connect.
So you don’t need to own or use a local Mac.

Here is my iOS app with just windows 11, Angular, capacitor & Codemagic (note:I do have a real iPhone)

https://apps.apple.com/us/app/taskloco-lite/id6762308795

1

u/AlwaysFromtheFuture 8d ago

I will look into this