Як я можу створити магазин брелоків?


537

Які кроки для створення магазину брелоків для Android?

Мені потрібно використовувати карти Google у своєму додатку, і я не знаю, які кроки я пропустив. Будь ласка, надайте мені конкретні детальні кроки (я не зрозумів цього з посібників).


Ви вже щось робили, чи шукаєте рекомендації, щоб розпочати роботу?
atk

2
Це наступні кроки, які я зробив: 1-встановлення затемнення 2- встановлення jdk 3- встановлення sdk 4- встановлення плагін Android. Мені не вдалося виконати команду в win cmd, команда: $ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keyysize 2048 -validity 10000 (що генерує приватний ключ). спасибі
користувач482762

@ user482762: чи відповів CommonsWare для вас? Чому вам не вдалося виконати програму cmd win?
atk

Відповідь CommonsWare не працює для мене. Коли я намагаюся виконати команди в cmd, я отримую масаж помилок: "$ не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл". дякую за вашу допомогу
user482762

Ах! Ви не хочете насправді вводити $. У Windows, коли ви використовуєте командний рядок (програму cmd), запит на введення зазвичай виглядає як DRIVE: / DIRECTORY>, як "c: \". У unix часто запит виглядає як "$" або просто ">". Команда "$" призначена для відображення вхідного запиту, а не частини команди. Спробуйте запустити keytool з усіма аргументами без $.
atk

Відповіді:


545

Щоб відповісти на запитання в заголовку, ви створюєте сховище ключів за допомогою утиліти Java Keytool, яка постачається з будь-яким стандартним розподілом JDK і може бути розміщена за адресою %JAVA_HOME%\bin. У Windows зазвичай це буде C:\Program Files\Java\jre7\bin.

Тож у Windows відкрийте вікно команд та перейдіть до цього каталогу та введіть таку команду

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Keytool пропонує вам ввести паролі для зберігання ключів, вказати поля "Розрізнене ім'я", а потім пароль для вашого ключа. Потім він генерує сховище ключів у вигляді файлу, який називається my-release-key.keystore в каталозі, в якому ви перебуваєте. Сховище клавіш і ключ захищені введеними паролями. У магазині брелоків є один ключ, дійсний 10000 днів. Псевдонім - це ім'я, яке ви будете використовувати пізніше для посилання на цю сховище ключів під час підписання заявки.

Для отримання додаткової інформації про Keytool див. Документацію за адресою: http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

а для отримання додаткової інформації про підписання програм для Android відвідайте тут: http://developer.android.com/tools/publishing/app-signing.html


6
Хороший крик про визначення -keysize 2048, а не за замовчуванням 1024 особисто я зараз використовую 4096
scottyab

9
для інформації, в моєму випадку мені потрібно відкрити вікно команд з правами адміністратора
Intuitisoft

Це дає мені: E / TokenRequestor: Ви невірні конфігурації OAuth2, будь ласка, перевірте. Детальна помилка: UNREGISTERED_ON_API_CONSOLE Я вже створив обліковий запис, ввівши свій SHA1 в консолі API.
Rohan Taneja

Пряме посилання на документацію про створення вручну магазину ключів: developer.android.com/studio/publish/…
методи

Я використав цю команду , яка встановлює ці 2 паролів , так що ви пропустите деякі підказки: keytool -genkey -v -keystore debug.keystore -storepass android -alias android -keypass android -keyalg RSA -keysize 2048 -validity 10000. Потім для генерації SHA-1, який потрібно помістити у Firebase, виконайте:keytool -list -v -keystore debug.keystore -alias android -storepass android -keypass android
Альберт Віла Кальво,

158

Підписання програми в Android Studio

Щоб підписати додаток у режимі випуску в Android Studio, виконайте наступні дії:

1- На панелі меню натисніть «Створити»> «Створити підписаний APK».


2-У вікні Майстра створення підписаних файлів APK натисніть кнопку Створити нове, щоб створити нову сховище ключів. Якщо у вас вже є магазин брелоків, перейдіть до кроку 4.


3- У вікні «Новий магазин ключів» введіть необхідну інформацію, як показано на малюнку. Ваш ключ повинен бути дійсним принаймні 25 років, щоб ви могли підписувати оновлення програми тим самим ключем протягом усієї тривалості програми.

введіть тут опис зображення

4- У вікні Майстра створення підписаних файлів APK виберіть сховище ключів, приватний ключ та введіть паролі для обох. Потім натисніть кнопку Далі.введіть тут опис зображення

5- У наступному вікні виберіть пункт призначення підписаного APK і натисніть кнопку Готово. введіть тут опис зображення

референція

http://developer.android.com/tools/publishing/app-signing.html


2
Хоча ця відповідь правильна, вона зручна лише в тому випадку, якщо у вас вже встановлена ​​студія Android.
Seph Reed

98

Я з розуму дивився, як генерувати .keystore, використовуючи в оболонці команду єдиного рядка , тому я міг запустити її з іншого додатка. Це шлях:

