Slide 1

Slide 1 text

AUTOMATIC RELEASE IN COOKPAD fastlane Meetup Japan @giginet

Slide 2

Slide 2 text

TEXT SELF INTRODUCTION ▸ @giginet ▸ Work for Cookpad Inc. ▸ Develop fundamental layer of mobile apps ▸ Improve developer productivity. ▸ I'll talk in try! Swift (3/3 18:00~) ▸ &⌚

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

INTRODUCTION ABOUT COOKPAD APP ▸ 9.3 million unique users (iOS & Android) per month ▸ Developed from 2012 ▸ Release monthly ▸ Versioning by year and month (e.g. 17.2.1.0) ▸ Developed by 10 or few contributors per releases

Slide 6

Slide 6 text

https://www.slideshare.net/KazuMatsu/20160913-cookpad- iosjp-65981541 Previous Release Deadline of PR Code Freeze Submit Release Cookpad Tech Kitchen #2ɹiOSΞϓϦͷܧଓతσϦόϦʔ΁ͷऔΓ૊Έ

Slide 7

Slide 7 text

TEXT WHY USE FASTLANE? ▸ We ❤ Ruby ▸ Releasing continuously ▸ Submission flow is too complex ▸ Each departments add to release info. ▸ Everyone use GitHub Enterprise (designers, directors) ▸ All changes should be discussed on PR

Slide 8

Slide 8 text

✋BEFORE

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

AFTER

Slide 13

Slide 13 text

1. bot submit 2. bot launch the Jenkins job via API 3. Clone latest source 4. Execute lane 5. Submit to iTunes Connect

Slide 14

Slide 14 text

PULL REQUEST DRIVEN RELEASE ▸ Change release note on Pull Request ▸ Reviewable ▸ Refer histories easily PULL REQUEST DRIVEN RELEASE

Slide 15

Slide 15 text

PULL REQUEST DRIVEN RELEASE ▸ Change app icon onPull Request too! ▸ Easy to change for seasonal events ▸ for Valentine❤ , Halloween ▸ Change app icons without developers (by designers!)

Slide 16

Slide 16 text

WHAT BOTS DO ▸ Make tag and GitHub releases ▸ Download certificates and Provisioning Profile ▸ Build and sign for release ▸ Upload screenshots, metadata and binary ▸ Submit for review ▸ Generate ad-hoc build and backup xcarchive WHAT BOTS DO

Slide 17

Slide 17 text

WHAT BOTS DO MAKE TAGS AND GITHUB RELEASES ▸ Make tags on GitHub enterprise automatically ▸ fastlane actions ▸ ensure_git_clean, add_git_tag, set_github_release, push_to_git_remote

Slide 18

Slide 18 text

WHAT BOTS DO DOWNLOAD CERTIFICATES AND PROVISIONING PROFILE ▸ Code Signing is very annoying issue ▸ using match ▸ fastlane actions ▸ match, update_project_codesigning(plugin), update_project_provisioning

Slide 19

Slide 19 text

WHAT BOTS DO WHAT IS MATCH? ▸ Sync certificates and Provisioning Profile between each machines ▸ ⬇Fetch from Dev Center ▸ encrypt ▸ ⬆Push to git repository

Slide 20

Slide 20 text

1. match creates/downloads 
 certificates and Provisioning Profiles 2. Push to git repository 3. Download from each machines

Slide 21

Slide 21 text

WHAT BOTS DO AUTOMATIC SIGNING ▸ Automatic Signing may not work for release ▸ Disable Automatic Signing on CI ▸ https://github.com/hjanuschka/fastlane-plugin- update_project_codesigning

Slide 22

Slide 22 text

WHAT BOTS DO BUILD AND SIGN FOR RELEASE ▸ Update dependencies ▸ using gym ▸ solves everything ▸ fastlane actions ▸ carthage, cocoapods, bundle_install, gym

Slide 23

Slide 23 text

WHAT BOTS DO UPLOAD SCREENSHOTS, METADATA AND BINARY ▸ using deliver ▸ Upload screenshots, metadata and binary

Slide 24

Slide 24 text

WHAT BOTS DO UPLOAD REVIEW INFORMATION FROM METAFILES ▸ Define review information on metafiles ▸ Before latest version, cannot define on files

Slide 25

Slide 25 text

Available on fastlane 2.18.0

Slide 26

Slide 26 text

WHAT BOTS DO SUBMIT FOR REVIEW ▸ deliver can click "Submit for review" automatically. submission_information({ export_compliance_encryption_updated: false, export_compliance_uses_encryption: false, add_id_info_uses_idfa: true, add_id_info_serves_ads: true, add_id_info_tracks_install: false, add_id_info_tracks_action: false, add_id_info_limits_tracking: true, })

Slide 27

Slide 27 text

WHAT BOTS DO GENERATE AD-HOC BUILD AND BACKUP XCARCHIVE ▸ Generate ad-hoc build ▸ Export .xcarchive ▸ fastlane actions ▸ match, xcexport, backup_xcarchive

Slide 28

Slide 28 text

CONCLUSION CONCLUSION ▸ We submits monthly releases in automatic ▸ Developer productivities are improved significantly! ▸ We ❤ fastlane ▸ Use fasltane for Global App ▸ (currently, only for domestic)

Slide 29

Slide 29 text

THANK YOU FOR YOUR ATTENTION @giginet