expo v29 not loading assets in ios release build - react-native

I've been using expo with ExpoKit since v23 and made some iOS releases with those versions, when upgraded to release 29, debug build was working fine as usual.
But when I created a release build, all images stopped showing.
In this gist I share my podfile, app.json and package.json: https://gist.github.com/jper92/f705c71c455c760bd6c10e9cbdeac16c
Also made sure to update the EXShell.info file with the correct versions, tried to add and remove the local bundling, caching them in the initial splash with Asset.fromModule, and carefully read all steps to upgrade to v29 and I'm still having the issue, any suggestion?

Related

Not going to release apk after expo eject

I created a new project at Expo, after which I was already building it using expo buildbut over time I needed to move away from Expo a little and execute an expo eject, and then continue development on regular React Native.
I ran into the following situation: I am trying to build an apk file with the ./gradlew assembleRelease command, but I get a debug build instead of release, I don’t understand why this is happening, I tried to follow the build instructions specifically for the release version - unsuccessfully.
I also tried to create a new project without using Expo - the whole scenario described above worked correctly and I got a release build of my application, and with all that, I compared the android/app/build.gradle files in these two projects and they are almost identical in terms of their configuration.
My main task and problem is to build the release version of the apk file and understand why, with different attempts to build, I only get the debug apk.

How to deploy codespush bundle on old targets when there are native changes on the new build

Before i continue, let me let you know that i know the code to deply to a targeted build for codepush
appcenter codepush release-react -a aountName/appName -d Production -m --description "CommentHere" -t versionName
I have tried to figure this out on my own and i have not been able to.
I have several versions of my app which i have deploy using CodePush and everything works well but I started having fears of crashes when i installed new packages on the latest build.
This implies the current code base would have new native differences as compaird to the old version.
The question is how can i deploy my new build with new native codes
and packages present to an old version of my app which does not have those
native packages without running into several crashes from all the users using the old version of the app...
I ask this cos i have a feeling if i push the new build with the new changes in UI and native chnages to the old version of my app, the app old app would crash.
If a bug comes in for an old version, how do I fix it and deploy it
for the old version only? Bugs may be critical and not everyone will
have the latest version of the app Or, the bug may only exist on a old
version of the app.
I await your response.
Code push will not affect any native code written within the Android or the iOS projects of a React-Native application. If you read the documentations carefully, it specifically says that it does not change / modify / update the native portion of the app.
Why?
This is because of the way the CodePush mechanism works. In essence, CodePush only stores and triggers the update of the JS bundle of the React-Native application.
This is why we wrap only the JS main app instance with CodePush HOC (Higher Order Component). This is what's happening when you do:
CodePush(MyApp); //wrapping the js bundle at app-root
So, unfortunately in your case, if there are native codes involved, regardless of deployment to a new or old version of the app, it has to be a AppStore / Playstore driven deployment.

Why is IOS folder too huge when compared to android folder in React-Native?

I have developed an app in react native, but the project folder is too large(1.2GB) to upload into git and the IOS folder itself holding 0.9GB.I have done the following steps to overcome the issue
Steps Followed :-
Deleted Android and IOS folders from project folder.
Uploaded and Downloaded the project code using git.
Later run the commands like npm install and react-native upgrade
After running the above commands to generate IOS and Android folders, we are supposed to run Android version, but facing issue with IOS.
So...I request you to let me know the proper process of uploading code into git such that i can run both Android and IOS.
Make sure you have a .gitignore and make sure at a minimum that the build and node_modules folders are not included. For me 95% of the size is from that.
example gitignore

CodePush updating a newly installed app

I am setting up code-push for my app and found a weird behaviour. I compiled the app for staging and installed it on the android phone and then pushed some updates through code-push which were downloaded fine.
I am not changing the versions of my apk in android/app/build.gradle since i am installing directly from the mac to the phone for testing in staging mode and it overrides the previous installation.
I keep track of the bundle-id for bugsnag and the last bundle-id for code-push is 1.6.5. After some more modifications I ended up creating a new apk for staging that was installed and now the bundle-id is 1.6.7. I haven't pushed this to code-push yet. As soon as the app runs it asks for an update and if I update i get the old bundle (bundle-id 1.6.5) from code-push. Not able to understand why i will get old code as an update. Am i not setting some parameter correctly?
react-native: 0.44.1
react-native-code-push: 2.1.1-beta
You have to push the package to code push and make it available for 1.6.7 version so that it downloads the new package instead of the old one.
You can make the release mandatory and tell code push to download it and update it on next resume like so
codePush({ checkFrequency: codePush.CheckFrequency.ON_APP_RESUME, installMode: codePush.InstallMode.ON_NEXT_RESUME })

Which is the correct method of upgrading React Native in your app?

In React Native, what is the difference between:
react-native-git-upgrade
react-native upgrade
yarn upgrade react-native
Just deleting node_modules, bumping the version number in package.json, removing yarn.lock or package-lock.json and doing an npm install or yarn install
What is the preferred method, advantages/disadvantages? Are some outdated? Only relevant for certain versions?
I want to love React Native, but when it comes to versions, it is absolute hell. 0.44.1 is the only version that has consistently worked for me without random fatal errors on startup.
As you can see in here in the official react-native document, the best way for upgrading react-native is using react-native-git-upgrade if you create your project with react-native init. If you started you app with create-react-native-app please read here.
Because React Native projects built with native code are essentially made up of an Android project, an iOS project, and a JavaScript project, upgrading can be rather tricky.
Advantage: The module react-native-git-upgrade provides a one-step operation to upgrade the source files with a minimum of conflicts. Under the hood, it consists in 2 phases:
First, it computes a Git patch between both old and new template
files,
Then, the patch is applied on the user's sources.