2015-05-28 18 views
7

मैं अपने आवेदन का परीक्षण कर रहा हूं और अल्फा मोड में हूं। मेरा ऐप स्वीकृत है और मैं इसे Play Store में अल्फा मोड में पा सकता हूं। हालांकि, मेरे ऐप के 'पहनने' हिस्से को पहनने के लिए स्वचालित रूप से इंस्टॉल नहीं किया जा रहा है।मैं Google Play Store पर अल्फा/बीटा उपयोगकर्ताओं को अपने एंड्रॉइड वेयर को कैसे वितरित करूं?

मेरे पहनने वाले ऐप में वर्तमान में न्यूनतम कार्यक्षमता है, इसलिए पहनने के लिए "ऑप्ट-इन" अस्वीकार कर रहा है। मैं अभी भी अपने अल्फा उपयोगकर्ताओं के लिए अपने न्यूनतम पहनने वाले ऐप को पैकेज करने में सक्षम होना चाहता हूं, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। कोई विचार है कि मैं ऐप के पहनने वाले हिस्से को ऑटो-इंस्टॉल कैसे प्राप्त कर सकता हूं?

यहाँ मेरी फ़ाइलें इस समय कर रहे हैं:

/build.gradle

// Used in 'mobile' and 'wear' submodules 
def versionMajor() { 0 } 
def versionMinor() { 0 } 
def versionPatch() { 8 } 

def gitVersion() { 
    def process = "git rev-list master --first-parent --count".execute() 
    return process.text.toInteger() 
} 

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.3' 

     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

/mobile/build.gradle

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "com.kamil.coach" 
     minSdkVersion 19 
     targetSdkVersion 22 
     versionCode gitVersion() 
     versionName "${versionMajor()}.${versionMinor()}.${versionPatch()}" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/ASL2.0' 
     exclude 'APK META-INF/NOTICE.txt' 
     exclude 'APK META-INF/notice.txt' 
    } 
} 

if(project.hasProperty("MyProject.signing") && new File(project.property("MyProject.signing") + ".gradle").exists()) { 
    println "mobile applying gradle file" 
    apply from: project.property("MyProject.signing") + ".gradle"; 
} else { 
    println "mobile not applying gradle file" 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile project(':core') 
    wearApp project(':wear') 
    compile "com.android.support:appcompat-v7:22.1.0" 

    compile 'com.google.android.gms:play-services:7.3.0' 
    compile 'com.google.android.support:wearable:1.1.0' 
    compile 'com.google.android.gms:play-services-wearable:7.3.0' 
    compile 'org.apache.commons:commons-lang3:3.0' 
    compile 'joda-time:joda-time:2.7' 
    compile 'org.ocpsoft.prettytime:prettytime:4.0.0.Final' 

    compile 'com.uservoice:uservoice-android-sdk:+' 

    compile(name:'cloud-release', ext:'aar') 
    compile(name:'auth-release', ext:'aar') 
    compile(name:'core-release', ext:'aar') 
} 

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

/wear/build.gradle

apply plugin: 'com.android.application' 


android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "com.kamil.coach" 
     minSdkVersion 20 
     targetSdkVersion 22 
     versionCode gitVersion() 
     versionName "${versionMajor()}.${versionMinor()}.${versionPatch()}" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/ASL2.0' 
     exclude 'APK META-INF/NOTICE.txt' 
     exclude 'APK META-INF/notice.txt' 
    } 
} 

if(project.hasProperty("MyProject.signing") && new File(project.property("MyProject.signing") + ".gradle").exists()) { 
    println "wear applying gradle file" 
    apply from: project.property("MyProject.signing") + ".gradle"; 
} else { 
    println "wear not applying gradle file" 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile project(':core') 
    compile 'com.google.android.support:wearable:1.1.0' 
    compile 'com.google.android.gms:play-services-wearable:7.3.0' 
    compile 'org.apache.commons:commons-lang3:3.0' 

    compile(name:'cloud-release', ext:'aar') 
    compile(name:'auth-release', ext:'aar') 
    compile(name:'core-release', ext:'aar') 
} 

repositories { 
    flatDir { 
     dirs 'libs' 
    } 
} 

/core/build.gradle

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     minSdkVersion 17 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 


    compile 'com.squareup.retrofit:retrofit:1.9.+' 
} 

