Slide 1

Slide 1 text

Signature @KeithYokoma - Drivemode, Inc. Shibuya.apk #1

Slide 2

Slide 2 text

KeithYokoma Keishin Yokomaku Drivemode, Inc. Android Engineer GitHub: https://github.com/KeithYokoma Qiita: http://qiita.com/KeithYokoma e-Book: http://amzn.to/1mZNydv

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Keystore • Containing “Key” and “Certification” • Every applications are signed with keystore • The same applications are signed with the same keystore

Slide 5

Slide 5 text

• Valid until … • Store password: … • Key alias: … • Key password: … • Owner informations … Keystore

Slide 6

Slide 6 text

debug.keystore release.keystore Signing app-debug.apk app-release.apk

Slide 7

Slide 7 text

The problem

Slide 8

Slide 8 text

The problem Where should we put the keystore?

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

• Possibility to lost keystore files • Who remembers password? • Manual operation to share keystore files • Dull to copy them by hand Shared drive?

Slide 11

Slide 11 text

Shared drive? Yuck!

Slide 12

Slide 12 text

Put keystores in the repository

Slide 13

Slide 13 text

Repository • No chance to lost(we have a history!) • Quick set up build env with just cloning • Note: Safe to share them in PRIVATE repo

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Wait, how do we share keystore password?

Slide 16

Slide 16 text

Keystore password • Use `echo something_seed_value | md5` • Set it as ENV value
 ‘export KSTOREPWD=…’ • Read ENV value from build.gradle

Slide 17

Slide 17 text

build.gradle android { signingConfigs { release { storePassword System.getenv("KSTOREPWD") keyPassword System.getenv(“KEYPWD”) } } }

Slide 18

Slide 18 text

Looks Good To Me

Slide 19

Slide 19 text

Signature @KeithYokoma - Drivemode, Inc. Shibuya.apk #1