Submit an app created with create-react-native-app to the App Store (without XCode?) - ios

Before, react-native 0.45, when you'd create a project, it would generate a XCode project file in the ios folder so that you can open it with XCode and use it to submit your app to the app store.
Since react-native 0.45, react native project are created with the create-react-native-app command and there is no xcode project anymore.
I read that you can "eject" to go back to the old style and get an XCode project. create-react-native-app is supposed to make everything easier, so I suppose there is a way to submit to the app store without ejecting that doesn't make the whole process much more painful than by using XCode.
To be clear: I understand that there are probably ways to submit to the app store without XCode, but aren't them much more painful? I can't believe that react-native would then consider it an improvement to not generate a XCode project anymore.
Could someone point me in the right direction?

Since react-native 0.45, react native project are created with the create-react-native-app command and there is no xcode project anymore.
This is incorrect. create-react-native-app is simply one of two ways to start a React Native project. The react-native init method of starting a project is still there in the docs.
To be clear: I understand that there are probably ways to submit to the app store without XCode, but aren't them much more painful? I can't believe that react-native would then consider it an improvement to not generate a XCode project anymore.
You are not going to get a good answer for this as it's very much down to opinion. StackOverflow is not the right place to ask such a question.
Could someone point me in the right direction?
Same with this question. Please read How to Ask to properly demonstrate what you've tried and exactly what issue you are running into.
As a starting point for learning how to publish, I suggest looking at the create-react-native-app documentation as it gives you two options right there:
Ejecting to generate the ios and android folders with which you can then publish.
Using a third party service like Expo to publish for you.
Their documentation goes a bit more into depth on the options. This is the best summary I can give as an answer without putting any of my opinions into it.

Related

highcharts-react-native not working in iOS binary (.ipa)

I have a react-native app. This app has an iOS version, which uses Highcharts.
# package.json
...
"dependencies": {
"#highcharts/highcharts-react-native": "^3.1.2"
"highcharts": "^8.2.0"
}
...
In Xcode, when I run the app locally, the chart shows up fine. But when I build an iOS binary (.ipa), the same charting area is empty.
This tells me that the Highcharts library didn't get included in the packaged binary.
I've been playing around with package.json, Podfile, and Xcode Libraries and Frameworks. But nothing seems to work.
I'm really getting killed on time here. Has someone come across this and fixed it?
EDIT (10/21/2020)
I've attached screenshots of i) the working and ii) the non-working screens.
My problem also seems similar to this SO question.
App behaves different when run from XCode compared to .ipa
As per the answer there, when I changed the build configuration for Archive to debug the generated .ipa started to work!1
But if I do not want to use debug for the build I send to Apple, then how do I build + archive so that all libraries are working.
Working
Not Working
Got this working, tested in via Xcode and TestFlight.
As per #SebastianWędzel 's comment, there was an issue in the library itself. But I used a slightly different patch, here.
https://github.com/highcharts/highcharts-react-native/issues/104#issuecomment-714195854
The ultimate solution was patching the getAssetAsString function in this Highcharts library file.
node_modules/#highcharts/highcharts-react-native/src/HighchartsReactNative.js

Set up React Native project without using react-native-cli

So I'm learning React Native now, and I'm wondering how to set up an app manually, without using react-native-cli. The reason is that I want to set up app code within another project, but whenever I try to move code from a react-native-cli app to another folder containing other project code, I get build errors when running npx react-native run-ios (specifically, xcodebuild errors out with exit code 65). Actually, even if you create a project with react-native-cli and then just change the folder name you get the same build error.
I have template repos I use to start React projects, and I'd like to set one up for native projects, but it looks like it's not possible with the react-native-cli workflow. Is there another way to initialize a React Native project? I know the React docs have a section on integrating RN with existing native apps (https://facebook.github.io/react-native/docs/integration-with-existing-apps), but I don't have an existing native app, I'm starting a new one!
I have scoured the documentation and found nothing on this. Is there any way to find out what commands are run by react-native-cli? How can I set up my RN app from scratch?
EDIT: yes I have heard of Expo! It's all over the RN documentation. I'm asking about how to do the things that react-native init does, but with a more specialized/templated project structure.
As per latest react native documentation, the easiest way to get started is with Expo CLI. Expo is a set of tools built around React Native and, while it has many features, the most relevant feature for us right now is that it can get you writing a React Native app within minutes.
Expo also helps in testing app on phone via QR code.

XCode Project Invalid Bundle on App Store Upload

When submitting our app to the app store the validation process for the build keeps getting rejected with the following error.
Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.
Has anyone else had issues with this error? I feel like I've tried just about everything. I'd done the suggested otool -L on the main app as well as the watch app. The only library that it shows linked for is the Mixpanel library. The only other two libraries we are using is Fabric and Crashlytics. From my understanding those are not actual real frameworks? I've also tried to set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES to YES as many posts online suggest. The project builds and runs fine so I'm completely lost as to how to resolve this issue.
This is a React Native iOS app if that has anything to do with it. I'm not the most experience when it comes to iOS stuff but I can find my way around xcode. Anyone have any suggestions? Maybe the best solution is to just create a new xcode project and set everything up again and copy/paste in the code from the previous project?

react native for ios seems to include a library from a previous project

So I am trying my first few tutorials with react native and therefore am still quite unfamiliar. I had followed this tutorial for using an npm camera in an IOS app. The camera worked find but I had to go an link this library for the camera. I tried it both the manual approach and rnpm. However, now I have a different tutorial on the go which I was messing around with prior to the camera one, and the simulator throws this error.
undefined is not an object (evaluating 'CameraManager.Aspect'), and further down there is also an error about a file which I know was only in my other tutorial(because I wrote it).
So this seems to me like xCode or the node modules for react are somehow still holding this code. I had previously added an entry to the header search paths under the projects build settings, but I looked at it and this path I needed for the camera is not there. So I don't know where this is coming in from.
I ran react-native run-ios on my project, and I tried cleaning the product in xcode and running from there. So far I haven't had very much luck figuring this out.
Ok so this was a simple human error on my behalf. I will post an answer to it anyhow as it might help some react-native beginners. So I had recently made the switch from linux to OSX, and when I started on there linux I had always run the packager for react native manually, and then I found out on OSX I can just run react-native run-ios in the root of the project and it starts another terminal window with the packager running.
The react-native packager was causing the issue. When I ran the react-native run-ios command the following day(didn't turn off my computer) the packager in the other window was forgotten about and I thought it be smart enough to kill that process and restart a new packager for the other project, but it didn't. Hopefully if anyone makes the same assumption you can save some time with this answer.

My Instant Messaging Project Won't Work Like in the Xcode Tutorial

So I was just trying to create a simple instant messaging application on my Xcode 5.0.2. I downloaded the free beta SDK from c2call.com and I followed exactly what their video instructed. However once I tried to build, atleast a dozen issues popped up.
Heres the link to the tutorial:
http://www.youtube.com/watch?v=qyp_BFORvIk
One of the comments said that one possible reason might be because I need to set my Xcode 5 to default in build settings, but I'm not sure how. Does anyone know what I should do?

Resources