Xcconfig Explained

Xcode project files can get messy as projects grow in size and complexity. The complexity is increased when there are multiple environments or configurations, each with unique settings. Xcconfig files are a way to manage this complexity. Let’s dive into understanding how to use Xcconfig files in Xcode projects. What is an Xcconfig file? An Xcconfig, or Xcode configuration file, is a plain text file used by Xcode to externalise configuration settings for build systems. These files use the .xcconfig file extension and can contain build settings, variable declarations, comments, etc. ...

May 15, 2023 · Mike Gopsill ·  Tools

Target Dependencies vs Link Binary with Libraries

When developing iOS applications with Xcode, it’s essential to understand the difference between “Target Dependencies” and “Link Binary with Libraries.” These two options found in the Build Phases settings of a target play vital roles in defining how your app interacts with external code. In this article, we’ll discuss what these options do and how they are different. Understanding Targets Before we delve into the differences, let’s first understand what a ‘Target’ is in Xcode. A target specifies a set of build configurations which define how to build a product in Xcode. It could be an app, a framework, or a unit test bundle. Each target contains information about how to build the product, including build settings, build phases, and the product’s dependencies. ...

May 12, 2023 · Mike Gopsill ·  Tools

Codespaces with a Swift Package

In this post we will learn how to build a Swift Package using a GitHub Codespace. I did this recently as an experiment. It was easier than expected. The codespace was quick to build and test on too. It could be a useful tool when you have a poor local environment, e.g. an aging Intel MacBook. That said, there’s limitations too. What are Codespaces Github codespaces are development environments in the cloud. They allow you to develop from your browser. Opening a codespace displays a VS Code IDE. You can install libraries, dependencies and tools. You can run any code you write in the terminal. ...

February 16, 2023 · Mike Gopsill ·  Tools