https://github.com/wilmoore/react-native-expo-turtle-build-and-upload
A set of GNU Make targets for building and uploading React Native application releases for iOS and Android.
https://github.com/wilmoore/react-native-expo-turtle-build-and-upload
altool appstore appstoreconnect expo gnu-make-library gnu-makefile ios make makefile react- turtle-cli xcrun
Last synced: 3 months ago
JSON representation
A set of GNU Make targets for building and uploading React Native application releases for iOS and Android.
- Host: GitHub
- URL: https://github.com/wilmoore/react-native-expo-turtle-build-and-upload
- Owner: wilmoore
- License: mit
- Created: 2020-04-12T03:55:34.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-14T06:54:55.000Z (about 5 years ago)
- Last Synced: 2025-01-06T14:47:12.406Z (5 months ago)
- Topics: altool, appstore, appstoreconnect, expo, gnu-make-library, gnu-makefile, ios, make, makefile, react-, turtle-cli, xcrun
- Language: Makefile
- Homepage:
- Size: 20.5 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# React Native Expo Turtle Build & Upload
> Developed with ♥ and sponsored by [Polyglot](https://realpolyglot.dev) and [Happii LLC](https://apps.apple.com/us/developer/happii-llc/id1107883445).[](https://travis-ci.org/wilmoore/react-native-expo-turtle-build-and-upload) [](https://www.npmjs.org/package/react-native-expo-turtle-build-and-upload) [](https://www.npmjs.org/package/react-native-expo-turtle-build-and-upload) 
[react-native-expo-turtle-build-and-upload][react-native-expo-turtle-build-and-upload] is a set of [GNU Make][GNU Make] targets for building and uploading React Native application releases for iOS and Android. It exposes a GNU Make file `build-and-upload` in the directory `node_modules/react-native-expo-turtle-build-and-upload` which you must include in your project's `makefile`.

## Requirements
- A [React Native][React Native] application bootstrapped via [`expo init`](https://expo.io/learn).
- [Xcode Command Line Tools][Xcode Command Line Tools] (`xcode-select --install`).
- [fastlane][fastlane] (`brew install fastlane && brew link fastlane`).## Installation & Setup
###### npm
```
npm install react-native-expo-turtle-build-and-upload --save-dev
```###### yarn
```
yarn add react-native-expo-turtle-build-and-upload --dev
```###### configure `app.json`
- [iOS][iOS]
- [Android][Android]###### setup environment variables
- `CERTIFICATE_ROOT`: directory containing `ios_distribution.mobileprovision` and `ios_distribution.p12`.
- `EXPO_USERNAME`: Expo account username.
- `EXPO_PASSWORD`: Expo account password.
- `EXPO_APPLE_TEAM_ID`: Apple Team ID - (a 10-character string like `Q2DBWS92CA`).
- `EXPO_IOS_DIST_P12_PASSWORD`: iOS Distribution Certificate password.
- `IOS_APP_UPLOAD_USERNAME`: Apple Developer account username.
- `IOS_APP_UPLOAD_PASSWORD`: Apple Developer account application-specific password.
- `EXPO_SDK_VERSION`: Expo SDK version of your app.###### add the following line to your [`makefile`][`makefile`]
```
include node_modules/react-native-expo-turtle-build-and-upload/build-and-upload
```## Available Targets
0. `turtle-build-ios`
0. `to-appstore`
0. `turtle-build-android`
0. `to-playstore`## Usage
###### build `ios_distribution.ipa` for the app store
```
make turtle-build-ios
```###### upload `ios_distribution.ipa` to the app store
```
make to-appstore
```###### build `android_distribution.apk` for the app store
```
make turtle-build-android
```###### upload `android_distribution.apk` to the play store
```
make to-playstore
```## CI
#### Expo
- [Building Standalone Apps on Your CI - Expo Documentation][Building Standalone Apps on Your CI - Expo Documentation]#### bitrise
- [Using the Generic File Storage][Using the Generic File Storage]
- [bitrise: Build Expo apps with turtle-cli][bitrise: Build Expo apps with turtle-cli]## Reference
- [Including Other Makefiles][Including Other Makefiles]## Inspiration
- [Modern Make][Modern Make]---
[Android]: https://docs.expo.io/versions/latest/workflow/configuration/#android
[bitrise: Build Expo apps with turtle-cli]: https://discuss.bitrise.io/t/build-expo-apps-with-turtle-cli/7916/2
[Building Standalone Apps on Your CI - Expo Documentation]: https://docs.expo.io/versions/latest/distribution/turtle-cli
[fastlane]: https://fastlane.tools
[GNU Make]: https://www.gnu.org/software/make
[Including Other Makefiles]: https://www.gnu.org/software/make/manual/make.html#Include
[iOS]: https://docs.expo.io/versions/latest/workflow/configuration/#ios
[Modern Make]: https://github.com/tj/mmake
[React Native]: https://reactnative.dev
[react-native-expo-turtle-build-and-upload]: https://github.com/wilmoore/react-native-expo-turtle-build-and-upload
[Using the Generic File Storage]: https://devcenter.bitrise.io/tutorials/how-to-use-the-generic-file-storage/#uploading-files-to-generic-file-storage-on-bitriseio
[Xcode Command Line Tools]: https://developer.apple.com/library/archive/technotes/tn2339/_index.html
[`makefile`]: https://github.com/wilmoore/react-native-expo-turtle-build-and-upload/blob/master/makefile