This is the the mobile app for Technica's 2018 hackathon.
-
npm install
-
react-native link
-
react-native run-ios
orreact-native run-android
sudo gem install cocoapods
- Make sure you have version
pod --version
outputs 1.5.3 (not 1.4.0)
cd ios && pod install && cd ..
Because we are using AWS mobile hub in our project you will need to pull the required configuration files to connect to the AWS instance. Once this is set up you will only need to run aws mobile pull
when adding new AWS capabilities to the app
-
Request cli credential access from somebody (either Tal or someone on mobile backend)
-
Configure aws cli if you haven't already https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html, make sure your credentials are saved in
~/.aws/credentials
-
Configure awsmobile cli https://docs.aws.amazon.com/aws-mobile/latest/developerguide/aws-mobile-cli-reference.html.
-
After you run
awsmobile configure
, it will use your cli credentials to find the technica mobile app project -
You will need to run
awsmobile init 6308bcc8-4bd7-4214-b5c1-1b1055829818
to connect to the backend -
Run
awsmobile pull
from now on to update theaws-exports.json
this file is read byApp.js
to configure aws capabilities.
-
Log in to the firebase console here
-
Click 'Cloud Messaging' on the right side if it's not already on that page
-
Click new message
-
For target select 'Single device', paste the fcm token spit out by the debugger when the app opens
-
Enter in a message text
-
Click Advanced and enter a title
-
Click send message
-
Try sending a message while the app is open and once again while app is closed. Both should display the same (you can just duplicate the first message and send it again).
-
In the project root run the command
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
-
Open up android studio
-
Click Build -> Generate Signed APK
-
Click next, then select the keystore path (ask somebody for the
technica-release-key.keystore
file) -
For key alias enter
technicasigningkey
-
For the key and store password enter the key password (ask the same person for the password)
-
Select destination folder as
.../technica-mobile-app/android/app/build/outputs/apk
-
Select build type
release
-
Select v1 and v2 ignature versions
-
Select build, the apk will end up in the
outputs/apk/release
-
In the
android/app/build.gradle
, bump up the version code by 1 and version name by minor / major release order. -
Commit this update and upload APK to google play store under releases
- Under
ios/technica/Info.plist
, comment out the following lines:
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
-
Download the release provisioning profile from the apple dev account, double click to load into xcode, it should be called
Technica Distribution Provisioning Profile
-
Under general tab, in the technica target, make sure it is selected under release signing section.
-
Select generic iOS device under build tager, and Press Command-B to build the app, hope it works
-
If that succeeds, click Product -> Archive
-
Once the archive is created, click Window -> Organizer, you should see the archive you just created.
-
Select the archive and click validate app, leave everything checked, and select the Technica Distribution provisioning profile
-
If this succeeds, click distribute app to upload it to app store connect.
-
git checkout ios/technica/Info.plist
in order to add the localhost exception back (do this before step 10 since it will modifyInfo.plist
, if you don't do this building on emulator won't work for debug version) -
Increment the version and build number under the general tab, then commit the version change (can combine android version bump into one commit).
-
React-Native
-
"Flux"