{"id":17274146,"url":"https://github.com/davidthorn/react-native","last_synced_at":"2025-08-12T16:39:23.450Z","repository":{"id":122658350,"uuid":"168800699","full_name":"davidthorn/react-native","owner":"davidthorn","description":null,"archived":false,"fork":false,"pushed_at":"2019-02-02T06:13:44.000Z","size":579,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T13:29:24.853Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidthorn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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":"2019-02-02T06:08:12.000Z","updated_at":"2019-02-02T06:13:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"1145443b-933a-43e2-943f-5ec600b614c8","html_url":"https://github.com/davidthorn/react-native","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/davidthorn/react-native","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidthorn%2Freact-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidthorn%2Freact-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidthorn%2Freact-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidthorn%2Freact-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidthorn","download_url":"https://codeload.github.com/davidthorn/react-native/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidthorn%2Freact-native/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270099144,"owners_count":24527027,"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","status":"online","status_checked_at":"2025-08-12T02:00:09.011Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-10-15T08:53:13.795Z","updated_at":"2025-08-12T16:39:23.411Z","avatar_url":"https://github.com/davidthorn.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native\n\nThe react native documentation requests that you use expo-cli but this comes with some caveats if you are creating apps for clients.\n\nUsing the `react-native-cli` it is just as simple to use. It just requires some configuration.\n\n# Node version\n\nYour node version will require to be 8.3 or newer.\n\nIf you are not using `nvm` already then I suggest installing it now as you are going to need it.\n\n[https://github.com/creationix/nvm#install-script](https://github.com/creationix/nvm#install-script)\n\n# Install node version 8.3 or newer. \n\nTo check out the versions of node look at the following link:\n\n[https://github.com/nodejs/Release#release-schedule](https://github.com/nodejs/Release#release-schedule)\n\nI would recommend using a minimum of version 10 because the 'End-of-life' is April 2021. This gives you enough time to know that the version of node will be good for a couple of years.\n\nLets go ahead and install `10.5.1`\n\n[https://nodejs.org/download/release/latest-v10.x/](https://nodejs.org/download/release/latest-v10.x/)\n\n```bash\nnvm install 10.15.1\n```\n\n\u003e use 10.15.1\n\n```bash\nnvm use 10.15.1\n```\n\n# Install react-native-cli\n\nYou will need to install `react-native-cli` now if this is the first time you have `use`'d this node version.\n\n\n```bash\nnpm install -g react-native-cli\n/home/david/.nvm/versions/node/v10.15.1/bin/react-native -\u003e /home/david/.nvm/versions/node/v10.15.1/lib/node_modules/react-native-cli/index.js\n+ react-native-cli@2.0.1\nadded 41 packages from 15 contributors in 2.42s\n```\n\n# Initialise project\n\nSo lets go ahead and make our example project using typescript which will be located in the `exampleapp` folder.\n\n```bash\nreact-native init exampleapp --typescript\n```\n\n# Run the app\n\nIf everything was successful then you should see the following output:\n\n```bash\nTo run your app on iOS:\ncd /home/david/react-app/exampleapp\nreact-native run-ios\n- or -\nOpen ios/exampleapp.xcodeproj in Xcode\nHit the Run button\nTo run your app on Android:\ncd /home/david/react-app/exampleapp\nHave an Android emulator running (quickest way to get started), or a device connected\nreact-native run-android\n```\n\n# Enable Transfer files\n\nMake sure when you plug the phone in to select Transfer files.\n\n![Enable USB Debugging](./screenshots/transfer_files.jpg)\n\n\n# Enable USB Debugging\n\n\n![Enable USB Debugging](./screenshots/usb_debug.jpg)\n\n\n# Install app on phone\n\n```bash\ncd exampleapp\nreact-native run-android\n```\n\n# Uninstalling the application\n\nBe warned if you delete the app directly on the phone, you are going to have lots of problems with reinstalling it again using `react-native run-android` command.\n\nUse the following command to safely remove the app.\n\n```bash\ncd android\n./gradlew uninstallDebug\n```\n\nIf you don't do this and uninstall the app directly on the phone you will receive this problem.\n\n```bash\nBUILD SUCCESSFUL in 6s\n28 actionable tasks: 1 executed, 27 up-to-date\nadb server version (36) doesn't match this client (39); killing...\n* daemon started successfully\nRunning /home/david/Android/Sdk/platform-tools/adb -s HYF0218928043367 reverse tcp:8081 tcp:8081\nadb server version (39) doesn't match this client (36); killing...\n* daemon started successfully *\nStarting the app on HYF0218928043367 (/home/david/Android/Sdk/platform-tools/adb -s HYF0218928043367 shell am start -n com.exampleapp/com.exampleapp.MainActivity)...\nStarting: Intent { cmp=com.exampleapp/.MainActivity }\nError type 3\nError: Activity class {com.exampleapp/com.exampleapp.MainActivity} does not exist.\n```\n\n# Generating Signed APK\n\nTo install the application withouth having to have a running server your machine you will be required to create a signed apk which can be installed to your phone.\n\nFollowing the instructions which are outlined in the link below:\n\n[https://facebook.github.io/react-native/docs/signed-apk-android](https://facebook.github.io/react-native/docs/signed-apk-android)\n\nOr!!\n\nDo it this way.\n\nThe command below will ask you a whole bunch of questions, answer all of them until it completes.\n\n```bash\nkeytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000\n\nEnter keystore password: 12345678\nRe-enter new password:  12345678\nWhat is your first and last name?\n  [Unknown]:  David Thorn\nWhat is the name of your organizational unit?\n  [Unknown]:  exampleapp\nWhat is the name of your organization?\n  [Unknown]:  exampleapp\nWhat is the name of your City or Locality?\n  [Unknown]:  example app city\nWhat is the name of your State or Province?\n  [Unknown]:  example app state\nWhat is the two-letter country code for this unit?\n  [Unknown]:  DE\nIs CN=David Thorn, OU=exampleapp, O=exampleapp, L=example app city, ST=example app state, C=DE correct?\n  [no]:  yes\n\nGenerating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days\n        for: CN=David Thorn, OU=exampleapp, O=exampleapp, L=example app city, ST=example app state, C=DE\nEnter key password for \u003cmy-key-alias\u003e\n        (RETURN if same as keystore password):\n[Storing my-release-key.keystore]\n\nWarning:\nThe JKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using \"keytool -importkeystore -srckeystore my-release-key.keystore -destkeystore my-release-key.keystore -deststoretype pkcs12\".\n\n```\n\nYou should now have a `my-release-key.keystor` file in your folder.\n\n# Setting up gradle variables\n\nPlace the `my-release-key.keystore` file under the android/app directory in your project folder.\nEdit the file `~/.gradle/gradle.properties` or android/gradle.properties, and add the following (replace ***** with the correct keystore password, alias and key password),\n\n```groovy\nMYAPP_RELEASE_STORE_FILE=my-release-key.keystore\nMYAPP_RELEASE_KEY_ALIAS=my-key-alias\nMYAPP_RELEASE_STORE_PASSWORD=12345678\nMYAPP_RELEASE_KEY_PASSWORD=12345678\n```\n\n# Adding signing config to your app's gradle config\n\nEdit the file `android/app/build.gradle` in your project folder, and add the signing config,\n\n```groovy\n...\nandroid {\n    ...\n    defaultConfig { ... }\n    signingConfigs {\n        release {\n            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {\n                storeFile file(MYAPP_RELEASE_STORE_FILE)\n                storePassword MYAPP_RELEASE_STORE_PASSWORD\n                keyAlias MYAPP_RELEASE_KEY_ALIAS\n                keyPassword MYAPP_RELEASE_KEY_PASSWORD\n            }\n        }\n    }\n    buildTypes {\n        release {\n            ...\n            signingConfig signingConfigs.release\n        }\n    }\n}\n...\n```\n\n# Build Release\n\nSimply run the following command in a terminal:\n\n```bash\ncd android\n./gradlew assembleRelease\n```\n\nBefore you go ahead and install the app to your phone, make sure that you uninstall any other version which you may have installed already.\n\n```bash\n./gradlew uninstallDebug\n```\n\n# Thats It\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidthorn%2Freact-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidthorn%2Freact-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidthorn%2Freact-native/lists"}