When an Xcode 27.1 beta project uses an API introduced specifically in iOS 27.1, the same target may fail to compile for Mac Catalyst with diagnostics such as “use of undeclared identifier,” “cannot find,” or “has no member.” Apple documents this as known issue 185924957 and recommends excluding the affected code from Mac Catalyst with build-time conditionals.
Representative errors
error: use of undeclared identifier '<iOS_27_1_API>'
error: cannot find '<iOS_27_1_API>' in scope
error: type '<TypeName>' has no member '<iOS_27_1_API>'
Replace <iOS_27_1_API> and <TypeName> with the symbol names from your build log. Objective-C commonly reports an undeclared identifier, while Swift may report “cannot find” or “has no member,” depending on the API shape.
Cause
The failure occurs when code references an iOS 27.1-specific API from the iOS 27.1 SDK and Xcode compiles that code for Mac Catalyst. The symbol is not correctly exposed or resolved for the Catalyst compilation, so the compiler treats it as unavailable at the declaration level.
Important: If the iOS build succeeds and only the Mac Catalyst build fails, do not assume the cause is a typo or missing import. The behavior may match Apple’s documented Xcode 27.1 beta issue.
Affected conditions and versions
- Xcode 27.1 beta is in use.
- The code references an API introduced specifically in iOS 27.1.
- The same code is compiled for Mac Catalyst.
- Symbol lookup fails during Swift or Objective-C compilation.
Apple lists the problem as issue 185924957 in the Xcode 27.1 beta release notes. As of September 30, 2026, it is also listed as a known issue in the Xcode 27.2 beta 2 release notes. Apple has not identified a fixed version yet.
Recommended solution
1. Compare iOS and Mac Catalyst builds
Build first for an iPhone Simulator or iOS device. Then select a Mac Catalyst destination. Confirm that the iOS build succeeds and the Catalyst build produces the symbol error.
2. Use a Swift build-time conditional
Apply Apple’s workaround by removing the iOS 27.1-specific code from the Mac Catalyst compilation:
#if !targetEnvironment(macCatalyst)
if #available(iOS 27.1, *) {
// Code that uses an iOS 27.1-specific API
}
#else
// Mac Catalyst fallback
#endif
3. Use TARGET_OS_MACCATALYST in Objective-C
#if !TARGET_OS_MACCATALYST
if (@available(iOS 27.1, *)) {
// Code that uses an iOS 27.1-specific API
}
#else
// Mac Catalyst fallback
#endif
4. Add a Catalyst-compatible fallback
If the new API is optional, use an older API, an existing interface, or a no-op fallback for Catalyst. Another option is to move the new API usage into an iOS-only source file and exclude that file from the Catalyst target.
Alternative approaches
- Delay adopting the iOS 27.1-specific API until Apple ships a confirmed fix.
- Isolate the API behind a wrapper function or an iOS-only source file.
- Use target membership so the affected file is not compiled for Catalyst.
- Use a compatible older API for the Mac Catalyst implementation.
If the app does not support Mac Catalyst, also check Supported Destinations to ensure that you are not building a Catalyst destination unintentionally.
How to verify the workaround
- Build for iOS 27.1 and confirm that the new API path compiles.
- Build for Mac Catalyst and confirm that the conditional removes the error.
- Run the Catalyst app and verify the fallback behavior.
- Run on an iOS 27.1 device or Simulator and verify the new API path.
- After installing a newer Xcode beta, test a minimal version without the conditional to determine whether Apple has fixed issue 185924957.
Important notes
if #available(iOS 27.1, *)alone may not solve this problem. It is a runtime availability check and does not hide a symbol that the Catalyst compiler cannot resolve.- Use the build-time checks Apple recommends:
#if !targetEnvironment(macCatalyst)for Swift or#if !TARGET_OS_MACCATALYSTfor Objective-C. - Deleting DerivedData or running Clean Build Folder does not permanently correct this SDK-level known issue.
- No fixed Xcode version has been officially identified. Check future release notes for issue 185924957 before removing the workaround.
Summary
If Xcode 27.1 beta reports “use of undeclared identifier,” “cannot find,” or “has no member” only when an iOS 27.1-specific API is compiled for Mac Catalyst, the build likely matches Apple known issue 185924957. The current recommended workaround is to exclude the affected code from Catalyst with a build-time conditional and provide a Catalyst fallback. Continue tracking Apple’s Xcode release notes because a fixed version has not yet been announced.
