Navigating the iOS and Android App Stores with React Native

When we are making a React native app we are taking care of each and everything like coding, designs, tools, etc. But at the app launch time, we have to catch up on all things and sometimes we miss something while uploading app time which causes an app rejection or breaks the app working flow.

So today in this blog article I will give all the information that you may need before deploying a React native to respective Apple and Android Google stores & also while implementing business logic time.

1. App Name & App ID

Your app name must be unique and approved by your client (If it’s a client project). App name meaning can be relatable to your app features or what your app will provide. App Name must not contain “DEV”, “STAG”, or “TEST” these kinds of words. App ID means Android package name and iOS bundle ID must be unique and you also need to verify it does not already exist in respective stores for any application.

Android in App Store: Android App Store

iOS: In App Store Connect when you register your app at that time you can verify it.

2. Firebase Account

If your app uses Firebase credentials and related services like cloud messaging, crashlytics, authentication, etc. then it must be from Firebase’s Production account. Your Android & iOS production apps should be registered in a Firebase account and related google-service.json & google-info.plist files must be available in your code.

3. Apple Certificates & Profiles

For Apple Certificates you must need to create and use distribution certificates. You also need to create and use Provisioning Profiles which contain distribution certificates and are associated with production bundle identifiers. You also need to ensure that your production bundle identifier contains all the required capabilities.

4. Android Keystore

For Android, you need to create a Keystore for the release build of your application. The keystore file format will be .jks or .keystore. You can store keystore information in variables in gradle.properties files like given below :

MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****

After this, you need to do some configuration steps in the Android/app/build.gradle file for making a release which needs to be binded with the created release keystore given below:

android {
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}

5. AWS Account

If you are using AWS for photo/video uploading or video streaming you need to fetch credentials from the server side using reset APIs. Because in client-side apps it’s not secured. If you will use credentials directly in the frontend side mobile app you will get an App Rejection from Google Side at app review time.

Rejection Reason Will be Like this: Leaked AWS Credentials Your app(s) expose Amazon Web Services credentials.

Ensure a Successful App Launch on iOS and Android Using React Native. Navigate App Stores Effortlessly for Optimal Results!

6. Login with Social Accounts

If you are using a login with a social account feature in an app for authentication you need to use “Sign In with Apple” because Apple will reject your app if it can’t contain the “Sign In with Apple” features. You need to make sure your app contains Capabilities for “Sign in with Apple” and bundle id contains the same.

If you are implementing “Sign in with Google” in your app you need to make sure your production Android package name must be registered in Google Api Console and it should contain the SHA-1 certificate fingerprint key of the production keystore. Before Going Live you need to get the SHA-1 key from your Google Play console’s account from the App signing section. Otherwise, your app which downloaded from Google Play will not work with “Sign in with Google”. In the Google API console, you also need to fill required information in the OAuth consent screen section and verify your app in production mode.

If you are implementing “Sign in with Facebook” in your app, you need to make sure that the Production Bundle ID and the key hash of the keystore are added to the Facebook developer account’s basic settings. Additionally, ensure that the key hash of the Google Play integrity is also added to the Facebook developer account’s basic settings otherwise you will have the same issue as “Sign in with Google”.

7. Apple and Google Play Store Details

For submitting apps to Google Play Store and Apple Store you need to fill in information with details in a proper manner.

8. Code, Libraries and Testing

Before going live you need to remove all unwanted codes, consoles, unused SDKs, Extra Files, and Other Resources. You need to do proper testing before uploading the app to Live.

9. Account and Features

If your app contains login and authentication with a feature you need to provide the user “Delete Account” feature because it’s required by apple and Google. If your app contains a chat type of feature you also need to include “Report chat/user” and “Block chat/user” features in your app.

10. Payment Integration

If your app contains any payment related integration or feature you have to take care of modes. If your app concept contains features of Digital Goods like “Purchase Song”, “Subscription”, “Coin in Game”, etc you need to implement in-app purchases for that. Otherwise, your app rejection can be high. If your app feature is related to physical things like “Food Delivery”, and “E-commerce” then you can add any payment mode and integration.

You can get more requirements related to uploading from this document.

coma

Conclusion :

In this article, I have provided all the required information that you need to know before uploading your mobile app to respected stores. These things can be useful to prevent the rejection of your app from stores. This note can be helpful only at the time of uploading your app.

By exploring the unique challenges and considerations associated with both Android and iOS platforms, developers armed with React Native have gained insights into optimizing their applications for a wide user base.

!! Enjoy, Keep, and Do Delicious Coding !! 🙂🙂

Ronak K

React-Native Developer

Ronak is a React-Native developer with more than 4 years of experience in developing mobile applications for Android and iOS. He is dedicated to his work and passion. He worked in different kinds of application industries that have responsive designs. He also has knowledge of how to make an app with expo cli and react-native web and some basic understanding of react.js.

Keep Reading

Keep Reading

Struggling with EHR integration? Learn about next-gen solutions in our upcoming webinar on Mar 6, at 11 AM EST.

Register Now

Let's create something together!