Hi Philipp! I am one of the engineers who helped build this pipeline. We do not use TestFlight — we use Apple’s Enterprise program. This is what happens:
- Jenkins builds all the necessary binaries (we have multiple versions of the iOS app, for different environments).
- We upload these binaries to our storage and tell a tiny service, built on parse.com, that there’s a new version of the app. This service is called DimSum.
- The internal build of Medium’s iOS app, when launched, checks DimSum and compares versions. If there is a new version available, we download the Enterprise manifest file, that replaces the current binary. These upgrades are optional.
DimSum has an iOS client as well. It serves as a directory of all the apps (current and old version, useful for debugging user issues), prototypes and internal tools.
Feel free to respond to this post if you have more questions!