How to Use Xcode 16's Buildable Folders with CocoaPods

A few months ago, I decided to try Xcode’s new buildable folders feature in my project. However, right after converting all my groups to folders, I discovered that CocoaPods had stopped working. Attempting to install project dependencies resulted in the following error: $ pod install ❌ ArgumentError - [Xcodeproj] Unable to find compatibility version string for object version `70`. At the time, I updated CocoaPods to the latest version, confirmed my project format was set to the latest Xcode version (16.3), and tried again. When the issue persisted, I assumed CocoaPods was incompatible with buildable folders and that I would need to migrate to Swift Package Manager (SPM) to use them. This conclusion seemed to be confirmed by several closed GitHub issues where the suggested workaround was to manually convert folders back to groups. ...

June 11, 2025 · Bartosz Kunat

Region-Specific Language Control: Implementing Forced Localization in iOS Apps

My current project has a single target and multiple schemes. Each scheme represents the same app for different countries/regions. It’s essentially the same application with minor adjustments made for each of the supported jurisdictions. In Xcode projects, you define supported languages at the project level (not scheme level). Because of this structure, each app variant inherits the same language settings. My task was to force each app variant to support only the language for the region it was released in. The French app should only support French, no matter what the user’s device language is set to, and so on. This decision was made because large portions of the app are web-based and only supported a single language. ...

April 2, 2025 · Bartosz Kunat

Creating a New Objective-C Project in Xcode 16

Update: 26/03/25 It looks like Objective-C is still an option in the default iOS project template. You can access it after setting the Interface to “Storyboard”. I hadn’t realized these dropdown menus were interconnected. All credit goes to Douglas for spotting this! tl;dr use macOS → Application → Game or Command Line Tool Recently I wanted to refresh my memory on Objective-C. My first thought was to open Xcode, create a new project with language set to Objective-C and play with it. To my surprise, none of the iOS Application project templates allow you to select any other language than Swift. ...

March 25, 2025 · Bartosz Kunat

Verifying VPN Status for Docker qBittorrent on Synology

I run qbittorrent in a Docker container on my Synology NAS, with VPN configured at the Synology system level (Control Panel -> Network -> Network Interface) rather than the container level. For setup instructions, you can follow this guide. Even with killswitch enabled, I wanted to verify beyond the UI’s “Firewalled” status that my torrent traffic was actually routing through the VPN. To check this, SSH into your Synology NAS and run: ...

November 30, 2024 · Bartosz Kunat