Xcode 27 marks an existing project as locked; Unlock requests missing project.xcproj

On Xcode 27 with macOS 27.0.1, I observed Xcode marking an existing project as locked because its file supposedly did not exist.

The project used the traditional project.pbxproj format. That file existed, parsed successfully, was readable, and had no filesystem lock flags. Command-line builds succeeded, but the editor continued to show the lock warning.

Selecting Unlock produced this error:

The file “project.xcproj” could not be unlocked. Could not find the file.

There was no project.xcproj in that PBX-format project.

A separate minimal iOS project also reproduced the same missing-file lock warning. That sample contains one application target, a minimal Swift source file, and signing disabled. This reproduction suggests the warning is not specific to the main application's source or extensions.

These observations were recorded on 10 October 2026. I have not retested the sample today.

Apple Developer Technical Support directed me to post the issue here.

Is this a known project-lock tracking issue involving the alternative project filenames? What supported diagnostic evidence would help establish why Xcode reports the project as locked, and is there a supported workaround that preserves the existing project format?

A standalone reproduction was prepared during the investigation. I can arrange to share it after checking the files for public release.

Thanks for the post. Trying to understand what you mean with locking a project because they do not exist?

If there is an issue with Xcode 27.1+ will be great trying to figure it out so can be fixed. To help establish exactly why Xcode is looking for project.xcproj and failing, you should gather the following before filing a report via Feedback Assistant. Run sudo fs_usage -w -f filesys Xcode in Terminal, then click "Unlock" in Xcode. Stop the trace and filter the output for xcproj. This will provide concrete evidence of the exact file path and system calls Xcode is attempting to make, proving that it is looking for the wrong file extension.

Trigger a sysdiagnose immediately after reproducing the error in the minimal project. Attach this, and the standalone reproduction project, to a the bug report.

Once you open the bug report, please post the FB number here for my reference.

If you have any questions about filing a bug report, take a look at Bug Reporting: How and Why?

Albert  WWDR

Follow-up (3 November 2026): I reproduced the project-level Unlock failure in Xcode 27.2 (27B52) with a fresh test project called UnlockProbe. Its .xcodeproj bundle contains the JSON project.xcproj and no project.pbxproj. Xcode opens it and displays Build Settings.

To reproduce, select the project in the Project Navigator, open Build Settings, click the padlock at the far right of the editor breadcrumb bar, then click Unlock.

Expected: Xcode uses the active JSON project definition when determining whether the project can be edited.

Actual: Xcode says the project is locked because the file does not exist. After choosing Unlock, it reports that project.pbxproj could not be unlocked because it could not find the file.

This is the reverse of my October reproduction: the traditional PBX-format project prompted for the missing JSON definition, while the fresh JSON-format project prompts for the missing PBX definition. The two tests suggest the editor’s Unlock action can look for a different project definition than the one Xcode opened.

I also retested the original LockRepro sample on 3 November 2026 in Xcode 27.2 (27B52). The sample still uses the Property List format, with project.pbxproj present and no project.xcproj.

Xcode opened the project and displayed Build Settings. I clicked the project padlock, confirmed the dialog named LockRepro.xcodeproj, and clicked Unlock once. Xcode reported: “The file ‘project.xcproj’ could not be unlocked.” It said it could not find the file.

This confirms both directions on the same Xcode version. For LockRepro (Property List), Unlock looked for the missing project.xcproj. For UnlockProbe (JSON), Unlock looked for the missing project.pbxproj. Both projects opened successfully before the Unlock action.

Thanks for the follow up. I would recommend that if you provide a focused sample that we can easly see what you are seeing that will be helpful to move this to the correct action.

Do you get the same results with just the relevant code in a small test project?
If so, please share a link to your test project.
That'll help us better understand what's going on.
If you're not familiar with preparing a test project, take a look at
Creating a test project.

Albert  WWDR