echo y | keytool -genkeypair -dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" -alias business -keypass kpi135 -keystore /working/android.keystore -storepass ab987c -validity 20000
  • dname - це унікальний ідентифікатор для програми в .keystore

    • cn повне ім’я людини або організації, яка створює магазин .keystore
    • ou Організаційний підрозділ, який створює проект, його підрозділ Організації, яка його створює. Вих. android.google.com
    • o організатор власника всього проекту. Його вищий обсяг, ніж ун . Напр .: google.com
    • c Короткий код країни. Наприклад: для США - це "США"
  • псевдонім Ідентифікатор програми як єдиної сутності всередині .keystore (його може бути багато)

  • KeyPass пароль для захисту цього конкретного псевдоніма.
  • Сховище ключів Шлях де .keystore повинен бути створений файл (стандартне розширення насправді .ks)
  • storepass Password для захисту всього вмісту .keystore .
  • термін дії Протягом днів додаток буде дійсним із цим .keystore

Він працював дуже добре для мене, він не вимагає нічого іншого в консолі, просто створює файл. Для отримання додаткової інформації див. Keytool - інструмент управління ключами та сертифікатами .


У мене ніколи не було такої помилки, але спробуйте доторкнутися /path/file.keystoreі вказати на це за допомогою параметра storepass.
EliuX

працює чудово! моя єдина зміна полягає в тому, що я використовую розширення .jks для Android
Адам Мендоса

2
jksє офіційним розширенням для зберігання ключів для Java в цілому, але keystoreрекомендується використовувати його для додатків для Android .
EliuX

1
@eliasbagley це тому, що команда -затримка, як написано вище, починалася в іншому рядку. Напишіть усе в один рядок, і це буде добре.
тормуто

82

Створіть файл зберігання ключів з командного рядка:

  1. Відкрити командний рядок:

    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved
    
    // (if you want to store keystore file at C:/ open command line with RUN AS ADMINISTRATOR)
    
    C:\Windows\system32> keytool -genkey -v -keystore [your keystore file path]{C:/index.keystore} -alias [your_alias_name]{index} -keyalg RSA -keysize 2048 -validity 10000[in days]
    
  2. Введіть> Він запропонує ввести пароль> введіть пароль (він буде невидимим)

    Enter keystore password:
    Re-enter new password:
    
  3. Введіть> Він запитає вашу інформацію.

    What is your first and last name?
     [Unknown]:  {AB} // [Your Name / Name of Signer] 
    What is the name of your organizational unit?
     [Unknown]:  {Self} // [Your Unit Name] 
    What is the name of your organization?
     [Unknown]:  {Self} // [Your Organization Name] 
    What is the name of your City or Locality?
     [Unknown]:  {INDORE} // [Your City Name] 
    What is the name of your State or Province?
     [Unknown]:  {MP} //[Your State] 
    What is the two-letter country code for this unit?
     [Unknown]:  91
    
  4. Введіть> Введіть Y

    Is CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91 correct?
    [no]:  Y
    
  5. Введіть знову> Введіть пароль.

    Generating 2,048 bit RSA key pair and self-signed certificate    (SHA256withRSA) with a validity of 10,000 days
        for: CN=AB, OU=Self, O=Self, L=INDORE, ST=MP, C=91
    Enter key password for <index> (RETURN if same as keystore password):
    Re-enter new password:
    

[Зберігання C: /index.keystore]

  1. І ваші ЗРОБІТИ !!!

Експорт у затемнення:

Експортуйте свій пакет Android в .apk зі створеним файлом зберігання брелоків

  1. Клацніть правою кнопкою миші на пакунку, який потрібно експортувати, та виберіть експорт введіть тут опис зображення

  2. Виберіть Експорт програми Android> Далі введіть тут опис зображення

  3. Далі
    введіть тут опис зображення

  4. Виберіть Використовувати існуючу сховище клавіш> Переглянути .keystore файл> введіть пароль> Далі введіть тут опис зображення

  5. Виберіть псевдонім> введіть пароль> Далі введіть тут опис зображення

  6. Переглянути пункт призначення APK> Готово введіть тут опис зображення

В Android Studio:

Створення магазину брелоків [.keystore/.jks]у студії ...

  1. Клацніть Побудувати (ALT + B) > Створити підписаний APK ...
    введіть тут опис зображення

  2. Натисніть Створити .. (ALT + C)
    введіть тут опис зображення

  3. Перейдіть до шляху зберігання ключів (SHIFT + ENTER)> Виберіть Шлях> Введіть ім'я> ОК введіть тут опис зображення

  4. Заповніть інформацію про свій .jks/keystoreфайл введіть тут опис зображення

  5. Далі
    введіть тут опис зображення

  6. Ваш файл
    введіть тут опис зображення

  7. Введіть головний пароль Studio (якщо ви не знаєте), можете скинути його > OK введіть тут опис зображення

  8. Виберіть * Папка призначення *> Тип збірки

    release : for publish on app store
    debug : for debugging your application

    Клацніть Готово

    введіть тут опис зображення

