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
Androidアプリのリリースしてますか #potatotips
Search
FUJI Goro
August 20, 2014
Technology
6
2.1k
Androidアプリのリリースしてますか #potatotips
2014/8/20 potatotips 8 at Retty
FUJI Goro
August 20, 2014
Tweet
Share
More Decks by FUJI Goro
See All by FUJI Goro
How to Boost Your Code with WebAssembly
gfx
2
2.5k
AssemblyScriptでライブラリコードの高速化をしてみる
gfx
5
2.6k
実践TypeScriptトークバトル
gfx
1
930
歴史的経緯の説明 as code
gfx
7
2.5k
Elasticsearchによる 全文検索の実装 in Rails
gfx
5
9k
すばらしきGraphQLのSEKAIへようこそ
gfx
20
8.9k
マルチテナント・ウェブアプリケーションの実践
gfx
14
9.2k
How to choose the ORM on Android
gfx
1
4k
How Do We Get Along With Static Types
gfx
5
3.2k
Other Decks in Technology
See All in Technology
マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
soudai
20
5k
GitHub Actions Runner Controller
takesection
0
110
新卒1年目がプロジェクトを進めるときにコケたポイント
ryunakayama
1
100
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
2
4.9k
10年モノのレガシーPHPアプリケーションを移植しきるまでの泥臭くも長い軌跡 / legacy-php-app-migration
toshimaru
0
690
第131回 雲勉【オンライン】AWSを9年触ってきて経験した落とし穴、ハマったポイント
iret
6
470
実録_マルチテナント環境でのGmailガイドライン対応
ryuichi1208
7
1.5k
Datadog による 自己完結的アプリケーションモニタリング
recruitengineers
PRO
3
130
The Twelve-Factor App とクラウドアプリケーションのコスト
ny7760
3
260
Automate your changelogs! Release Drafter
onenashev
PRO
2
410
履歴データテーブルとの向き合い方_PHPerKaigi2024
gennei
25
6.7k
DevOps Topologies 10 years on: what have we learned about silos, collaboration, and flow? - Matthew Skelton, Conflux
matthewskelton
PRO
2
420
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
56
13k
In The Pink: A Labor of Love
frogandcode
137
21k
What the flash - Photography Introduction
edds
64
11k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Web Components: a chance to create the future
zenorocha
304
41k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Designing for humans not robots
tammielis
247
25k
No one is an island. Learnings from fostering a developers community.
thoeni
14
2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
39
4.3k
Transcript
AndroidΞϓϦ ϦϦʔεͯ͠·͔͢ Fuji, Goro (gfx) at Cookpad Inc. potatotips #8
2014/8/20 in Retty ‣ YES ‣ ͍
None
ࣗݾհ • ΫοΫύουͰϞόΠϧΤϯδχΞͬͯ·͢ • Android/iOSΞϓϦ։ൃͷੜ࢈ੑ㽉㽉Λ୲ • ࠷ۙͷ • Maven Centralͱܾผ͢ΔͨΊͷweb
serviceΛͭ͘Δʂ
ΞϓϦͷϦϦʔεͯ͠·͔͢ • ϦϦʔεΤϯδχΞϦϯά(releng)ͷλεΫෳࡶ • όʔδϣϯΛઃఆͯ͠ςετͯ͠Ϗϧυͯ͠apkʹ ॺ໊ͯ͠λάΛ͏ͬͯdeploygateʹ৴ͯ͠ google playʹΞοϓϩʔυͯ͠ߋ৽ใΛΞοϓ σʔτͯ͠ެ։ઃఆͯؔ͠ऀʹΞφϯεͯ͠ ެ։͞ΕͨΒGACrashlyticsΛோΊͯͯ͢
ͳͦ͞͏Ͱ͋ΕҰଉͭ͘
՝ɿrelengͷखॱ͕ෳࡶ͗͢Δ
λεΫΛղͯ͠ΈΔ • όʔδϣϯΛదͳͷʹઃఆ͢Δ • ࣗಈςετɾlintΛ࣮ߦ͢Δ • ΫϦʔϯϏϧυ͢Δ • ϦϦʔε༻ͷॺ໊ͷઃఆΛ͢ΔʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ •
deploygate/testflightʹ৴͢Δ • Google PlayͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ • Google Playʹupload͢Δ • Google Playͷߋ৽ใΛΞοϓσʔτ͢Δ • Google PlayͰެ։ͷઃఆΛ͢Δ • ࣾʹΞφϯε͢Δ • ϦϦʔεޙʹΫϥογϡΛࢹ͢Δ
relengλεΫଟ͗͢Δ݅ • λεΫ͕ଟ͍ͱԿ͔͕ൈ͚͕ͪʹͳΔ • ྫɿʮ͋ɺversion codeͷߋ৽ΛΕͨͷ ͰϏϧυ͠ͳ͓͠·͢ʯ • Կ͔ܦݧ͠ͳ͍ͱਖ਼͍͠खॱΛ౿Ή ͷ͕ෆՄೳ
ॺ໊ͷ • ॺ໊ͷઃఆΛbuild.gradleʹॻ͘ͷ͕μϧ͍ • keystoreϑΝΠϧΛΒ·͖ͨ͘ͳ͍͔Β JenkinsͰϦϦʔε༻apkΛ࡞ΔΑ͏ʹͯ͠ ͍Δ • ͦΕ͋ͬͯ͡ΊͯϦϦʔε͢Δͱ͖ʹ߹ ܭ10ߦ΄Ͳίϐϖ͠ͳ͍ͱ͍͚ͳ͍
Google PlayͷΞοϓϩʔυ • JenkinsͷϏϧυ݁Ռ͔ΒapkϑΝΠϧΛऔಘ • औಘͨ͠apkϑΝΠϧΛplayʹΞοϓϩʔυ • ख࡞ۀͳͷͰΘΓͱ໘͍͘͞
औΓΈ
ࣗಈԽ • όʔδϣχϯάͷ -> Jenkinsͷ BUILD_NUMBERΛ͔ͭ͏ • ॺ໊ͷ -> app-unsigned.apkʹ͋ͱ͔Βsign
͢Δ • Ξοϓϩʔυͷ -> Google Play Developer APIΛ͏
όʔδϣχϯάͷ • major.minor.patch.build ͷ4ύʔπ • ݱࡏͷAndroidΞϓϦ4.0.0.1 • build෦ΛJenkinsʹࣗಈͰৼΒͤΔ
ॺ໊ͷ • build.gradleʹॺ໊ઃఆ༻ίʔυΛίϐϖ͢Δͷ͕ͩͬͨ • ॺ໊ઃఆͤͣʹϏϧυͯ͋͠ͱͰॺ໊͢ΕղܾͰ͖Δͣ • $ jarsigner -verbose -sigalg
SHA1withRSA -digestalg SHA1 - keystore ~/.android/debug.keystore -storepass android ./ app/build/outputs/apk/app-product-release-unsigned.apk androiddebugkey • http://developer.android.com/tools/publishing/app-signing.html
Ξοϓϩʔυͷ • Google Play Developer APIΛ͏ • apkͷΞοϓϩʔυ • ެ։ઃఆʢalpha
/ beta / rollout / productionʣ • εΫϦʔϯγϣοτઆ໌จͳͲͷઃఆ • εΫγϣઆ໌จΛϦϙδτϦʹೖΕͯཧͰ͖Δͧʂ • ͍͔ͭ͘gradle plugin͕։ൃ͞Ε͍ͯΔʢະݕূʣ
ࣗಈԽͷঢ়گʢ✓ʣ • ✓ όʔδϣϯΛదͳͷʹઃఆ͢ΔʢJenkinsʣ • ✓ ࣗಈςετɾlintΛ࣮ߦ͢ΔʢJenkinsʣ • ✓ ΫϦʔϯϏϧυ͢ΔʢJenkinsʣ
• ✓ ϦϦʔε༻ͷॺ໊ͷઃఆΛ͢Δʢbuild.gradleΛฤू͠ͳͯ͘Α͍ʣ • ✓ deploygate/testflightʹ৴͢ΔʢJenkinsʣ • Google PlayͰΞϓϦέʔγϣϯͷઃఆΛߦ͏ʢॳΊͯϦϦʔε͢Δͱ͖ͷΈʣ • ✓ Google Playʹupload͢ΔʢGoogle Play Developer APIʣ • Google Playͷߋ৽ใΛΞοϓσʔτ͢Δ • Google PlayͰެ։ͷઃఆΛ͢Δ • ࣾʹΞφϯε͢Δ • ϦϦʔεޙʹΫϥογϡΛࢹ͢Δ
To be continued… • relengࣗಈԽͷՌ github.com/cookpad Ͱެ։͢Δ༧ఆͰ͢ • ଞͷࣗಈԽͰ͖ͯͳ͍ͱ͜ΖͲΜͲΜࣗಈ Խ͍͖͍ͯͨ͠
We are hiring @ Cookpad Inc. • iOS & Android
ΤϯδχΞืूத • https://info.cookpad.com/jobs/position/ios- android-app-engineer