LinkedIn is announcing today that it has open-sourced a piece of software it uses to run multiple tests for iOS apps before deploying updates to apps. The Bluepill code, which is written in Objective-C, is now available on GitHub under a BSD-2 Clause license.
The need for a smarter tool derives from the fact that Apple’s Xcode integrated development environment (IDE) for building iOS apps only allows developers to run one instance of the Simulator tool at a time. And LinkedIn has about 2,000 user interface (UI) tests to make sure everything in its core app works properly. If you want to run a bunch of tests quickly — a common goal at companies with lots of developers who are constantly committing changes — then you’re going to need a lot of Macs, which is complicated.
Facebook has come up with a system to solve this problem — called Xctool — but LinkedIn engineers found that a Python wrapper they built for it didn’t perfectly meet their needs. For one thing, the Xctool library is no longer maintained. But also “the Python wrapper was built on top of the xctool binary and it didn’t have access to the CoreSimulator APIs,” LinkedIn staff software engineer Keqiu Hu wrote in a blog post. “Managing simulators was difficult, since we couldn’t talk to the simulators directly.”
Microsoft, which offers many iOS apps and maintains several open-source projects, acquired LinkedIn last year.