From 900efcc91c980a0b30fc1d3017e33e30198b8eb8 Mon Sep 17 00:00:00 2001
From: Ricardo Cervera 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: Alternatively, you can create a 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. Store your key file location and credentials in environment variables and run the Gradle
+ wrapper as follows: 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.
-
+
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.
- 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.
+
-android {
- ...
- signingConfigs {
- release {
- keyAlias 'myAlias'
- keyPassword 'myPw'
- storeFile file('path/to/release.keystore')
- storePassword 'myPw'
- }
- }
- buildTypes {
- release {
- ...
- signingConfig signingConfigs.release
- }
- }
- ...
-}
+
+./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
- Signing the wearable and handheld app separately
@@ -101,6 +91,12 @@ if you are using another IDE or another method of building.
res/raw directory. We'll
refer to the APK as wearable_app.apk.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.
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"/>