continuous, reproducible delivery with fastlane
TRANSCRIPT
![Page 1: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/1.jpg)
@asfalcone
HOW WOULD YOU LIKE 2 EXTRA HOURS EVERY WEEK?
#TapIntoTwitter
![Page 2: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/2.jpg)
@asfalcone
SUPERCHARGING YOUR MOBILE APP RELEASE
WITH FASTLANE
#TapIntoTwitter
![Page 3: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/3.jpg)
Andrea Falcone Senior Software Engineer
Twitter@asfalcone
#TapIntoTwitter
![Page 4: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/4.jpg)
@asfalcone
• “We can’t release, Andrea is currently on vacation” • “The provisioning profiles doesn’t contain all
devices?” • “We can’t release an update, the build is broken” • “We need the latest screenshots for the website” • “Uh, that bug fix is not worth the pain of a new
release”
![Page 5: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/5.jpg)
@asfalcone
Provisioning profiles
Manage deployment alerts
Distribute beta builds
Push to Google Play
Push to App Store
Check for regressions
Manage beta groupsReview in-app events
Monitor app deployment
Debug production issues
Code Signing
Gather feedback
Synchronized buildsKeys
Reproducible builds
QA
Customer email outreach Push certs
Continuous Integration + setup
Testing before release
Screenshots
Build times
![Page 6: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/6.jpg)
@asfalcone
fastlane
![Page 7: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/7.jpg)
@asfalcone
! " ♻Avoid Human
Error Reproducible Reusable
![Page 8: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/8.jpg)
@asfalcone
APP STORE & GOOGLE PLAY
RELEASES
BETA DEPLOYMENT
![Page 9: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/9.jpg)
@asfalcone
BETA DEPLOYMENT
![Page 10: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/10.jpg)
@asfalcone
Beta Deployment1. Version Bump 2. Commit & Push 3. Provisioning Profile 4. Build 5. Export 6. Upload 7. Add Release Notes 8. Distribute
![Page 11: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/11.jpg)
![Page 12: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/12.jpg)
@asfalcone
$ %& 'Code
Signing Certificate
Provisioning Profile
Building & Signing Signed IPA
![Page 13: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/13.jpg)
@asfalcone
Code Signing
Certificate
Provisioning Profile
Building & Signing Signed IPA
![Page 14: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/14.jpg)
@asfalcone
$ cert$ sigh$ gym
![Page 15: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/15.jpg)
@asfalcone
1 Instruction 1
2 Instruction 2
3 Instruction 3
4 Instruction 4
5 Instruction 5
Configure Your Fastfile
![Page 16: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/16.jpg)
@asfalcone
![Page 17: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/17.jpg)
@asfalcone
Beta Deployment1. Version Bump 2. Commit & Push 3. Provisioning Profile 4. Build 5. Export 6. Upload 7. Add Release Notes 8. Distribute
![Page 18: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/18.jpg)
@asfalcone
![Page 19: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/19.jpg)
@asfalcone
![Page 20: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/20.jpg)
@asfalcone
![Page 21: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/21.jpg)
@asfalcone
![Page 22: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/22.jpg)
@asfalcone
$ fastlane beta
![Page 23: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/23.jpg)
@asfalcone
![Page 24: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/24.jpg)
@asfalcone
APP RELEASES
![Page 25: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/25.jpg)
@asfalcone
SCREENSHOTS
![Page 26: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/26.jpg)
@asfalcone
250screenshots
![Page 27: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/27.jpg)
...
button.tap()snapshot(“1LandingScreen")
...
![Page 28: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/28.jpg)
@asfalcone
![Page 29: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/29.jpg)
@asfalcone
...
public void testTakeScreenshot() { onView(withId(R.id.fab)).perform(click());Screengrab.screenshot(“after_fab_click”);
}
...
![Page 30: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/30.jpg)
@asfalcone
![Page 31: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/31.jpg)
@asfalcone
DEPLOYMENT
![Page 32: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/32.jpg)
@asfalcone
?!
![Page 33: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/33.jpg)
@asfalcone
?!
![Page 34: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/34.jpg)
@asfalcone
![Page 35: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/35.jpg)
@asfalcone
?!
![Page 36: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/36.jpg)
@asfalcone
$ fastlane release
![Page 37: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/37.jpg)
![Page 38: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/38.jpg)
@asfalcone
Provisioning profiles
Manage deployment alerts
Distribute beta builds
Push to Google Play
Push to App Store
Check for regressions
Manage beta groupsReview in-app events
Monitor app deployment
Debug production issues
Code Signing
Gather feedback
Synchronized buildsKeys
Reproducible builds
QA
Customer email outreach Push certs
Continuous Integration + setup
Testing before release
Screenshots
Build times
![Page 39: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/39.jpg)
@asfalcone
$ gem install fastlane
![Page 40: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/40.jpg)
@asfalcone
![Page 41: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/41.jpg)
@asfalcone
![Page 43: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/43.jpg)
@asfalcone
fastlanehttps://fastlane.tools
![Page 44: Continuous, Reproducible Delivery with Fastlane](https://reader035.vdocuments.us/reader035/viewer/2022062400/5873b7ee1a28abbc788b4ce9/html5/thumbnails/44.jpg)
Thank You!
@asfalcone