- Published on
- 3 min read
> Fixing CocoaPods "Unknown ISA PBXFileSystemSynchronizedRootGroup" Error
If you've upgraded to Xcode 16 and suddenly pod install or pod init fails with this error, you're not alone:
RuntimeError - [Xcodeproj] Unknown object version (77).
`PBXGroup` attempted to initialize an object with an unknown ISA `PBXFileSystemSynchronizedRootGroup`
This happens because Xcode 16 changed how projects organize files. Older versions of the xcodeproj gem (which CocoaPods uses to parse your project) don't recognize this new structure.
Why This Happens
Xcode 16 introduced "folders" as the default instead of "groups." The difference is significant: groups are artificial constructs stored in your project file, while folders represent the actual file system structure. Apple made this change because folders reduce merge conflicts. Adding files no longer modifies project.pbxproj, making team collaboration easier.
When you create a new target in Xcode 16 (like a Share Extension, Notification Extension, or Widget), Xcode creates it as a folder using the new PBXFileSystemSynchronizedRootGroup type. Versions of xcodeproj before 1.26.0 don't understand this ISA (class type), causing CocoaPods to fail.
Solution 1: Convert Blue Folders to Groups
The quickest fix is converting the problematic folders back to traditional groups:
- Open your project in Xcode
- In the Project Navigator, look for blue folder icons. These are the new folder-based items
- Right-click on the blue folder (usually your extension folder)
- Select Convert to Group
The icon will change to the traditional yellow group icon. Run pod install again and it should work.
If you only see "Convert to Folder" in the menu (grayed out), it's already a group and something else is causing your issue.
Solution 2: Update the Xcodeproj Gem
The proper long-term fix is updating the xcodeproj gem to version 1.26.0 or later:
sudo gem install xcodeproj
If you're using Bundler:
bundle update xcodeproj
You may also need to update CocoaPods:
sudo gem install cocoapods
pod --version # Should be 1.16.0 or higher
Finding Problem Folders
You can search your project file to see which items use the new format:
grep -r "PBXFileSystemSynchronizedRootGroup" YourProject.xcodeproj/
Related Error: Unknown Object Version
You might also encounter this error on Xcode 16.1+:
Unable to find compatibility version string for object version '70'
This can be fixed by editing your project.pbxproj file and changing objectVersion from 70 to 60, though updating the xcodeproj gem handles both issues.
More About Folders vs Groups
For a deeper explanation of why Apple made this change and how folders differ from groups, see this excellent writeup on Xcode folders vs groups. The short version: folders sync with your file system automatically and reduce project file churn, but older tools like CocoaPods need updates to support them.
For the full history of this issue, see the CocoaPods GitHub issue.
// Continue_Learning
Fixing "Supported Deployment Target Versions is 15.0 to 27.0" in Xcode 27
Xcode 27 dropped support for deployment targets below iOS 15. If your build now fails with IPHONEOS_DEPLOYMENT_TARGET set to a lower value and a supported range of 15.0 to 27.0, here is why and how to fix it.
Fixing "-[OS_dispatch_mach_msg _setContext:]: unrecognized selector" on iOS 27
An app that ran fine for years suddenly hangs on the splash screen when you debug it on an iOS 27 device, with an OS_dispatch_mach_msg unrecognized selector in the console. Here is what causes it and the one-line fix.
Testing Push Notifications on iOS Simulators with xcrun simctl push
Learn how to test push notifications on iOS simulators without needing a device or server setup using xcrun simctl push.
// Stay Updated
Get notified when I publish new tutorials on Swift, SwiftUI, and iOS development. No spam, unsubscribe anytime.