Can we use the legacy build system for react native ios in Xcode 10.1? - ios

I was using xcode 9.4 for react native 0.55 in production. But apple keeps sending mail each time a build is submitted to appstore, forcing the xcode update for the latest ios 12 sdk.
I updated xcode and solved the bugs I was getting during a local build following this blog post. The build is successful running from xcode locally.
However, the build is failing in circle-ci and the glog script that I run doesn't work for some reason.
So, I want to ditch the new build system and go back to the legacy build system.
Is it okay to release a build with legacy build system? I've heard that the new build system helps for faster builds with swift code. I don't have any swift code and want to push an update immediately to the appstore.
This update is a blocker.

Related

Does expo-dev-client build auto reload?

I'm trying to use expo-dev-client to develop my app. The app hasn't contained native dependency yet.
After following the set up in the Expo document, I lasted run the command '''eas build --platform ios --profile preview'''. It built an app. Then I installed the app on my IOS simulator. (I haven't registered my iPhone to ad hoc).
The app now has the newest source code. But after editing and saving new source code, the app installed on the simulator didn't update.
So, does expo-dev-client build auto-reload? Or how to update the newest code to the installed app on my IOS simulator?
No, you have to re-build it when you have a new release.
I recommend checcking https://docs.expo.dev/workflow/publishing/
You can see the changes when the code isn't builder with the simulator

Building old version of React-Native app with Xcode 11

I just started working on an already existing React-Native app that needs a really small update, but that has not been updated since October 2019.
The first thing I need, in order to start updating it, is to build the app. That is where I cannot find a way to do it.
At the moment, I’m trying to build the app only on iOS and not on Android.
First of all the current toolset versions I’m using are:
React-Native version: 0.53.3
Xcode version: 11.4.1
iOS SDK: 13.4
Node version: 8.16.6
NPM version: 6.14.1
I initially had problem with third-party tools, but I managed to fix it through manually installing them in the node-modules/react-native folder.
Now I’m getting errors about Xcode not finding headers of the modules the app is using
like, for example,
React/RCTViewManager.h file not found
Or, similarly, the GoogleSignIn.h headers in the RNGoogleSignIn module
I believe it’s just an error of how libraries are imported in Xcode, because as a test I have created a new react-native “test app” with the same exact versions of react-native and node, then I installed the core dependencies needed to perform the update on the original app, and I managed to build it without problems.
I’ve also tested building the app on an old Mac with macOS 10.14, using Xcode 9, but I’ve got different errors, always related to importing headers of modules.
This is the toolkits versions of the “old Mac”:
React-Native version: 0.53.3
Xcode version: 9.4.1
iOS SDK: 11.3
Node version: 8.16.6
NPM version: 6.14.1
Searching online I know that some of the problems I have faced (like the third-party react-native manual install) have been fixed in react-native updates, but I’m not expert enough with the technology to be sure that I can handle the update process without introducing bugs. I would prefer to just make this version run for now and facing the updating process later.
Do you have any suggestion of things about what I can do in order to successfully build the app?

If anyone ever comes here with a similar problem: the solution was pretty simple.
Be sure you're using the .xcworkspace file in your iOS folder, and not the .xcodeproj. This is used to automatically (and correctly) load the Pods dependencies in Xcode without having to manually link them.
Be sure that you installed the dependencies correctly with the right version of Cocoapods. We had to use an old version (1.5.x) that would automatically downloaded some pod dependencies. Our error was due to Facebook SDK. Newer versions of cocoapods did not download it, while the 1.5.x version would download it.

Upload cordova app to the Apple store with Xcode 10

I noticed that Cordova is not compatible with the latest version of Xcode 10. To test the app I use this command:
cordova run ios --buildFlag='-UseModernBuildSystem=0'
and it works all correctly. I would like to know if it is possible to load applications built with the old Xcode system on the app store.
Using XCode legacy build system works completely fine when uploading to the AppStore. I still maintain an ionic 1 project that way.
Also, might I suggest checking out the release notes on the new build system which might answer some of your questions: https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10

I can’t get my iOS project to build my changes

I'm new to the iOS side of things and I’m having a huge issue. None of my changes I am making to my views are being built when I build iOS. I run
sudo cordova build ios
Then I open Xcode and “sign” it. I then run from Xcode to my test device. But no changes are made. Even when I remove the iOS platform, add it back, rebuild iOS, run from Xcode, my changes still have not taken effect in the build. Am I missing something?
After you update your view, the process is:
1. build the components and pages and copy the result into www dir.
2. copy the contents in www into ios project, with ionic prepare command.
3. build your ios project.
With the latest version of ionic, it will be done one one command ionic cordova build ios, but if you use some old version of ionic, maybe you need to run:
ionic build
ionic cordova build ios

Run release build version using cordova iOS

I want to test the release build version on my iOS device directly using this command:
cordova run --buildConfig=build.json ios --release --device
But not working, is anybody here manage to test the release build version running on device? Thanks in advance.
Or let say the worst case, we can't do it. Is there any guarantee that below command:
cordova build --buildConfig=build.json ios --release
will build the release version of our app, when we open the xcode project on xcode?
My point is I need to get the release version build by cordova, not by Xcode.
Likely not guaranteed, but that's just a guess.
I'm not sure why you need Cordova to put together a release build—in order to submit to the app store you will want to use Xcode to archive your app. I have no idea if Cordova can do a proper archive but personally I wouldn't rely on it because at least Xcode should be up to date on what Apple demands from the build. Especially with automatic code signing. Cordova may lag in its implementation when Apple changes things.
One little thing, when a .ipa is signed for distribution through the app store, you cannot side load it onto a device. You can only side load .ipas that are signed for development.

Resources