From 900efcc91c980a0b30fc1d3017e33e30198b8eb8 Mon Sep 17 00:00:00 2001 From: Ricardo Cervera Date: Tue, 21 Oct 2014 13:04:05 -0700 Subject: [PATCH] docs: Add details to Packaging Wearable apps. Bug: 17943949 (cherry picked from commit 07c9c63e3dd7ee6c752abed3ba54faa949184ca8) Change-Id: I765285b7e1a17928778ac161c73b2e48b82b54d6 --- .../html/training/wearables/apps/packaging.jd | 66 +++++++++---------- 1 file changed, 31 insertions(+), 35 deletions(-) diff --git a/docs/html/training/wearables/apps/packaging.jd b/docs/html/training/wearables/apps/packaging.jd index b538d6e4b1b03..180f7306d76cc 100644 --- a/docs/html/training/wearables/apps/packaging.jd +++ b/docs/html/training/wearables/apps/packaging.jd @@ -14,7 +14,7 @@ page.title=Packaging Wearable Apps -

When publishing to users, you must package a wearable app inside of a handheld app, +

When publishing to users, you must package a wearable app inside of a handheld app, because users cannot browse and install apps directly on the wearable. If packaged properly, when users download the handheld app, the system automatically pushes the wearable app to the paired wearable. @@ -29,6 +29,14 @@ Android Studio directly to the wearable is required.

To properly package a wearable app in Android Studio:

    +
  1. Include all the permissions declared in the manifest file of the wearable app module + in the manifest file of the handheld app module. For example, if you specify the {@link + android.Manifest.permission#VIBRATE} permission for the wearable app, you must also add that + permission to the handheld app.
  2. + +
  3. Ensure that both the wearable and handheld app modules have the same package name and + version number.
  4. +
  5. Declare a Gradle dependency in the handheld app's build.gradle file that points to the wearable app module:
    @@ -43,39 +51,21 @@ dependencies {
       to specify your release keystore and sign your app. Android Studio exports the signed
       handheld app with the wearable app embedded in it automatically into your project's root folder.
     
    -  

    Alternatively, you can create a signingConfig rule in the wearable and handheld - modules' build.gradle file to sign them with your release key. Both apps must be - signed to have the automatic pushing of the wearable app work. +

    Alternatively, you can sign both apps from the command line using the + Gradle wrapper. Both apps + must be signed to have the automatic pushing of the wearable app work.

    -
    -android {
    -  ...
    -  signingConfigs {
    -    release {
    -      keyAlias 'myAlias'
    -      keyPassword 'myPw'
    -      storeFile file('path/to/release.keystore')
    -      storePassword 'myPw'
    -    }
    -  }
    -  buildTypes {
    -    release {
    -      ...
    -      signingConfig signingConfigs.release
    -    }
    -  }
    -  ...
    -}
    +  

    Store your key file location and credentials in environment variables and run the Gradle + wrapper as follows:

    + +
    +./gradlew assembleRelease \
    +  -Pandroid.injected.signing.store.file=$KEYFILE \
    +  -Pandroid.injected.signing.store.password=$STORE_PASSWORD \
    +  -Pandroid.injected.signing.key.alias=$KEY_ALIAS \
    +  -Pandroid.injected.signing.key.password=$KEY_PASSWORD
     
    -

    Build the handheld app by clicking the Gradle button on the right vertical toolbar of - Android Studio and running the assembleRelease task. The task is located under - Project name > Handheld module name > assembleRelease. -

    - -

    Note:This example embeds the password in your Gradle file, which might be undesirable. See -Configure signing settings -for information about how to create an environment variable for the passwords instead. -

    +

Signing the wearable and handheld app separately

@@ -101,6 +91,12 @@ if you are using another IDE or another method of building.

    +
  1. Include all the permissions declared in the manifest file of the wearable app + in the manifest file of the mobile app. For example, if you specify the {@link + android.Manifest.permission#VIBRATE} permission for the wearable app, you must also add that + permission to the mobile app.
  2. +
  3. Ensure that both the wearable and mobile APKs have the same package name and version + number.
  4. Copy the signed wearable app to your handheld project's res/raw directory. We'll refer to the APK as wearable_app.apk.
  5. Create a res/xml/wearable_app_desc.xml file that contains the version and @@ -115,8 +111,8 @@ if you are using another IDE or another method of building.

    The package, versionCode, and versionName are the -same values specified in the wearable app's AndroidManifest.xml file. -The rawPathResId is the static variable name of the APK resource. For example, +same values specified in the wearable app's AndroidManifest.xml file. +The rawPathResId is the static variable name of the APK resource. For example, for wearable_app.apk, the static variable name is wearable_app.

  6. @@ -124,7 +120,7 @@ for wearable_app.apk, the static variable name is wearable_ap Add a meta-data tag to your handheld app's <application> tag to reference the wearable_app_desc.xml file.
    -  <meta-data android:name="com.google.android.wearable.beta.app" 
    +  <meta-data android:name="com.google.android.wearable.beta.app"
                      android:resource="@xml/wearable_app_desc"/>