Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Signature
Search
Keishin Yokomaku
May 22, 2015
Technology
1
390
Signature
The best practice to deal with keystore and signature in the project.
Keishin Yokomaku
May 22, 2015
Tweet
Share
More Decks by Keishin Yokomaku
See All by Keishin Yokomaku
Base64 in Android
keithyokoma
0
21
One screen, many BottomSheets
keithyokoma
0
390
LazyColumnのitemがViewPortの中で占める領域の割合を知りたい
keithyokoma
0
660
Build apps for Cars
keithyokoma
0
530
Save the state
keithyokoma
0
570
Either in Kotlin
keithyokoma
0
590
持続的なアプリ開発のためのDXを支える技術
keithyokoma
2
5.2k
Make the objects serializable with kotlinx.serialization
keithyokoma
0
5.1k
Kotlin で書く Gradle Custom Tasks
keithyokoma
0
550
Other Decks in Technology
See All in Technology
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
810
Agile PBL at New Grads Trainings
kawaguti
PRO
1
410
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
320
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
21
10k
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
110
現場で効くClaude Code ─ 最新動向と企業導入
takaakikakei
1
230
Function Body Macros で、SwiftUI の View に Accessibility Identifier を自動付与する/Function Body Macros: Autogenerate accessibility identifiers for SwiftUI Views
miichan
2
180
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
1
470
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
Rustから学ぶ 非同期処理の仕組み
skanehira
1
130
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
100
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
525
40k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Producing Creativity
orderedlist
PRO
347
40k
4 Signs Your Business is Dying
shpigford
184
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Practical Orchestrator
shlominoach
190
11k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Transcript
Signature @KeithYokoma - Drivemode, Inc. Shibuya.apk #1
KeithYokoma Keishin Yokomaku Drivemode, Inc. Android Engineer GitHub: https://github.com/KeithYokoma Qiita:
http://qiita.com/KeithYokoma e-Book: http://amzn.to/1mZNydv
None
Keystore • Containing “Key” and “Certification” • Every applications are
signed with keystore • The same applications are signed with the same keystore
• Valid until … • Store password: … • Key
alias: … • Key password: … • Owner informations … Keystore
debug.keystore release.keystore Signing app-debug.apk app-release.apk
The problem
The problem Where should we put the keystore?
None
• Possibility to lost keystore files • Who remembers password?
• Manual operation to share keystore files • Dull to copy them by hand Shared drive?
Shared drive? Yuck!
Put keystores in the repository
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
None
Wait, how do we share keystore password?
Keystore password • Use `echo something_seed_value | md5` • Set
it as ENV value ‘export KSTOREPWD=…’ • Read ENV value from build.gradle
build.gradle android { signingConfigs { release { storePassword System.getenv("KSTOREPWD") keyPassword
System.getenv(“KEYPWD”) } } }
Looks Good To Me
Signature @KeithYokoma - Drivemode, Inc. Shibuya.apk #1