Date post: | 09-Jan-2017 |
Category: |
Technology |
Upload: | twitter-developers |
View: | 245 times |
Download: | 0 times |
@asfalcone
HOW WOULD YOU LIKE 2 EXTRA HOURS EVERY WEEK?
#TapIntoTwitter
@asfalcone
SUPERCHARGING YOUR MOBILE APP RELEASE
WITH FASTLANE
#TapIntoTwitter
Andrea Falcone Senior Software Engineer
Twitter@asfalcone
#TapIntoTwitter
@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”
@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
@asfalcone
fastlane
@asfalcone
! " ♻Avoid Human
Error Reproducible Reusable
@asfalcone
APP STORE & GOOGLE PLAY
RELEASES
BETA DEPLOYMENT
@asfalcone
BETA DEPLOYMENT
@asfalcone
Beta Deployment1. Version Bump 2. Commit & Push 3. Provisioning Profile 4. Build 5. Export 6. Upload 7. Add Release Notes 8. Distribute
@asfalcone
$ %& 'Code
Signing Certificate
Provisioning Profile
Building & Signing Signed IPA
@asfalcone
Code Signing
Certificate
Provisioning Profile
Building & Signing Signed IPA
@asfalcone
$ cert$ sigh$ gym
@asfalcone
1 Instruction 1
2 Instruction 2
3 Instruction 3
4 Instruction 4
5 Instruction 5
Configure Your Fastfile
@asfalcone
@asfalcone
Beta Deployment1. Version Bump 2. Commit & Push 3. Provisioning Profile 4. Build 5. Export 6. Upload 7. Add Release Notes 8. Distribute
@asfalcone
@asfalcone
@asfalcone
@asfalcone
@asfalcone
$ fastlane beta
@asfalcone
@asfalcone
APP RELEASES
@asfalcone
SCREENSHOTS
@asfalcone
250screenshots
...
button.tap()snapshot(“1LandingScreen")
...
@asfalcone
@asfalcone
...
public void testTakeScreenshot() { onView(withId(R.id.fab)).perform(click());Screengrab.screenshot(“after_fab_click”);
}
...
@asfalcone
@asfalcone
DEPLOYMENT
@asfalcone
?!
@asfalcone
?!
@asfalcone
@asfalcone
?!
@asfalcone
$ fastlane release
@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
@asfalcone
$ gem install fastlane
@asfalcone
@asfalcone
@asfalcone
fastlanehttps://fastlane.tools
Thank You!
@asfalcone