Xcode 15 SDK Missing 'libarclite' Error
Problem Statement
After updating to Xcode 15, you may encounter the following build error in iOS projects (especially React Native):
clang: error: SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target
This occurs even when your minimum deployment target is already set to iOS 13.0 or higher. The error stems from obsolete compatibility libraries in outdated dependency configurations.
Root Cause:libarclite
was a compatibility library for projects supporting iOS versions older than 11.0. Xcode 15 removes this library by default. If any dependency targets iOS <11.0, the build fails.
Solutions
Follow either the automated (recommended) or manual solution below to resolve the issue.
1. Automated: Modify Podfile Post-Install Hook (Recommended)
Add a post_install
hook to your Podfile that explicitly sets deployment targets for all dependencies. Replace '13.0'
with your actual deployment target.
post_install do |installer|
# ... existing hooks ...
# Set minimum OS version for all pods
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' # Match your platform version
end
end
end
Steps:
- Open
Podfile
- Locate
post_install do |installer|
- Add the code block above inside the hook
- Run:
pod install --repo-update
2. Manual: Adjust Targets in Xcode
For one-time fixes or small projects:
- Open
.xcworkspace
- Select Pods Project → Targets
- Select all targets
- For each target:
a. Navigate to Build Settings
b. SetiOS Deployment Target
to your app's minimum version (e.g., 13.0)
Why This Happens
Apple states:
"libarclite was necessary for older OS versions but is now obsolete. Audit every target in your project for minimum deployment targets under iOS 11 and update them to at least iOS 11."
— Apple Developer Forum
Best Practices
- Always match pod deployment targets with your app's minimum OS version
- Use the Podfile hook method to ensure consistency across
pod install
runs - Avoid manual
.xcproject
changes—they’re overwritten when pods update
Additional Notes
- React Native specifics: If you previously used workaround functions like
__apply_Xcode_14_3_RC_post_install_workaround
, remove them to avoid conflicts. - Project Health Check: Use iOS ≥11.0 for new projects. For legacy support, validate all third-party dependencies.
- Troubleshooting: After fixes, clean the build folder (
Cmd+Shift+K
in Xcode) before rebuilding.
Final Podfile Structure:
platform :ios, '13.0'
target 'YourApp' do
# ... pod definitions ...
post_install do |installer|
react_native_post_install(installer) # Existing RN hook
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
end