Select Page

Managing Xcode

What is Xcode?

Xcode is Apple’s app building software. When you build apps for iOS with Scripture App Builder, you must build them with a macOS device, and you use (but do not interact with) Xcode – SAB uses Xcode command line tools in the background. The SAB documentation has us use the Xcode version from the Mac App Store, and this is the easiest way to do it but has some limitations.

Apple is in the hardware business, and that means getting users to upgrade. One way they do that is to steadily increase in a few ways the version of iOS devices need to be running to install and update apps in the App Store. 

For example, as of this writing, in September 2024,

  • to submit an app to the App Store, you need to be running at least Xcode 15.
  • Xcode 15 will only build for iOS 12 and up.
  • So that means that anyone who has a device limited to iOS 11 will not be able to install or update your app.

Current Xcode requirement

All iOS and iPadOS apps uploaded to App Store Connect must be built with a minimum of Xcode 15 and the iOS 17 SDK. Starting April 2025, all iOS and iPadOS apps uploaded to App Store Connect must be built with the iOS 18 SDK.

source

And this enforced iOS minimum version creep continues each year. Apple controls this forced iOS increment at the App Store level, but also at the Xcode level – if you have automatic updates turned on, your Xcode will automatically update, your Mac will automatically update to the latest version of macOS, which then limits which versions of Xcode you can run, all of which limits which versions of iOS you can build for.

We as app builders can’t control all levels of this, but we can do a couple of things to make sure we’re building for the largest number of users, which is just make sure we’re building with the oldest version of Xcode that the App Store will accept so the lowest iOS levels possible will be included.

Delay Xcode upgrade

There’s a window each year where the new Xcode version is out but not required by the App Store. Delaying the upgrade to Xcode will help your users with older devices be able to install and upgrade. There are a couple of ways of doing this.

Manually install Xcode

Instead of installing Xcode from the App Store, install from this site the lowest version that the App Store will accept.

(If you’ve already Xcode installed, you can uninstall the App Store version).

First check out this page to see what the current Xcode requirement is. (https://developer.apple.com/ios/submit/)

Then go to this page to grab that minimum version.

https://xcodereleases.com/

It will not auto-update, so you’ll have to manually update it when the requirement changes. You’ll know when Transporter rejects your build for not being up to date with the requirement.

Xcode version control

There is another way of installing and tracking Xcode which allows you to keep several versions around for testing or if you are using Xcode for other kinds of projects outside of SAB. 

The Xcodes app (not to be confused with Xcode itself) allows you to manage your Xcode installations. You can install one or a few versions. 

Below you can see I’ve got the current 15.3 installed, and also the 15.0 that fixes a couple of current issues for SAB. This is the minimum required right now, or I’d go back even farther. 

When you add a new version of Xcode, you can make it the active version by clicking on Make Active on the right pane after selecting that version. Below clicking on Make Active would make 15.3 the version that SAB uses when building. 

Wrapping up

iOS creep is a headache that Apple is creating for us needlessly – and long term there is no solution as eventually the App Store requirements will catch up with us each year, but we can at least widen the update window for our users while still taking advantage of macOS security and feature updates.

 

brown and white track field

Getting your bearings in digital: Where do I start?

So you're convinced - your team should start to develop a digital strategy. What are the first steps? Be realistic about today Not every country has the majority of the population connected to the internet. Even where the vast majority of the population is connected,...
pexels-photo-699122.jpeg

About screenshots for the app stores

Why do I need screenshots? When you make an app your job is half over - now that you have an app, people need to get excited about it! That means putting it on the app store in an appealing way, making a landing page for your app, and even putting ads on social media....

How to test your app on an emulator instead of a phone

What is an emulator? An emulator is a copy of Android or iOS running on your desktop computer in a virtual machine. You can use an emulator to test your apps right on your computer rather than installing them on a separate physical device. Here you see two different...
white and black digital device displaying graph

How to reduce the size of your audio for apps

Reducing app sizeGetting your apps on the app stores is important, because it greatly extends your reach - rather than passing your apps phone to phone you can access the app anywhere in the world! With apps that are heavy on audio however, it can be tough to get...

Getting started with no-code apps

Why make an app? There are many ways apps can help in your digital strategy.If your language group does not have a dedicated Bible app with menus in the language and colors and graphics specifically chosen according to their preferences, that would be a great place to...
low angle view of lighting equipment on shelf

Getting started with videos

Why make videos? Videos are a key part of digital strategies, whether it's for short-format Facebook ads, long-format YouTube videos, or how-to guides for your apps. When getting started with creating videos for your work, you need software and content. Software If...
photo of imac near macbook

Getting started with websites

Why a website? Digital strategies often incorporate a website, or even several websites. A site is a central component of a media to movements strategy, but you may find a site useful for other reasons as well. Landing pages for your apps A home page for your...