Static library produced by Xcode 26 causes link error on Xcode 16

When a static library is built with Xcode 26 (with deployment target set to iOS 13) and then linked into an app project compiled with Xcode 16, the build process fails with the following linker error:

Undefined symbols for architecture arm64:
  "_swift_coroFrameAlloc"

This occurs even though both the static library and the app project have their deployment targets set to iOS 13.0. The static library works on Xcode 26, but fails to link on Xcode 16.

This issue shows up with certain Swift syntax. For example, in my case, using a property getter and setter caused the compiler to emit a reference to _swift_coroFrameAlloc, which in turn triggered the issue.

This issue prevents us from distributing pre-built static libraries compiled with Xcode 26 to teammates who are still using Xcode 16.

I’ve filed feedback for this issue (FB21130604).

Is there any way to work around it? For example, by adding specific Build Settings or something similar?


A demo project is available here: https://github.com/Naituw/SwiftLibraryDeploymentTargetIssue

The demo project includes:

  • StaticLibraryProject: A simple Swift static library with property getter setter usage
  • AppProject: An iOS app that links against the static library
  • verify_compatibility.sh: An automated script to reproduce the issue

Method 1: Manual Build and Verification

  1. Open StaticLibraryProject/StaticLibraryProject.xcodeproj in Xcode 26
  2. Build the StaticLibraryProject for iOS device (Release configuration)
  3. Locate the built libStaticLibraryProject.a in the build products directory
  4. Copy libStaticLibraryProject.a to AppProject/AppProject/ directory
  5. Open AppProject/AppProject.xcodeproj in Xcode 16
  6. Build the AppProject for iOS device

Method 2: Automated Script

  1. Edit verify_compatibility.sh to configure the paths to your Xcode installations:
    • Set XCODE_26_PATH to your Xcode 26 installation path (e.g., /Applications/Xcode.app)
    • Set XCODE_16_PATH to your Xcode 16 installation path (e.g., /Applications/Xcode16.app)
  2. Run the script: ./verify_compatibility.sh
Static library produced by Xcode 26 causes link error on Xcode 16
 
 
Q