diff options
author | Trevor Johns <trevor@sparkledog.net> | 2014-11-07 15:27:21 +0000 |
---|---|---|
committer | Trevor Johns <trevor@sparkledog.net> | 2014-11-07 15:27:21 +0000 |
commit | 91e54a578143947f812760f760cff2b315817df4 (patch) | |
tree | 6091c2789f5888940889fc791edb673feb87a8a3 | |
parent | f2e87424ea7cc0c3f8022f984966091ea746a23e (diff) | |
parent | d39e9a2d5383ebd0159f5f0f1ae150cc7494b7bb (diff) | |
download | iosched-91e54a578143947f812760f760cff2b315817df4.tar.gz |
Merge pull request #74 from eyecatchup/master
Update BUILDING.md
-rw-r--r-- | doc/BUILDING.md | 153 |
1 files changed, 89 insertions, 64 deletions
diff --git a/doc/BUILDING.md b/doc/BUILDING.md index 9bdd842..8f96633 100644 --- a/doc/BUILDING.md +++ b/doc/BUILDING.md @@ -12,24 +12,24 @@ See the License for the specific language governing permissions and limitations under the License. - # How to build IOSched -Note: while these instructions allow you to build iosched, much of the -functionality that depends on server APIs won't work because in order to -do that you need to configure your own project in Google Developer -Console, create API keys, etc. For more information about what you -need to set up, refer to [Server side setup](#server-side-setup). +This is a Gradle-based project that works best with [Android Studio]. -This is a Gradle-based project that works best with -[Android Studio](http://developer.android.com/sdk/installing/studio.html) +<hr> +> __Note I__: While the instructions below allow you to build IOSched, much of + the functionality that depends on server APIs won't work because in order to + do that you need to configure your own project in Google Developer + Console (create API keys, etc). These additional steps required to set up, + are outlined in the [Server side setup] section in this document. -> __NOTE__: Building the project as-is requires the Android Wear SDK, which you - can download from http://developer.android.com/wear/. If you wish to build - without Android Wear support, please refer to the [Building without Android - Wear](#building-without-android-wear) section. +> __NOTE II__: If you NOT wish to build with Android Wear support, further + details can be found in the [Building without Android Wear] section in this + document. + +<hr> -To build the app: +## Building the app 1. Install the following software: - Android SDK: @@ -40,17 +40,16 @@ To build the app: http://developer.android.com/sdk/installing/studio.html 2. Run the Android SDK Manager by pressing the SDK Manager toolbar button - in Android Studio or by running the 'android' command in a terminal + in Android Studio or by running the `android` command in a terminal window. - 3. In the Android SDK Manager, ensure that the following are installed, and are updated to the latest available version: - Tools > Android SDK Platform-tools (rev 21 or above) - Tools > Android SDK Tools (rev 23.0.5 or above) - Tools > Android SDK Build-tools version 20 - Tools > Android SDK Build-tools version 21 (rev 21.0.2 or above) - - Android 4.4W > SDK Platform (API 20) + - Android 4.4W2 > SDK Platform (API 20) - Android 5.0 > SDK Platform (API 21) - Extras > Android Support Repository - Extras > Android Support Library @@ -59,7 +58,7 @@ To build the app: 4. Create a file in your working directory called local.properties, containing the path to your Android SDK. Use local.properties.example as a - model. + model. _(On Windows, use a double-backslash (`\\`) as a path separator!)_ 5. Import the project in Android Studio: @@ -67,89 +66,115 @@ To build the app: 2. Navigate to and choose the settings.gradle file in this project 3. Press OK -6. Add your debug keystore to the project (save it as android/debug.keystore), +6. Add your debug keystore to the project (save it as android/debug.keystore), or modify the build.gradle file to point to your key. + > __NOTE__: In debug mode, you sign your app with a debug certificate + generated by the Android SDK. _(This certificate has a private key and a + known password.)_ To sign your app in release mode, you need to generate + your own certificate. If you haven't done so yet, please refer to the + [App Signing] guide for further details. Also, if you wish to build with + Android Wear support, for further details please refer to the guide + [Packaging Wearable Apps]. + 7. Choose Build > Make Project in Android Studio or run the following - command in the project root directory: - ``` + command in the project root directory: + ```sh ./gradlew clean assembleDebug - ``` -8. To install on your test device: + ``` - ``` +8. To install on your test device: + ```sh ./gradlew installDebug - ``` - + ``` ## Building without Android Wear -If you do not wish to build the Android Wear component, you can remove or -comment out the following line on android/build.gradle: - - wearApp project(":Wearable") - -Also, remove ':Wearable' from settings.gradle, leaving only ':android'. +If you do NOT wish to build the Android Wear component, you need to make the two +changes below. + 1. Open android/build.gradle and remove (or comment out) the following line: + ``` + wearApp project(":Wearable") + ``` + 2. Open settings.gradle and remove `':Wearable'`, leaving only `':android'`. # Server-side setup -These steps are optional, in the sense that IOSched will build and run -even if you don't set up the server side. However, unless you perform -this setup, your build won't be able to use any of the Google APIs -such as Google sign in, Google Drive integration, Google Maps integration, -etc. So following the instructions in this section is highly -recommended. +> __NOTE__: These steps are optional, in the sense that IOSched will build and + run even if you don't set up the server side. However, unless you perform + this setup, your build won't be able to use any of the Google APIs such as + Google sign in, Google Drive integration, Google Maps integration, etc. So + following the instructions in this section is highly recommended. -0. Change the project's package name to your own package name. -To do that, you can set the "package" attribute of the <manifest> -tag in AndroidManifest.xml. +1. Change the project's package name to your own package name. To do that, you +can set the "package" attribute of the <manifest> tag in AndroidManifest.xml. -1. Create a project in the Google Developers Console, -at https://cloud.google.com/console +2. Create a project in the Google Developers Console, at + https://cloud.google.com/console -2. Note your project's Project ID. It is a 11-12 digit sequence -that appears in the URL, indicated by ########### below: +3. Note your project's Project ID. It is a 11-12 digit sequence that appears in +the URL; indicated by ########### below: ``` https://console.developers.google.com/project/###########/... ``` Write down this project ID number you will need it soon. -3. In the APIs and Auth section, enable these APIs: +4. Navigate to "APIs and auth" > "APIs" and enable all of the following APIs: - Drive API - Google Cloud Messaging for Android - Google Maps Android API v2 - Google+ API - YouTube Data API v3 -4. In the Credentials section, create a Client ID for Android applications -with your package name and your certificate fingerprint. As a reminder, -you can get your debug certificate fingerprint by issuing this command: - ``` +5. Navigate to "APIs and auth" > "Credentials" and create a new Client ID for +Android applications with the package name (as defined in AndroidManifest.xml in +Step 1) and your debug certificate fingerprint. As a reminder, to get your debug +certificate fingerprint, run the following command (on Windows, substitute +`%USERPROFILE%` for `$HOME`): + ```sh keytool -exportcert -alias androiddebugkey \ -keystore $HOME/.android/debug.keystore -list -v ``` - It's also advisable to create a Client ID corresponding to your release + It's also advisable to create a 2nd Client ID corresponding to your release certificate as well. To get your release certificate's fingerprint, run: - ``` + ```sh keytool -exportcert -alias your-key-name \ -keystore /path/to/your/release/keystore/file -list -v ``` - -5. Still in the Credentials section, create an API Key for Public API -access. The key's type is Key for Android applications, and you should -add both your debug and release certificate fingerprints in the -list of accepted certificates. Note the API key you created. It's -a long alphanumeric string with digits, letters and with a -few underscores. - -6. Enter your API Key from Step 5 into this file: + > __NOTE__: In order to create a Client ID, you might be required to set up + the consent screen first! _(That's the screen that will be shown to + users whenever you request access to their private data using your + Client ID.)_ To do so, go to "APIs and auth" > "Consent screen", enter a + "PRODUCT NAME" and click "Save". Finally, go back to Step 5 to create + your Client ID(s). + +6. Still at the "Credentials" page, create an API Key for Public API access. +As a key type use _"Key for Android applications"_, and you should add both your +debug and release certificate fingerprints in the list of accepted certificates. +Note the API key you created. _(It's a long alphanumeric string that may contain +digits, letters and underscores.)_ + +7. Enter the API key from Step 6 into this file: ``` android/src/main/res/values/maps_api_key.xml ``` -7. Enter your API key in the YOUTUBE_API_KEY constant in Config.java +8. Enter the API key from Step 6, as a value for the `YOUTUBE_API_KEY` constant, + into this file: + ``` + android/src/main/java/com/google/samples/apps/iosched/Config.java + ``` + +<hr> + +Done. IOSched should now work with Google sign in, Google Drive and Maps +integration. Note that we did NOT include setting up GCM. For more information +about this, see the [CUSTOM.md] file. -Done. IOSched should now work with Google sign in, Google Drive -integration and Maps integration. Note that we did NOT include -setting up GCM. For more information about this, see [CUSTOM.md](CUSTOM.md). +[Android Studio]:http://developer.android.com/sdk/installing/studio.html +[App Signing]:http://developer.android.com/tools/publishing/app-signing.html#studio +[Building without Android Wear]:https://github.com/google/iosched/blob/master/doc/BUILDING.md#building-without-android-wear +[CUSTOM.md]:https://github.com/google/iosched/blob/master/doc/CUSTOM.md +[Packaging Wearable Apps]:http://developer.android.com/training/wearables/apps/packaging.html +[Server side setup]:https://github.com/google/iosched/blob/master/doc/BUILDING.md#server-side-setup |