Developing iOS applications in consistent local environments

Is iOS developer productivity suffering in your organization? Let’s take a scenario of a company with more than one iOS developer working on different iOS projects. In such a setting developers tend to have issues running builds on CI, only to have it pass in their local environment. These types of failures during integrated build and test significantly impact developer productivity. When you dig into these issues, it’s very often because of incorrect global dependency linking, different library versions, incorrect or missing environment variables, or simply that their system is not set up with consistency.



While in theory, it’s possible to sanitize and standardize a developer’s machine, in practice, it’s almost impossible. Developers will always download new libraries and update versions of other tools to accelerate development, sometimes creating conflict with your build tools. Similarly, when iOS developers pull the latest source for development and build it on their systems, they face local build and test failures due to incompatibilities in the configuration of their dev environment. This problem is even bigger when iOS developers are simultaneously working on multiple projects.



Anka Run technology is built to address this issue. It brings the container-based development workflow to the iOS and macOS development world. Until now, it was not possible to package an iOS development environment in a container-like entity and distribute it to your team. Anka Run enables you to do this.



There are two modules in Anka Run. Anka Run for macOS and Anka Registry. Anka Run for macOS is a very lightweight engine with a footprint of 15MB, to create and run macOS VMs. Anka Registry is a repository where these iOS or macOS dev environment VMs are managed and can be pulled to each developer machine, creating a consistent developer experience everyone can use.



First, Anka Run is deployed on all iOS developer machines, and Anka Registry is set up in a docker container. After initial installation is complete, devOps engineers and/or developers can create fully self-contained iOS development environments with all dependencies in an “Anka VM”. This Anka VM is then versioned and pushed to Anka registry.



Next, developers continue to work in their native Xcode IDE or another environment. They pull the respective Anka VM corresponding to multiple projects and configurations on their machine and use them to execute local build and unit tests. With the ‘anka run’ command developers work from their local command line interface to execute builds and tests inside the Anka VMs.



The end result is that iOS developers are always building and testing against a common set of dependencies and linkages, without the need to set these on their machines. Simply put, Anka enables an agile and developer-centric approach.



Watch this video to see all Anka Run components in action.


Share this post

anka2024v1-1536x768
A Year of Anka: Highlights from 2024
We’re starting a new annual tradition here at Veertu with our A Year of Anka blog posts. We want our customers to know how the product has grown over the past year and think this is a great avenue to do so. Please enjoy and happy holidays from all...
Read More
anka-or-1
Anka vs Orka in 2024
It has been several years since we made our first side by side comparison between Anka and Orka. A lot has changed, and we believe it’s important to make sure the information out there is accurate. We’ll be specifically addressing a newer...
Read More
networking-performancev1
Unlocking Superior macOS VM Network Performance: Introducing Anka's new networking mode for Apple Silicon
Large and complex enterprises using Anka have many different demands, and we have worked to continue to develop innovative technology to meet these demands. Enterprise infrastructure hardware is often on the cutting edge, and they need advanced capabilities...
Read More
gitlab-with-anka
Anka Cloud Gitlab Executor
Veertu’s Anka and the new Anka Cloud Gitlab Executor Veertu’s Anka is a suite of software tools built on the macOS virtualization platform. It enables the execution of single or multi-use macOS virtual machines (VMs) in a manner similar to Docker....
Read More
mac-scan-v1
Real-Time CVE Scanning of your macOS Build Systems
It’s common that an organization’s macOS build system will download thousands, sometimes tens of thousands of third-party dependencies every hour. When building and testing iOS applications, it typically downloads and installs third-party...
Read More
anka-on-silicon-v1
The ONLY Fully Automated Apple Silicon macOS VM Creation Solution
Starting in Anka 3.1 we announced that Anka is now able to fully automate the macOS installation processes, disabling SIP, and enabling VNC — all previously manual steps users had to perform inside o the VM. At the time of writing this article,...
Read More
anka_click
Scripting macOS UI User Actions With Anka Click
Starting in Anka 3.2, we’ve introduced a solution for scripting macOS UI user actions. You may ask, “Why would I want to do that?”. Well, often macOS configuration and applications do not have a CLI allowing you to perform certain actions...
Read More
mac-scan-fullscan-shells-v3
Real-time, continuous scan of file downloads on macOS for security vulnerabilities
Today, we are announcing the Beta availability of the Mac Scan solution. Mac Scan software runs on macOS systems (bare metal, virtual, EC2 Mac) and scans downloads in real time for security vulnerabilities. There are multiple scenarios why you would...
Read More
Screen Shot 2022-10-17 at 10.13
Anka 3.1- Fully automated VM macOS installation & The Behavior-Driven macOS UI Automation Framework
We are very happy to announce the General Availability of Anka 3.1 for Apple Silicon / ARM macs. In this release, we are taking our approach to iOS CI automation one step further by introducing a Behavior-Driven macOS UI Automation Framework in Anka,...
Read More
ankam1v2
Migrating from Anka on Intel to Anka on M1 Mac for iOS CI
In this blog, we will cover the key topics for migrating from Anka on Intel to Anka on M1/M2 Macs. Anka is an IaaC solution from Veertu to set up an agile Container like CI for iOS CI using macOS VMs. Anka for Intel uses Apple’s Hypervisor.Framework virtualization...
Read More