Готово !!!


28

Цей підручник:

http://techdroid.kbeanie.com/2010/02/sign-your-android-applications-for.html

мені було дуже корисно в перший раз, коли мені довелося створити магазин брелоків. Це просто, але інструкції на developer.android.com трохи занадто короткі.

Частина, про яку я був невпевнений, полягав у тому, де зберегти та яке ім’я, щоб дати файл зберігання ключів .

Мені здається, не важливо, куди ви поставите, просто не забудьте зберегти його та зберегти ряд резервних копій. Я просто помістив його в каталог своїх додатків

Назвіть файл "something.keystore", де щось може бути як завгодно. Я використовував app_name.keystore , де ім'ям app_name було ім’я мого додатка.

Наступною частиною було те, що назвати псевдонімом. Знову це, мабуть, не має значення, тому я знову знову застосував ім'я_код . Зберігайте паролі такими ж, як раніше. Заповніть решту полів і ви закінчите.


13

Я дотримувався цього керівництва, щоб створити налагодження зберігання ключів.

Команда така:

keytool -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999

11

Використовуйте цю команду для створення debug.keystore

keytool -genkey -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -keysize 2048 -validity 10000 -dname "CN=Android Debug,O=Android,C=US"

5

Перше, що потрібно знати, чим раніше ви перебуваєте в режимі налагодження або випуску. З сайту розробника "Є два режими збірки: режим налагодження та режим випуску. Ви користуєтеся режимом налагодження під час розробки та тестування програми. Ви користуєтесь режимом випуску, коли хочете створити версію версії програми, яку ви можете розповсюджувати безпосередньо для користувачів або публікувати на ринку додатків, таких як Google Play. "

Якщо ви перебуваєте в режимі налагодження, виконайте такі дії:
A. Відкрийте термінал і введіть:

keytool -exportcert -alias androiddebugkey -keystore path_to_debug_or_production_keystore -list -v

Примітка. Для Eclipse зберігання клавіш налагодження зазвичай розташоване на ~ / .android / debug.keystore ...

B. коли буде запропоновано ввести пароль, просто введіть "android" ...

C. Якщо ви перебуваєте в режимі випуску, дотримуйтесь інструкцій на ...

http://developer.android.com/tools/publishing/app-signing.html <- це посилання в значній мірі пояснює все, що потрібно знати.


2

Ви можете створити свою сховище ключів, експортуючи підписаний APK. Коли ви спробуєте експортувати / створити підписаний APK, він попросить зберегти ключ.

Ви можете вибрати існуючу сховище ключів або легко створити нову, натиснувши створити нову сховище ключів

Тут посилання дуже корисне та добре пояснене, як створити свій магазин брелоків та генерувати підписаний APK

Це посилання пояснило, як це зробити з Android Studio, але якщо я пам’ятаю, це досить схоже на Eclipse

СТЕРЕЖИСЬ

Коли ви генеруєте свою сховище ключів, зберігайте її десь у безпеці, оскільки вона вам знадобиться для відновлення нового підписаного APK.

Як експортувати проект у студію Android?


2

Я хотів би запропонувати автоматичний спосіб лише з gradle

** Визначте також принаймні один додатковий параметр для зберігання ключів в останній команді, наприклад, країна '-dname', 'c=RU'**

apply plugin: 'com.android.application'

// define here sign properties
def sPassword = 'storePassword_here'
def kAlias = 'keyAlias_here'
def kPassword = 'keyPassword_here'

android {
    ...
    signingConfigs {
        release {
            storeFile file("keystore/release.jks")
            storePassword sPassword
            keyAlias kAlias
            keyPassword kPassword
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.release
        }
        release {
            shrinkResources true
            minifyEnabled true
            useProguard true
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    ...
}

...

task generateKeystore() {
    exec {
        workingDir projectDir
        commandLine 'mkdir', '-p', 'keystore'
    }
    exec {
        workingDir projectDir
        commandLine 'rm', '-f', 'keystore/release.jks'
    }
    exec {
        workingDir projectDir
        commandLine 'keytool', '-genkey', '-noprompt', '-keystore', 'keystore/release.jks',
            '-alias', kAlias, '-storepass', sPassword, '-keypass', kPassword, '-dname', 'c=RU',
            '-keyalg', 'RSA', '-keysize', '2048', '-validity', '10000'
    }
}

project.afterEvaluate {
    preBuild.dependsOn generateKeystore
}

Це створить сховище ключів для синхронізації та нарощування проекту

> Task :app:generateKeystore UP-TO-DATE
> Task :app:preBuild UP-TO-DATE

-4

Якщо ви не хочете або не можете використовувати Android Studio, ви можете скористатись інструментом NPM для створення-android-keystore:

$ create-android-keystore quick

Це призводить до новоствореного сховища ключів у поточному каталозі.

Більше інформації: https://www.npmjs.com/package/create-android-keystore

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.