Подтвердить что ты не робот

Создание неподписанных, выпуск apk с Android Studio

Мне нужно сгенерировать unsigned, release APK (где кто-то еще будет ее подписывать и выпустить в хранилище) с кем-то другим, обрабатывающим ключи и все остальное). Моя проблема в том, что Android Studio выдает ошибку всякий раз, когда я пытаюсь построить:

app-flavorUnsigned-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.

Я пробовал несколько предыдущих методов:

  • Не удалось создать артефакт (не найти ни одного меню с "Артефактами" в любом месте, хотя для редактирования конфигураций я нашел возможность выбрать пользовательский артефакт) [ Вероятно, наилучшая ставка]
  • Создание пустой конфигурации подписки
  • Создание настраиваемого аромата
  • Использование терминала для запуска gradle assemble или gradle assembleRelease (которые не работают из-за того, что одна из моих важных библиотек модулей пытается построить)

Вот мой текущий [app's] build.gradle:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        unsigned {
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    compileSdkVersion 19
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "hiddenForClientPrivacy"
        minSdkVersion 13
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.unsigned
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.unsigned
        }
        unsignedBuild {
            debuggable false
            versionNameSuffix '-unsigned'
            signingConfig signingConfigs.unsigned
        }
        debug {

        }
    }
    productFlavors {
        flavorUnsigned {
            versionCode = 1;
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile project(':SlidingMenu')
    compile 'com.android.support:support-v13:20.0.0'
    compile 'com.github.castorflex.verticalviewpager:library:19.0.1'
}

Спасибо за любую помощь.

Поправка: Как показал отмеченный принятый ответ, мне пришлось снять блокировку. Кроме того, я нажал кнопку "Запустить", которая должна соответствующим образом показать ошибку, поскольку я не могу запустить apk без знака в эмуляторе или устройстве. Принятый ответ описывает все.

4b9b3361

Ответ 1

В стиле сборки release не указывайте signingConfig вообще, и ваша сборка не будет подписана. В релиз-сборках не возникает сборник подписи по умолчанию, который отлаживает сборки, поэтому он должен работать для них.

Здесь обсуждение в списке рассылки adt-dev.

Имейте в виду, что для сборки из Android Studio вам нужно перейти в окно задач Gradle и выбрать задачу assembleRelease; нормальные сборки через "Make Project" фактически не создают окончательный APK.

Ответ 2

На самом деле вы можете построить unsigned.APK, просто создав его:

Чтобы сгенерировать его, в левой части Android Studio есть меню Build Variants (возможно, написанное по вертикали). Нажмите на нее.

Появилась вкладка окна "Варианты сборки", нажмите отладка и измените ее на выпуск.

Восстановите проектное приложение Сборкa > Перестроить проект.

Затем нажмите Запустить, появилось новое окно, нажмите Выполнить > Продолжить в любом случае > Выберите устройство, которое вы хотите запустить, s > OK.

Приложение не будет работать на вашем устройстве, но версия сборки выпуска вашего .apk будет сгенерирована в тот же каталог, что и ваши отладочные:

  • C:\ANDROID_PROJECT_DIRECTORY\приложение\построить\выходы\APK\

Вы можете заметить, что это имя app-release-unsigned.apk, и это было именно то, что мы хотели иметь.

Дополнительная информация об этом сайте учебника.