{"id":26452960,"url":"https://github.com/teallabs/react-native-init","last_synced_at":"2025-06-26T16:10:05.328Z","repository":{"id":89071121,"uuid":"130083871","full_name":"teallabs/react-native-init","owner":"teallabs","description":"🔥 🎉 A React-Native starter kit with React-Navigation + Code Push + Onesignal + Sentry + Google Signin 🎉 🔥","archived":false,"fork":false,"pushed_at":"2018-07-29T06:24:38.000Z","size":6889,"stargazers_count":72,"open_issues_count":1,"forks_count":8,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-04T13:44:41.750Z","etag":null,"topics":["codepush","googlesignin","onesignal-notifications","react-native","reactnavigation","redux","sentry","starter-kit"],"latest_commit_sha":null,"homepage":"","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teallabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-18T15:30:59.000Z","updated_at":"2025-02-05T01:51:23.000Z","dependencies_parsed_at":"2023-06-13T19:15:29.499Z","dependency_job_id":null,"html_url":"https://github.com/teallabs/react-native-init","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/teallabs/react-native-init","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teallabs%2Freact-native-init","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teallabs%2Freact-native-init/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teallabs%2Freact-native-init/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teallabs%2Freact-native-init/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teallabs","download_url":"https://codeload.github.com/teallabs/react-native-init/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teallabs%2Freact-native-init/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262099744,"owners_count":23258671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codepush","googlesignin","onesignal-notifications","react-native","reactnavigation","redux","sentry","starter-kit"],"created_at":"2025-03-18T18:40:42.802Z","updated_at":"2025-06-26T16:10:05.307Z","avatar_url":"https://github.com/teallabs.png","language":"Objective-C","readme":"# React Native Init\n\n:tada::fire: A React-Native starter kit with React-Navigation + Code Push + Onesignal + Sentry + Google Signin :tada::fire:\n\n## Includes\n\n- [React](https://github.com/facebook/react) \u0026 [React Native](https://github.com/facebook/react-native)\n- [React Navigation](https://reactnavigation.org/)\n- [Redux](https://github.com/reactjs/redux)\n- [Code Push](https://github.com/Microsoft/react-native-code-push)\n- [Sentry](https://github.com/getsentry/react-native-sentry)\n- [OneSignal](https://github.com/geektimecoil/react-native-onesignal)\n- [Google SignIn](https://github.com/devfd/react-native-google-signin)\n\n## Requirements\n\n- Globally installed [Node](https://nodejs.org/) 7.x or better\n- [Xcode](https://developer.apple.com/xcode/) for iOS Development\n- [Android SDK](https://developer.android.com/sdk/) for Android development\n- [React-Native-CLI](https://facebook.github.io/react-native/docs/getting-started.html)\n\n      \t```\n      \t\u003e npm install -g react-native-cli\n      \t```\n\n# Get Started\n\n1.  ## :arrow_down: Installation\n    Fire command prompt and run following commands :\n    ```\n    $ git clone https://github.com/teallabs/react-native-init\n    $ cd react-native-init \u0026\u0026 npm install\n    ```\n2.  ## Project Name \u0026 Bundle Id change\n\n    We recommend you renaming your _project-name_ \u0026 _bundle-id_, as this would be essential for your whole project configuration. Following steps will help you rename your project :\n\n    - Install [react-native-rename](https://github.com/junedomingo/react-native-rename)\n      `npm install react-native-rename -g`\n    - For renaming app :\n      `react-native-rename \u003cnewName\u003e`\n    - For changing bundle id :\n      `// For Android react-native-rename \u003cnewName\u003e -b \u003cbundleIdentifier\u003e //For iOS Open project in Xcode, Go to General tab and change Bundle Identifier`\n      ![bundle-id](https://image.ibb.co/kSBQnS/Bundle_Id_IOS.png)\n\n3.  ## :clipboard: Documentation :clipboard:\n\n    To get this project running with all dependencies, follow steps given below :\n\n    1.  ## Google Signin\n\n        We are using [react-native-google-signin](https://github.com/devfd/react-native-google-signin) for Google Signin. For user authentication and push notification we will be using [Firebase](https://firebase.google.com/). First we setup our firebase app for both platforms.\n\n        - Create a new [account](https://firebase.google.com/) / Log in to your [account](https://firebase.google.com/)\n        - Create a new project with required information\n\n        ### Generate Release/Debug keystores\n\n        Fire up console in your project folder and run following command :\n\n        ```\n        // For Debug\n        keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000\n\n        // For Release\n        keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000\n        ```\n\n        \u003e Move the .keystore file generated to android/app folder.\n\n        Your _gradle.properties_ file in _android / app_ should have following settings. The _store and key password_ should be same as what you entered while creating Release keystore file.\n\n        ```\n        MYAPP_RELEASE_STORE_PASSWORD= /* Password of release keystore */\n        MYAPP_RELEASE_KEY_PASSWORD= /* Enter password here*/\n        ```\n\n        Configure Firebase project for both android and iOS app individually.\n        First we will start with setting up firebase for android app.\n\n\n    \t1.  **Android**\n    \tYou will be needing  _Bundle Identifier_ from _build.gradle_ in next step.\n\n    \t```\n    \tProjectName\n    \t|_ android\n    \t|_ _ app\n    \t|_ _ _ build.gradle\n    \t```\n    \t![build.gradle](https://image.ibb.co/hk8Nz7/Bundle_Id_Android.png)\n\n    \tEnter bundle id from build.gradle to add firebase to android app. Register App and skip rest of the steps.\n    \t![firebase android](https://image.ibb.co/cdYY6n/Android_Fire.png)\n\n    \tYou need to generate SHA-1 and add the generated fingerprint to your firebase config for android app.\n    \t```\n    \tRun following commands in project-name \u003e android \u003e app\n\n    \t// For Debug\n    \tkeytool -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android\n    \t// For Release\n    \tkeytool -list -v -keystore my-release-key.keystore -alias my-key-alias -storepass [storepass] -keypass [keypass]\n    \t```\n\n\n\n\n    \tGo to Firebase \u003e Project Settings ![enter SHA](https://image.ibb.co/hY3t6n/Screen_Shot_2018_04_18_at_1_10_11_PM.png)\n\n\n\n    \tAfter adding both SHA-1 fingerprint of Debug and Release download _google-services.json_ file and replace it with your *android/app/google-services.json file.*\n\n    \t2.  **iOS**\n\n    \tAdd new iOS app in your Firebase project.\u003cbr/\u003e  \n\n    \tYou will get bundle identifier from Xcode / General tab. Register and skip other steps.\n    \t![bundle-id](https://image.ibb.co/kSBQnS/Bundle_Id_IOS.png)\n\n\n    \tOnce done registering app, download and open the *GoogleService-Info.plist* file.\n\n    \tOpen Xcode and switch to Info tab. You need to give _url types_ which we will get from *GoogleService-Info.plist* file.\n\n\n    \tGet Bundle Id and Reverse Client Id from *GoogleService-Info.plist* file. Enter respective fields in Xcode.\n\n    \t![bundleid](https://image.ibb.co/i2dm97/Bundle_IDReverser.png)\n\n    \tNavigate to *App.js* file and change *iosClientId* in *hasPlayServices* and uncomment that line.\u003cbr/\u003e\n\n\n\n    \t![hasplayServices](https://image.ibb.co/e2BChS/ClientID.png)\n\n\n\n    \tFor more configuration in Google Signin, follow instructions from [React-Native-Google-Signin](https://github.com/devfd/react-native-google-signin) .\n    2.  ## OneSignal\n    \t[OneSignal](https://onesignal.com/) provides a simple interface to push notifications and email.\n    \t* Create an account [here](https://onesignal.com/)\n    \t* Add a new app\n\n    \tFirst we will configure for android app,\n    \t1. **Android**\n    \tOpen your [firebase project](https://console.firebase.google.com) and switch to Cloud Messaging tab and copy Google Server API Key, Google Project Number for configuring android app.\n    \t\t![cloud messaging](https://image.ibb.co/i3HPwn/One_Signal_Android.png)\n\n\n    \t\tNow switch to code editor and make changes as suggested below.\n\n    \t\t```\n    \t\t// Navigate here\n\n    \t\tProjectName\n    \t\t|_ android\n    \t\t|_ _ app\n    \t\t|_ _ _ build.gradle\n    \t\t```\n\n    \t\t![onesignal app id](https://image.ibb.co/bFQG97/One_Singal_Code_Android.png)\n\n    \t\t2. **iOS**\n\n    \t\t\tFor iOS, you will be prompted to give .p12 file. Read from [here].(https://support.magplus.com/hc/en-us/articles/203808748-iOS-Creating-a-Distribution-Certificate-and-p12-File) how to get .p12 file\n    \t\t\tWhen you are done with configuring iOS project\n    \t\t* Now open *AppDelegate.m* in code editor and change *oneSignalAppId* with the one you get on creating a new app on Onesignal platform.\n    \t\t\t```\n    \t\t\tProjectName\n    \t\t\t|_ ios\n    \t\t\t|_ _ ProjectName\n    \t\t\t|_ _ _ AppDelegate.m\n    \t\t\t```\n\n\n\n    \t\t\t![oneSignalAppId](https://image.ibb.co/hjDYNS/IOSOne_Signal.png)\n    3.  ## Sentry\n    \t[Sentry](https://sentry.io/) provides open source error tracking that shows you every crash in your stack as it happens, with the details needed to prioritize, identify, reproduce, and fix each issue.\n\n    \t* Create your account [here](https://sentry.io/signup) / Login [here](https://sentry.io/auth/login/)\n    \t* Add a new project\n    \t* Once you are done creating project open *sentry.properties* file from both android and iOS folder.\n    \t* You have to change Organization name, Project name and auth token.\n    \t\t```\n    \t\t// Navigate here\n\n    \t\tProjectName\n    \t\t|_ android\n    \t\t|_ _ app\n    \t\t|_ _ _ sentry.properties\n    \t\t|\n    \t\t|_ _ ios\n    \t\t|_ _ _ sentry.properties\n    \t\t```\n\n\n\n    \t![onesignal](https://image.ibb.co/n1qUwn/Screen_Shot_2018_04_18_at_2_57_37_PM.png)\n\n    \tIn project settings, you can see your project name written in lower case. Use it for above configuration.\n\n    \tYou can get your organization name from organization settings which is written in lower case.\n\n    \tMigrate [here](https://sentry.io/api) to get _auth.token_ :point_up:\n\n    \tNow open *index.js* and change *ADD_SENTRY_CLIENT_KEY* from DSN(Legacy/Deprecated)\n\n    \t![sentry DSN](https://image.ibb.co/cRym97/Sentry_DSN.png)\n\n    4.  ## Code Push\n\n    \t[CodePush](https://github.com/Microsoft/react-native-code-push) is a cloud service that enables React Native developers to deploy mobile app updates instantly to their user's devices. Following steps will help in configuring CodePush for project.\n    \t1. Install CodePush CLI\n    \t\t```\n    \t\tnpm install -g code-push-cli\n    \t\t```\n    \t2. Create/Login a CodePush account\n    \t\t```\n    \t\t// Register\n    \t\t\u003e code-push register\n    \t\t// Login if registered already\n    \t\t\u003e code-push login\n    \t\t```\n    \t3. Register your app\n    \t\tIf your app targets both iOS and Android, we highly recommend creating separate apps with CodePush. One for each platform.\n\n    \t\t```\n    \t\t// For Android\n    \t\t\u003e code-push app add \u003cApp-Name-Android\u003e android react-native\n\n    \t\t// For iOS\n    \t\t\u003e code-push app add \u003cApp-Name-Ios\u003e ios react-native\n    \t\t```\n    \t\t**For Android**\n\n    \t\t```\n    \t\t\u003e code-push deployment ls \u003cApp-Name-Android\u003e --displayKeys\n    \t\t```\n    \t\tCopy both Debug and Release key in *build.gradle* in\n    \t\t```\n    \t\tProjectName\n    \t\t|_android\n    \t\t|_ _ app\n    \t\t|_ _ _ build.gradle\n    \t\t```\n    \t\t![codepush android](https://image.ibb.co/g83Ewn/Android_Code_Push.png)\n\n    \t\t**For iOS**\n    \t\t```\n    \t\t\u003e code-push deployment ls \u003cApp-Name-Ios\u003e --displayKeys\n    \t\t```\n\n    \t\t![codepush-ios](https://preview.ibb.co/fH1EU7/Code_Push_Ios_1.png)\n    \t\tNote : Change CODEPUSH_KEYs with keys we get from above command.\n\n# :clapper: Start project\n\nYou are now all set to start your project !\n\n```\n// For iOS\n\u003e react-native run-ios\n\n// For Android\n\u003e react-native run-android\n```\n\n# :office: Build your app :office:\n\nWhen your app is ready to ship, you need to individially build _.apk_ and _.ipa_ file for android and iOS respectively.\n\nFor **Android**,\n\n```\ncd android \u0026\u0026 ./gradlew assembleRelease\n```\n\nThe final apk would be generated in\n\n```\nProjectName\n|_android\n|_ _ app\n|_ _ _ build\n|_ _ _ _ outputs\n|_ _ _ _ _ apk\n|_ _ _ _ _ _ app-release.apk\n```\n\nFor **iOS**,\nIt's a long process to build _.ipa_ file for App Store. We will be adding a detailed procedure for this in [wiki](https://github.com/teallabs/react-native-init/wiki) shortly. Meanwhile, you can follow this awesome [blog](https://medium.com/react-native-development/deploying-a-react-native-app-for-ios-pt-1-a79dfd15acb8).\n\n## :poop: Troubleshooting :poop:\n\nIf you have any problem, search for the issues in this repository. If you don't find anything, you can raise an issue [here](https://github.com/Teal-labs-developer/react-starter-init/issues).\n\n## References\n\n- [Generating keystores](https://coderwall.com/p/r09hoq/android-generate-release-debug-keystores)\n\n- [React-Native-Google-Signin](https://github.com/devfd/react-native-google-signin)\n- [CodePush](http://microsoft.github.io/code-push/docs/cli.html)\n- [Checklist for deploying app](https://medium.com/the-react-native-log/checklist-to-deploy-react-native-to-production-47157f8f85ed)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteallabs%2Freact-native-init","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteallabs%2Freact-native-init","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteallabs%2Freact-native-init/lists"}