Download - Fastlane for Androidによる継続的デリバリー
すべてのスポーツを
スマホで
リアルで
一つの場所で
ライブの熱狂を いつでもどこでも
電車の中でもTVがなくても、これからはスポーツをいつでもどこでも。
スポーツニュースを まとめ読み
あなたのかわりに、あなたがほしいニュースをさがしてきます。
専門家や著名人も使う スポーツSNS
世界中にコメンテーターがいます。あなたもその一人かもしれません。
サービス概要
https://github.com/fastlane/fastlane/releases/tag/1.34.0
5
fastlane
• Use fastlane to
1. Build using gradle
2. Beta Distribution
3. Upload builds and metadata to Google Play
6
fastlane
• Use fastlane to
1. Build using gradle
2. Beta Distribution
3. Upload builds and metadata to Google Play
7
Beta Distribution
13
fastlane / Fastfile
Build
Distribution
Import
lane :beta do # Build gradle(task: “assembleStaging”)
# Push to Crashlytics crashlytics( groups: “developer”, notifications: false )
# Post to Slack slack( message: “Successfully deployed new App Update.” ) end
Beta Distribution
14
fastlane / Fastfile
Build
Distribution
Import
lane :beta do # Build gradle(task: “assembleStaging”)
# Push to Crashlytics crashlytics( groups: “developer”, notifications: false )
# Post to Slack slack( message: “Successfully deployed new App Update.” ) end
Beta Distribution
15
fastlane / Fastfile
Build
Distribution
Import
lane :beta do # Build gradle(task: “assembleStaging”)
# Push to Crashlytics crashlytics( groups: “developer”, notifications: false )
# Post to Slack slack( message: “Successfully deployed new App Update.” ) end
Beta Distribution
16
fastlane / Fastfile
Build
Distribution
Import
lane :beta do # Build gradle(task: “assembleStaging”)
# Push to Crashlytics crashlytics( groups: “developer”, notifications: false )
# Post to Slack slack( message: “Successfully deployed new App Update.” ) end
Beta Distribution
17
fastlane / Fastfile
Build
Distribution
Import
lane :beta do # Build gradle(task: “assembleStaging”)
# Push to Crashlytics crashlytics( groups: “developer”, notifications: false )
# Post to Slack slack( message: “Successfully deployed new App Update.” ) end
Action
Action
Action
• Execute workflows with fastlanemachine: java: version: openjdk7 ruby: version: 2.2.3 dependencies: pre: - echo y | android update sdk --no-ui --al--filter tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,android-23 - echo y | android update sdk --no-ui --al --filter build-tools-23.0.2 deployment: beta: branch: master commands: - bundle exec fastlane beta
Beta Distributioncircle.yml
https://circleci.com/docs/configuration
• Execute workflows with fastlanemachine: java: version: openjdk7 ruby: version: 2.2.3 dependencies: pre: - echo y | android update sdk --no-ui --al--filter tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,android-23 - echo y | android update sdk --no-ui --al --filter build-tools-23.0.2 deployment: beta: branch: master commands: - bundle exec fastlane beta
Beta Distributioncircle.yml
Configure the virtual machine
https://circleci.com/docs/configuration
• Execute workflows with fastlanemachine: java: version: openjdk7 ruby: version: 2.2.3 dependencies: pre: - echo y | android update sdk --no-ui --al--filter tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,android-23 - echo y | android update sdk --no-ui --al --filter build-tools-23.0.2 deployment: beta: branch: master commands: - bundle exec fastlane beta
Beta Distributioncircle.yml
Specify dependencies
https://circleci.com/docs/configuration
• Execute workflows with fastlanemachine: java: version: openjdk7 ruby: version: 2.2.3 dependencies: pre: - echo y | android update sdk --no-ui --al--filter tool,extra-android-m2repository,extra-android-support,extra-google-google_play_services,extra-google-m2repository,android-23 - echo y | android update sdk --no-ui --al --filter build-tools-23.0.2 deployment: beta: branch: master commands: - bundle exec fastlane beta
Beta Distributioncircle.yml
Deploy using fastlane
https://circleci.com/docs/configuration
fastlane
• Use fastlane to
1. Build using gradle
2. Beta Distribution
3. Upload builds and metadata to Google Play
23
Release Distribution
24
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Release Distribution
25
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Release Distribution
26
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Release Distribution
27
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Release Distribution
28
fastlane / Appfile
# Follow https://github.com/fastlane/supply#setup to get one issuer “[email protected]” # Path to the keyfile keyfile “./fastlane/certs/play.p12" # e.g. com.krausefx.app package_name “your.package.name”
• Setup for connecting to Google Play
Release Distribution
29
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Release Distribution
30
fastlane / Fastfile
Build
Distribution
Import
lane :deploy do # Generate key files dir = “./fastlane/certs” add_key( keystore_path: File.join(dir, “release.keystore”), play_p12_path: File.join(dir, “play.p12”) )
# Build gradle(task: “assembleRelease”)
# Upload to Google Play supply( track: “alpha” )
# Delete key files remove_key end
Custom Action
Custom Action
Release Distribution
31
fastlane / Fastfile - Custom Actionmodule Fastlane module Actions class AddKeyAction < Action def self.run(params) keystore_path = params[:keystore_path] play_p12_path = params[:play_p12_path] encryption_secret = ENV["ENCRYPTION_SECRET"] sh "openssl aes-256-cbc -k #{encryption_secret} -in #{keystore_path}.enc -d -a -out #{keystore_path}" sh "openssl aes-256-cbc -k #{encryption_secret} -in #{play_p12_path}.enc -d -a -out #{play_p12_path}" end end end end
module Fastlane module Actions class RemoveKeyAction < Action def self.run(params) sh "rm -rf fastlane/certs" end end end end
Release Distribution
32
fastlane / metadatafastlane ├── Appfile ├── Fastfile ├── actions │ ├── add_key.rb │ └── remove_key.rb ├── certs │ ├── play.p12.enc │ └── release.keystore.enc └── metadata └── android └── ja-JP ├── full_description.txt ├── images │ ├── featureGraphic.png │ ├── icon.png │ ├── phoneScreenshots │ │ ├── 1.jpeg │ │ └── 2.jpeg │ ├── sevenInchScreenshots │ ├── tenInchScreenshots │ ├── tvScreenshots │ └── wearScreenshots ├── short_description.txt ├── title.txt └── video.txt
fastlane
• Use fastlane to
1. Build using gradle
2. Beta Distribution
3. Upload builds and metadata to Google Play
33