This is the react-native codebase for the Master Mind application.
- Run
npm install
- Run
cd ios && pod install
to install iOS native libraries
- Need CocoaPods installed. Install it globally with
brew install cocoapods
- Run
npm start
on a separate terminal to start the package server - Run
react-native run-ios
to start an iOS simulator
Currently, we use Bitrise (pw in Keyweb) for deployments to Apple's "App Store" (iOS) and Google's "Play Store" (Android).
Warning: The incrementBuild
command can't update String instances of the version. Failing to update all instances of the version will result in Apple or Google rejecting the app binary.
- Run
npm run incrementBuild
- Open
src/config.js
and manually increment theBUILD
andVERSION
strings in thebaseConfig
:
const baseConfig = {
VERSION : 'v0.1.1',
BUILD : '10',
SYSTEM_ID : 'imagineSystemId',
PROJECT_ID : 'imagineProjectId',
}
- Open
android/app/build.gradle
. Manually update theversionName
string:
defaultConfig {
applicationId "com.dataquest.mastermind"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 10
versionName "v0.1.1 build 10"
}
- Open
android/app/src/main/AndroidManifest.xml
. Manually update theandroid:versionCode
andandroid:versionName
strings:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dataquest.mastermind"
android:versionCode="10"
android:versionName="v0.1.1 build 10">
- Increment the value of the
CFBundleShortVersionString
inios/mastermind/Info.plist
- Increment version in
package.json
if it's a new version - Ensure that all the version / build codes that
incrementBuild
automagically incremented actually did increment. - Commit these changes to your branch and push to the branch's remote.
- Go to Bitrise's dashboard (credentials in Keyweb)
- Open the
mastermind-native-ui
app. - Click on "Start/Schedule a Build"
- Enter your branch name into the Branch field
- Type in the new version name into the Message field
- Select the
deploy-ios
workflow for iOS to deploy to iOS - Repeat steps 7, 8, and 9, and then select the
deploy-android
workflow to deploy to Android
- Prototype here
- Project Managment Lead: Hannah Sloan
- Design Lead: Mona Bazzaz
- Development Lead: Michael Wedd
- Developers: Michael Jin
If you run into build errors, follow the below steps in turn, stopping when you're able to successfully build the app:
- Restart the packager server (Metro/Haste)
- Use these terminal commands in the UI repo root to clear react and packager server caches:
watchman watch-del-all
rm -rf $TMPDIR/react-*
rm -rf $TMPDIR/haste-*
rm -rf $TMPDIR/metro-*
- Open XCode and hold the keys
Cmd + Shift + K
to clean the project