/mobile/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.kamil.coach" 
      xmlns:android="http://schemas.android.com/apk/res/android"> 

    <uses-feature android:name="android.hardware.sensor.accelerometer"/> 
    <uses-feature android:name="android.hardware.sensor.gyroscope"/> 

    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.BLUETOOTH"/> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:name=".mobile.MobileKamilApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/launcher_icon" 
     android:label="@string/app_name" 
     android:theme="@style/CoachTheme" 
     > 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version"/> 

     . 
     . 
     . 
    </application> 

</manifest> 

/wear/AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.kamil.coach" 
      xmlns:android="http://schemas.android.com/apk/res/android"> 

    <uses-feature android:name="android.hardware.type.watch"/> 
    <uses-feature android:name="android.hardware.sensor.accelerometer"/> 
    <uses-feature android:name="android.hardware.sensor.gyroscope"/> 

    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.BLUETOOTH"/> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

    <application 
     android:name="com.core.KamilApplication" 
     android:allowBackup="true" 
     android:icon="@drawable/launcher_icon" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.DeviceDefault" 
     > 

     <meta-data 
      android:name="com.google.android.gms.version" 
      android:value="@integer/google_play_services_version"/> 

     . 
     . 
     . 
     . 

    </application> 

</manifest> 

उत्तर

0

मैं एक एआर फ़ाइल एम्बेड कर रहा था जो अनुमति त्रुटि उत्पन्न कर रहा था।
मुझे उस एआर फ़ाइल के भीतर से अपने मोबाइल ऐप में अनुमतियों की प्रतिलिपि बनाना पड़ा।

मैंने पहनने पर 'adb logcat' का उपयोग करके इसे हल किया क्योंकि मेरे मोबाइल-रिलीज.एपीके ने पहनने से स्थापित करने की कोशिश की और पता चला कि समस्या क्या थी।

1

पहनने एप्लिकेशन मुख्य अनुप्रयोग के भीतर से पैक किया जाना चाहिए, इसे अलग से वितरित नहीं है । आप बस मोबाइल स्टोर के लिए रिलीज एपीके को प्ले स्टोर अल्फा चैनल में सामान्य के रूप में अपलोड करते हैं।

दोनों क्षुधा समान पैकेज नाम होना आवश्यक है, एक ही कुंजी के साथ हस्ताक्षर किए जाने और मोबाइल Gradle भीतर depencies आप पहनने योग्य परियोजना

wearApp project(':wearable') 

शामिल करना चाहिए अधिक जानकारी के लिए पूर्ण गूगल डॉक्स देखें। http://developer.android.com/training/wearables/apps/packaging.html

+0

मैं इन सभी चीजों को कर रहा हूं। "दोनों ऐप्स को एक ही कुंजी के साथ हस्ताक्षरित होना चाहिए" के संबंध में ... क्या मैं पहले से ही अपने पहनने वाले ऐप पर हस्ताक्षर नहीं करता हूं जब मैं: "बिल्ड -> साइन किए गए एपीके जेनरेट करें" मोबाइल-रिलेज़.एपीके। ? – Kamilski81

+0

नहीं, यह इसके पहनने वाले हिस्से पर हस्ताक्षर नहीं करेगा। आप एंड्रॉइड स्टूडियो के भीतर यूआई आधारित हस्ताक्षर का उपयोग नहीं करना चाहते हैं, लेकिन अपनी दोनों build.gradle फ़ाइलों के भीतर साइन इन करने के लिए हर बार जब आप रिलीज करते हैं तो वे दोनों हस्ताक्षरित होते हैं, फिर मोबाइल एपीके में विलय हो जाते हैं। यहां एक अच्छी मार्गदर्शिका है जिसका उपयोग मैंने अपने ऐप्स पर हस्ताक्षर करने के लिए हर बार किया था। https://www.timroes.de/2013/09/22/handling-signing-configs-with-gradle/ – CodeChimp

+0

धन्यवाद। मैंने इन बिल्ड फ़ाइलों को सफलतापूर्वक बनाया और मोबाइल में साइन इन किया और पहनना ... लेकिन यह अभी भी काम नहीं कर रहा है। – Kamilski81

संबंधित मुद्दे