Skip to content

Missing libarclite_iphoneos.a in Xcode 14.3

Problem Statement

When building iOS projects in Xcode 14.3 or later, developers may encounter this critical error:

shell
File not found: 
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

This error occurs because Xcode 14.3 removed support files for older iOS deployment targets (below iOS 11.0). Projects or dependencies targeting these unsupported iOS versions will fail with this missing file error during compilation.

Why This Happens

Background

Xcode 14.3 dropped support for legacy deployment targets:

  • Apple removed ARC support files (libarclite_iphoneos.a) for iOS versions below 11.0
  • Any project or dependency with target set to iOS <11.0 will trigger this error

1. Update iOS Deployment Targets

Method A: Through Xcode UI

  1. Open your project in Xcode
  2. Select Pods project in the left navigator
  3. For each pod target:
    • Select the target
    • Go to Build Settings
    • Set "iOS Deployment Target" to ≥11.0

Method B: Clean Build Folder

  1. After updating deployment targets:
    • Xcode menu → Product → Clean Build Folder
    • Or: ⇧⌘K + ⌥⇧⌘K

Add this to your Podfile:

rb
post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        # Only update targets with unsupported OS versions
        current_target = config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' if current_target < 11.0
      end
    end
  end
end

Then execute these terminal commands:

bash
cd [project_directory]
pod deintegrate
pod install

3. Update Project Deployment Target

  1. Select your main project target
  2. Go to GeneralMinimum Deployments
  3. Set target to ≥11.0

4. Flutter-Specific Solution

For Flutter projects:

bash
flutter upgrade 3.7.12+  # Fixed in 3.7.11+

5. Alternative Workaround

If issues persist during archiving:

  1. Locate Pods-YourApp-frameworks.sh:
    Pods/Target Support Files/Pods-YourApp/Pods-YourApp-frameworks.sh
  2. Find this line:
    sh
    source="$(readlink "${source}")"
  3. Replace with:
    sh
    source="$(readlink -f "${source}")"

Why These Solutions Work

  • Apple removed ARC support for iOS <11.0
  • Setting deployment targets ≥11.0 aligns with Xcode 14.3 requirements
  • The Podfile script automates updates across dependencies
  • Flutter hotfixes resolved compatibility issues directly
  • Archiving script modification handles path resolution errors

Pro Tip

After making changes, always:

  1. Clean build folder (Shift + Cmd + K)
  2. Delete Derived Data (Xcode → Preferences → Locations)

::: success Best Practice Maintain deployment targets at iOS 12.0+ for current projects to avoid legacy dependency issues. :::

As a last resort, download missing ARC libraries:

bash
sudo git clone https://github.com/MojtabaHs/xcode-arc \
`xcode-select -p`/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc

WARNING

This is a temporary workaround and not a sustainable solution. It may cause future Xcode update conflicts.

By updating deployment targets and applying these configuration changes, projects will build successfully in Xcode 14.3+. For ongoing maintenance, ensure all dependencies support iOS 11.0+ to prevent recurrence.