The official mobile app of the University of Illinois. Powered by the Rokwire Platform.
Flutter v3.3.2
Android Studio 2021.3.1+
xCode 14.2
CocoaPods 1.11.3+
git clone --recurse-submodules https://github.com/rokwire/illinois-app.git
Rokwire app flutter plugin is used by the Illinois app. It should be located in the plugin
subdirectory of the application's root project directory. If it does not exist you need to clone it manually.
cd illinois-app.git
git clone https://github.com/rokwire/app-flutter-plugin.git plugin
Obsolete, not used after version 2.0 inclusive.
Obsolete, not used after version 2.0 inclusive.
JSON data with the following format:
{
"key":"...",
"iv":"..."
}
key
and iv
fields contain strings that are base64 encoded randomly generated 16-bytes AES128 key and IV. These keys are used for decryption of assets/configs.json.enc
from the application assets as well as for the decryption of secretKeys
enctypted string in app config.
- JSON data with the following format:
{
"production": {
"config_url": "https://api.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"dev": {
"config_url": "https://api-dev.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
},
"test": {
"config_url": "https://api-test.rokwire.illinois.edu/app/configs",
"api_key": "XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXXX"
}
}
- For versions prior to 3.0:
- Generate random 16-bytes AES128 key.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the AES.
- Create a data blob that contains the AES key at the beginning followed by the encrypted data.
- Get a base64 encoded string of the data blob and save it as
assets/configs.json.enc
.
Alternatively, you can use AESCrypt.encode from /lib/utils/Crypt.dart to generate content of assets/configs.json.enc
.
- For versions after 3.0 inclusive:
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the key and IV from
assets/config.keys.json
. - Get a base64 encoded string of the encryption result and save it as
assets/configs.json.enc
.
- AES encrypt the JSON string, CBC mode, PKCS7 padding, using the key and IV from
The Firebase configuration file for iOS generated from Google Firebase console.
Contains GoogleMaps API key for the Illinois flavor.
googleMapsApiKey=XXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXX
The Firebase configuration file for Android generated from Google Firebase console.
$ sh ./scripts/prebuild_illinois.sh
$ flutter build apk --no-tree-shake-icons --flavor IllinoisProd -t lib/mainProd.dart
$ flutter build apk --no-tree-shake-icons --flavor IllinoisDev -t lib/mainDev.dart
$ flutter build apk --no-tree-shake-icons --flavor IllinoisTst -t lib/mainTest.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisProd -t lib/mainProd.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisDev -t lib/IllinoisDev.dart
$ flutter build ios --no-tree-shake-icons --flavor IllinoisTst -t lib/mainTest.dart
NB: Product environments: Prod/Dev/Test
--flavor IllinoisProd -t lib/mainProd.dart
--flavor IllinoisDev -t lib/mainDev.dart
--flavor IllinoisTst -t lib/mainTest.dart
NB: For versions prior to 4.2 you may omit the no-tree-shake-icons
build parameter.
NB: You may need to update singing & capabilities content for Runner project by opening ios/Runner.xcworkspace
from xCode