{"id":7324,"date":"2024-10-23T10:45:06","date_gmt":"2024-10-23T08:45:06","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=7324"},"modified":"2024-10-23T10:58:16","modified_gmt":"2024-10-23T08:58:16","slug":"building-ios-apps-with-aws-codebuild-pros-cons-and-our-alternative-solution","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/building-ios-apps-with-aws-codebuild-pros-cons-and-our-alternative-solution\/","title":{"rendered":"Building iOS Apps with AWS CodeBuild: Pros, Cons, and Our Alternative Solution"},"content":{"rendered":"\n

Introduction<\/h2>\n\n\n\n

Have you ever had to create an iOS application on AWS?<\/p>\n\n\n\n

If the answer is no, then this article is for you. And if the answer is yes, this article is still for you!<\/p>\n\n\n\n

Recently, we were tasked with developing an iOS application on AWS for one of our clients. With no alternatives available at the start of the project, we designed a custom solution, which we initially planned to share in this article.<\/p>\n\n\n\n

However, the AWS ecosystem is constantly evolving, and, as luck would have it, AWS CodeBuild now supports Mac Builds<\/a>.<\/p>\n\n\n\n

Why not explore this new possibility right away? What advantages does it bring? How does it differ from the solution we developed?<\/p>\n\n\n\n

We incorporated these considerations into an article, so here we are.<\/p>\n\n\n\n

Let\u2019s dive into the topic without further ado, starting with AWS\u2019s solution.<\/p>\n\n\n\n

\u2018Keep in mind that most of the issues mentioned below are due to the current immaturity of the service. It is new and still brings some limitations that AWS will surely mitigate over time.<\/em>\u2019<\/p>\n\n\n\n

AWS CodeBuild for Apple Systems<\/h2>\n\n\n\n

With the release of the AWS CodeBuild MacOS image, we now have the ability to integrate a machine with a MacOS operating system directly into a pipeline without needing to create custom integration methods. This greatly simplifies and accelerates the infrastructure release, and this is a significant advantage of this solution.<\/p>\n\n\n\n

To keep things organized, let’s break everything down into pros and cons below:<\/p>\n\n\n\n

PRO<\/strong>s<\/p>\n\n\n\n

Serverless<\/strong><\/p>\n\n\n\n

AWS CodeBuild is inherently serverless, allowing us always to have a machine available to release our applications without worrying about potential downtime or manually managing high availability. In other situations, this typically requires having a second machine in a different Availability Zone.<\/p>\n\n\n\n

Cost management<\/strong><\/p>\n\n\n\n

AWS CodeBuild offers the ability to use the same fleet across multiple projects, enabling cost-sharing across several applications and thus reducing the cost per application. However, careful attention will be needed regarding how to manage the setup and configuration dynamically so the same scripts can be reused for each deployment, only changing variables as needed.<\/p>\n\n\n\n

In the long run, this approach provides both economic and management benefits across multiple projects.<\/p>\n\n\n\n

CONs<\/h3>\n\n\n\n

One image available<\/strong><\/p>\n\n\n\n

At this moment, only a single image is available, and it comes with only one specific version of Xcode (the program used to create the .IPA file, which is then released on the App Store).<\/p>\n\n\n\n

This leads to several issues, such as:<\/p>\n\n\n\n