9. Requirements
Marcio Klepacz, GetYourGuide
Automatically build and test on push
Fit into gitflow workflow (feature, develop and
release) branch
Produce binaries that can be tested (downloaded)
13. Requirements / Summary
Marcio Klepacz, GetYourGuide
Build an Alpha App for Test Environment
able to book with fake CC
Build a Beta App for the Live Environment
real content
Build and test on every push
Distribute app to testers from release and develop branches
Relieve developers from repetitive manual tasks
14. Marcio Klepacz, GetYourGuide
Xcode
Server
Jenkins
Ship.io
Travis
CI
iOS
and
Android
❌
✅
✅
✅
Ac,ons
specific
to
branches
✅
✅
✅
✅
Build
on
push
✅
✅
✅
✅
Big
community
✅
✅
❌
✅
Hosted
❌
❌
✅
✅
16. Travis
Marcio Klepacz, GetYourGuide
Hosted Continuous Integration service
Configuration file in your project (.travis.yml)
Define SDK, build env and output
custom scripts
Connected to Github
Triggers in every push and pull request
Available for many platforms
17. Travis Setup (.travis.yml)
Marcio Klepacz, GetYourGuide
It’s not using the iPhone SDK
code signing is needed
Doesn’t differentiate between branches
Doesn’t archive
Doesn’t distribute
language: objective-c
xcode_project: MyNewProject.xcodeproj
xcode_scheme: MyNewProjectSharedScheme
iPhone SDK
custom build per branch
generate .ipa
distribute
20. Security
Marcio Klepacz, GetYourGuide
You can encrypt environment variables using
Travis command line tool on your terminal:
~ $ travis ecrypt ‘KEY_DIST_PASSWORD=abc123’ –add
Passing the option “--add” will automatically add the secure
key to your .travis.yml
env:
global:
- secure: Pz3cxDffsdafasf34324fdsf232fdsfdsf3fdsf
iPhone SDK
custom build per branch
generate .ipa
distribute
27. (Bonus) Overlaying Icons
Marcio Klepacz, GetYourGuide
Add icon overlay script on the Build Phase of your target
IconOverlaying (by: Krzysztof Zabłocki)
…
before_install:
…
- brew install imagemagick && brew install ghostscript
28. Conclusion
Marcio Klepacz, GetYourGuide
Automate tasks
App is distributed
No manual configuration
Different actions between branches
5 different apps to test concurrently
(@banaslee’s phone)