2014-01-30 3 views
6

Я новичок в Android Studio и запускаю отладочную сборку на устройстве, работает нормально, однако для тестирования при покупке приложения (и, очевидно, для его выпуска) мне нужна сборка релизов, подписанная с обычным ключ. Я могу сделать APK, используя Build -> Generate подписанный 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 
} 

Обратите внимание, что имя пакета переопределено в аромате. Этот аромат не проявляется; единственный манифест находится под основным, и указывает пакет com.company.common. Если я использую Android для создания APK com.company.test и устанавливаю его на устройство, тогда сгенерируйте APK из Android Studio и установите его, я получаю два приложения на устройстве, а не второе, заменив первое. Это означает, что имена пакетов разные, я предполагаю, что Android Studio создает APK с пакетом com.company.common. Не уверен, как это проверить.

Когда я только что создаю проект, я получаю отладочную APK, но не выпускает APK. Как получить APK выпуска с правильным именем пакета? Я только что запустил приложение из Android Studio, и он говорит, что он устанавливает com.company.test.debug и что перед установкой необходимо удалить приложение. Итак, теперь я думаю, что сгенерированный подписанный APK сгенерировал сборку с пакетом отладки.

До сих пор это проблема, которая мешает мне перейти на Android Studio и gradle. Как только я уйду из этого, я думаю, что я могу все переместить, поэтому я надеюсь, что кто-то поможет мне понять это!

+0

Я использую «gradle assembleRelease» в командной строке, чтобы убедиться, что я создаю сборку релизов. Вы также можете попробовать выполнить задачу «installFlavor1Release». –

ответ

7

Перед тем, как выбрать Генерирование Подписанный вариант APK, перейдите в Строить Варианты окно и выбрать вариант сборки Release. Команда Generate Signed APK принимает то, что там выбран текущий тип сборки и подписывает ее. В этом случае это явно не то, что вам нужно; ошибка https://code.google.com/p/android/issues/detail?id=56532 запрашивает улучшения там.

+0

Это сработало, спасибо! Из моего чтения документации мне кажется, что я должен ее настроить, чтобы при создании проекта он автоматически создавал отладочную APK и APK выпуска без необходимости запускать подписанный APK. Я недопонимаю, или моя конфигурация неверна, или это может быть ошибка в AS? – user1854994

+0

Нет такой вещи, как unsigned APK - даже отладочные сборки подписаны с помощью отладочного ключа. Поэтому, если вы создадите сборку релизов через командную строку или обычную команду сборки в Android Studio, она будет подписана с ключом, указанным в файле build.gradle, который вы создали с помощью мастера Generate Signed APK - это все одна и та же. Мастер просто заполняет записи в файле сборки, если вы еще этого не сделали. –

+0

Да, я знаю, что я говорю, когда я просто делаю сборку (Ctrl-F9), она создает подписанный отладочный APK, и все. Нет выпуска APK. Поскольку у меня есть все данные для подписания в файле сборки gradle, есть ли способ заставить его также создавать подписанную версию APK с каждой сборкой? Или мне всегда нужно идти в Build -> Generate signed APK? – user1854994

Смежные вопросы