How to generate ipa file without xcode from windows? if possible - ios

I am trying to create ipa without mac and xcode. I have iphone to test app. I never used expo for development purpose. Is this possible with expo or any online resource which can generate this ipa for testing purpose only? Its a React native app

Yes it'll be possible with Expo.
You need to create a new project with create-react-native-app or exp init, then move your existing code over and execute exp build:ios, which will build the ipa on Expo's servers for you to download.
You will not be able to include any third party native libraries (i.e. libraries that aren't 100% Javascript, that you had to link with react-native link).
However, Expo provides an extensive list of native API for you to use.

Related

Where is the iOS build folder located for React Native apps?

I have just built an iOS React Native app, but I can't locate the app or .ipa file.
Google doesn't seem to have many answers and in Xcode, the folder is just labelled as 'build'.
I need to upload the .ipa file to Microsoft App Center. Where should I look for the app?
Update
I found this: How to build .ipa application for react-native-ios?
Seems like they missed some bits out int the RN docs!

How to create a distributive react-native app for iOS?

I have created a react-native app using the tools - VS Code, expo, react-native.
I am able to run the app on expo client as well as xcode simulator easily on my laptop. What I want now is to make a distributive file for iOS like we have .apk for androids for this app.
I referred to this question How to build .ipa application for react-native-ios?
and tried
react-native run-ios --configuration=release
but I get an error:
Error iOS project folder not found. Are you sure this is a React Native project?
Don't know what I am missing here? I am a beginner with react-native, would really appreciate any help on this.
You have to run expo build:ios that will then ask you your account and certificates, once you have all that figured out it will give you a link where you can see how the build is doing, after it's complete you can download the .ipa file and use the app transporter from the app store to send you app to apple servers.
(All this if you are using expo, if you aren't it's a hole different conversation and a lot more difficult)

Manually Link React Native Library (FB SDK) for iOS on Linux

Is it possible to manually link a library in a react native app when developing on a Linux (Ubuntu) device without manually building the app (I am using the Expo client to test and debug). Because I am on a Linux device, I do not have XCode, and all of the instructions I have found only show how to link libraries using XCode, and they all seem to assume that I have built the app already, or give instructions for building the app (which don't apply to me).
The reason I am asking is I am trying to test the FB login button in my app, but after installing and linking the react-native-fbsdk library, opening the login page in my app results in an error: Invariant Violation: Native component for "RCTFBLoginButton" does not exist". The closest/simplest answer I have found so far seems like it should be the answer in this question, but again it requires XCode, and I'm not sure how to emulate those commands in the command line (or whatever way they can be done).
When using expo, you should use their facebook implementation.
I had a lot of trouble using the login with fbsdk, and the expo sdk is doing the job quite easier.

React native link Ejecting

I tried searching in previous questions, but I did not find it. I made the mistake of using Create React Native App projects. I am trying to do react native link. I did npm i --save. I get an error
react-native link can not be used in Create React Native App projects. If you need to include a library that relies on custom native code, you might have to eject first. See https://github.com/react-community/create-react-native-app/blob/master/EJECTING.md for more information.
I read this and sadly I am completely at a lost. I am using visual studio code and not xcode.
The error is exactly as it states. You cannot link assets and libraries that require linking unless you eject the project from Create React App and get the native project files. Ejecting gives you the native code and with that, you can use Xcode to link libraries with native code.
Create React App is built on Expo, which aims to allow you to develop apps, especially iOS apps, on any platform. But Expo comes with its restrictions due to the very nature of what it accomplishes.
Thus, the problem arises when you want to link platform dependent libraries that require Xcode in iOS's case. Xcode is the proprietary - and really, the only way, to build Apple-based projects that require external libraries because they require APIs and environments only available with it. This was one the huge reasons Expo arose, to allow people to build apps with React Native without having Xcode, but it has its limitations.
So, you cannot use a library that requires linking with native code if you do not have Mac OS because APIs and tools needed for it are only offered on Mac OS.

How can I build an IOS app on IOS?

I've made an app with Codea and exported to an XCode project. Is there way to build it on IOS (or windows)?
Definitely.
Some folks over at iNinjas have successfully ported the Clang-LLVM toolchain to run on iOS. Here's a download link - install the deb on your iOS device. You will also have to copy the development sysroot (the iPhoneOSX.Y.sdk folder) from your computer to your mobile device. The device also has to be jailbroken.
(I don't remember exactly if there are any other packages to install, but perhaps odcctools from Cydia, etc, just google it.)
After that, you have to compile and link all the files. Of course, Xcode uses a proprietary format for project files, so you can't just go ahead and expect the compiler to build from the Xcode project, but you have to, for example, write a Makefile to specify that all .m files are to be compiled. Then you will have an executable file which you may or may not need to codesign.
Here is a tutorial on creating an app from your Codea/Xcode project:
http://codeatuts.blogspot.nl/2012/08/tutorial-12-submitting-to-app-store.html
Well, if you already have a mac, you can use Dringend to compile it from your iPad. It requires a program running on your mac that will do that actual compiling, and then send the file back to Dringend on your iPad, which will install it. This requires having a mac, but will let you program on your iPad away from your mac. This also requires an iOS developer license, for the code signing identities.

Resources