2014-01-30 7 views
6

Android Studio를 처음 사용하고 기기에서 디버그 빌드를 실행하면 앱을 구매할 때 테스트 할 수 있지만 (정상적으로 출시 예정인 경우) 정상적으로 서명 된 출시 빌드가 필요합니다. 키. 빌드 -> 서명 된 APK 생성을 사용하여 APK를 만들 수 있지만 패키지 이름이 올바르지 않은 것으로 보입니다. 내 빌드 파일은 다음과 같습니다.Android 스튜디오 - 맛을 위해 APK를 출시합니다.

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.1" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 9 

     testPackageName "com.company.common.common" 
     testInstrumentationRunner "android.common.InstrumentationTestRunner" 
    } 

    signingConfigs { 
     releaseConfig { 
      storeFile file("filname") 
      storePassword "password" 
      keyAlias "alias" 
      keyPassword "password" 
     } 
    } 

    buildTypes { 
     debug { 
      packageNameSuffix ".debug" 
     } 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
      signingConfig signingConfigs.releaseConfig 
     } 
    } 

    productFlavors { 
     Flavor1 { 
      packageName "com.company.test" 
     } 
    } 
} 

dependencies { 
    // some dependencies 
} 

flavor에 패키지 이름이 무시됩니다. 그 맛은 분명하지 않습니다. 유일한 매니페스트는 main 아래에 있으며 com.company.common 패키지를 지정합니다. Android를 사용하여 com.company.test APK를 만들고이를 기기에 설치 한 다음 Android Studio에서 APK를 생성하고 설치하면 두 번째 앱 대신 두 개의 앱이 기기에 설치됩니다. 이는 패키지 이름이 다르다는 것을 나타냅니다. Android Studio가 com.company.common 패키지로 APK를 제작하고 있기 때문입니다. 비록 그것을 확인하는 방법을 잘 모르겠다.

프로젝트를 빌드 할 때 디버그 APK가 표시되지만 출시 APK는 없습니다. 올바른 패키지 이름으로 출시 APK를 얻으려면 어떻게해야합니까? 방금 Android Studio에서 앱을 실행했으며 com.company.test.debug를 설치 중이며 설치하기 전에 앱을 제거해야한다고 말합니다. 이제 생성 된 APK가 디버그 패키지로 빌드를 생성했다고 생각합니다.

지금까지 Android Studio 및 gradle로 옮길 수없는 문제가 있습니다. 일단 내가이 일을 끝내면 나는 누군가를 알아낼 수 있기를 바라고 모든 일을 끝내야한다고 생각합니다!

+0

명령 줄에서 "gradle assembleRelease"를 사용하여 릴리스 빌드를 만들고 있는지 확인합니다. 또한 "installFlavor1Release"태스크로 테스트 할 수 있어야합니다. –

답변

7

당신이 서명 생성 APK 옵션을 선택하기 전에, 빌드에 가서는 창 변형과 출시 빌드 변형을 선택합니다. 서명 된 APK 생성 명령은 현재 선택된 빌드 유형을 가져 와서 서명합니다. 이것은 분명히 당신이 원하는 경우가 아닙니다. 버그 https://code.google.com/p/android/issues/detail?id=56532가 개선을 요청 중입니다.

+0

그 덕분에, 고마워! 필자는 문서를 읽은 후 프로젝트를 빌드 할 때 서명 된 APK 생성을하지 않고도 디버그 APK와 릴리스 APK를 자동으로 생성 할 수 있도록 설정해야하는 것처럼 보입니다. 오해입니까, 아니면 구성이 잘못 되었습니까, 아니면 AS의 버그 일 수 있습니까? – user1854994

+0

부호없는 APK와 같은 것은 존재하지 않습니다. 디버그 빌드도 디버그 키로 서명되어 있습니다. 따라서 Android Studio에서 명령 줄 또는 일반 빌드 명령을 통해 릴리스 빌드를 빌드하면 빌드 된 서명 된 APK 마법사로 설정 한 build.gradle 파일에 지정된 키로 서명됩니다. 같은. 마법사는 아직 작성하지 않은 경우 빌드 파일의 항목을 채 웁니다. –

+0

예, 제가 말한 것은 제가 빌드 (Ctrl-F9) 만하면 서명 된 디버그 APK가 생성된다는 것입니다. APK를 출시하지 않습니다. 내가 gradle 빌드 파일에 모든 서명 정보를 가지고 있기 때문에 각 빌드와 함께 서명 된 릴리스 APK를 생성 할 수있는 방법이 있습니까? 또는 항상 빌드 -> 서명 된 APK 생성으로 이동해야합니까? – user1854994

관련 문제