Build an iOS app without owning a mac?

Update from 09/2017

It is possible to develop iOS (and Android at the same time) application using React Native + Expo without owning a mac. You will also be able to run your iOS application within iOS Expo app while developing it. (You can even publish it for other people to access, but it will only run within Expo app). Here is page from Expo on how to generate standalone app.

Steps from that page:

One: Install exp by running npm install -g exp

Two: Configure app.json (somewhere along these lines):

{ "expo": { "name": "Your App Name", "icon": "./path/to/your/app-icon.png", "version": "1.0.0", "slug": "your-app-slug", "sdkVersion": "17.0.0", "ios": { "bundleIdentifier": "com.yourcompany.yourappname" }, "android": { "package": "com.yourcompany.yourappname" } } }

Three: Start exp packeger with exp start

Four: run exp build:android or exp build:ios.

You will be prompted for some input. For android you can choose 1) Let Expo handle the process! if you don't have keystore (or if you don't know what it is). For iOS you will have to enter your Apple developer credentials. Then you can provide distribution certificate or let expo handle it.

Five: Once in a while you will have to come back and run exp build:status command to check whether your build was complete. If complete you will be provided a direct link to .apk or .ipa file.

The only drawback to this approach is that it won't be as native as writing iOS app in Swift, and you will have to put up with parade of issues you may run into while developing with weakly typed js, npm, and it's dependency-on-particular-version-of-some-other-library issues, and other stuff.

Source: Stack Overflow