I build an android app in react native and expo. Now I made some changes to the code and was thinking that is it possible to update the app OTA for the users. My app is not published to the play store.
I tried by expo build:apk but this build a new apk file and earlier one has no effect on it.
If you haven't disabled OTA updates for your app you should be able to push an update to the existing app using expo publish command. Just run it in the directory of your project—the project will be built, uploaded to the servers and next time the app starts it will download the update.
See https://docs.expo.io/introduction/walkthrough/#updating-the-app-over-the-air for more information. 🙂
Related
I am very new to React Native and Expo. I am now assigned to work on our company mobile app. While doing a build and pushing to Test Flight in Apple Connect, I noticed that my test code is getting Over the Air updated and going live. This is a big problem.
How do I tell from where my app is getting updated live?
I am using the Expo build tools. I checked the configuration for updates in the expo section of the app.json file. It looked like this:
"updates": {
"fallbackToCacheTimeout": 0,
},
Reading the Expo documentation it says the enabled flag is set to true by default. I assumed that was it, so I set the enabled to false.
"updates": {
"fallbackToCacheTimeout": 0,
"enabled": false
},
But my push, which just updated the version number in the app, was pushed live after the app was restarted.
From reading online the behavior is exactly like the Expo OTA update or Microsofts "Code Push". In other words, when users open the app after it's been closed it is the old version. But once they restart, the app updates to the new version.
My build process is this after pushing to my remote git repository:
expo build:ios
Then after the build is queued and builds, I take the download URL and download the .ipa bundle. From there, I use Transporter to check/upload the bundle to Test Flight. Once in Test Flight, I wait until it's done "processing", then I answer the compliance questions (encryption export).
THAT'S IT! I don't create a release in the production side or even touch that.
HOWEVER, if users (who are not beta tester BTW) close and open their app a few times, they get that version that is sitting out in test flight.
I know it's an OTA update for sure because I never issue the expo build:android command but yet....my android phone gets updated too.
I am at my wits end trying to track down where this thing is getting updated. The original developer of the app doesn't have any idea either (i.e. no help).
Any thoughts on how to tell where the thing is being hosted and how it's getting updated.
The reason you are seeing the updates to your production app is because each time you create a new build, expo "publishes" your latest build which pushes any changes OTA to all users unless you use 'release channels'.
Here is the expo documentation supporting the above statement:
https://docs.expo.dev/classic/building-standalone-apps/#3-start-the-build
"Please note: When you run expo build, Expo automatically publishes your app (with expo publish). In order to avoid accidentally publishing changes to your production app, you may want to use release channels."
https://docs.expo.dev/distribution/release-channels/
Once you establish a release channel separate from your production build, you can build separately, and publish OTA updates to that separate build apart from your app that is already live.
This may go without saying, but you can revert your production app using expo publish. As it stands with your current release channel setup, this will also update your TestFlight app.
I developed this react Native mobile application called "ClkApp". I Published my application using expo and I can see the application on my phone.
Now, I want to publish this application on Google play. I completed all the required steps including paid the fee of 25 dollars. One of the step requires that I generate a signed APK. I saw some tutorials how to generate the Signed APK and all of them build the application using android studio and go to Build -> Generate Signed APK. I tried to open my app on Android studio, but I don't see any option under Build menu other than "Analyze APK" and "deploy Module to app engine". there is another option called "make", but that is disabled. Below is the image:
I created a new test application using android studio and I can see the options like generate signed APK, Build etc. for this test application. I don't want to create "ClkApp", my original app", application using android studio because that will take lot of time. Is their any way, I can generate the APK on this existing application and don't have to use android studio at all.
Any help will be greatly appreciated.
Since you have build your app with Expo. You can use Expo to generate apk (standalone app)
After you configure app.json and run expo build:android
Check this for details https://docs.expo.io/versions/v32.0.0/distribution/building-standalone-apps/
I'm trying to figure out the CI portion that provided by AppCenter. I've implemented CodePush for my app and please correct me if my understanding is wrong.
We build the native android app and generate a signed apk.
Release the generated signed apk to playstore
execute command to upload bundle appcenter codepush release-react -a <owner>/<android-app> -d Production
The above are generally the way I understand CodePush and I've tested and working fine.
Now I've noticed that we can integrate our github project branch to appcenter, and whenever there is a git push, AppCenter will build it automatically and we can configure to release to playstore automatically.
Now the part I don't understand is, is this CI auto build by AppCenter actually nothing to do with CodePush?
If now my situation is only having updates on JS code side, actually when I git-push to repo, there isn't a need to auto-release to playstore right?
Correct, Build and Push are separate services in App Center. Build does the binary build of your app while CodePush simply updates the JavaScript and related code in an Apache Cordova or React Native. They're separate workflows and it seems you want to trigger them separate ways.
If you're using CodePush, you can't also use Build to auto build and deploy the native app to devices, you're duplicating work. I'm not an expert, but you probably want to manually deploy your builds whenever you make changes to the native side of the app (which should be rarely, right?) - like when there's major updates to the native framework or new plugins added to the native app
I am about to create version 2 of an application that was first written using Ionic framework.
I would like to verify one thing that concerns updating the original app on Google Play Store.
When I create a new project in Android Studio :
I should give the same package name as the original app
I should sign with the same keystore and passwords
Is there anything else I have to take into consideration?
Play Store Ionic to Native App Transition :
1.On google play store publishing ionic app are same process as publishing native app.
2.Develop build and deploy any cross platform app(ex:ionic,cordova) and later easily move to native app.
3.In Android Native App build gradle file , package name(application ID) should be same for different versions of app(in your case ionic). Also signing certificate(keystore) remain same during version change.
I am developing an app using phonegap 5.4.1, I found out that there is a overall new documentation for adobe phonegap. I have gone through that and I have created the app using CLI as per documentation see the link below http://docs.phonegap.com/getting-started/3-create-your-app/cli/ and it has been created successfully. While running the app I have installed "Phonegap Developer App" in my device and through this app I can run my app. Check below
http://docs.phonegap.com/getting-started/4-run-your-app/cli/
Now my enquiry is, how can I store my app in the device, as its not getting stored anywhere and if I need to send apks to other device how can I accomplish that. Need help. Thanks a lot in advance.
You need to create an apk with the CLI
cordova build android --release
This will create a debug version that can be run on developer unlocked phones.
You'll need to sign it if you intend to upload it to the Play Store: Here