iOS build failing - corrupt xcodeproj in Fastlane

  • eas-cli versions 0.30.1 and 0.37.0
  • expo 41
  • verified no issue building with --local
  • build id ecd3a766-ed13-4998-b801-022a7559b143

Error is in the Fastlane step - the xcodeproj file can’t be open because its corrupted:

is damaged and cannot be opened due to a parse error. Examine the project file for invalid edits or unresolved source control conflicts.

I’m confused because this thankfully works with --local and there isn’t any merge conflict in the file. Running plutil -lint results in no errors. There have been no changes to the file besides build and version bumps.

Thanks!

Hey @matthoffner1, could you try re-cloning and force cleaning your git repo to see if that resolves the corrupt xcodeproj issue?

Cheers,
Adam

1 Like

@adamjnav I’m still having issues, I’ve tried this on a fresh clone and run git clean. I’m confused why this would just start happening after months of no issues with our current configuration and that it works locally.

would you be able to rollback to your last known working commit and verify that build works? if so, can you try bisecting where this issue arises? this may help also: fyi/manual-debugging.md at master · expo/fyi · GitHub

Thanks @notbrent - I’ve definitely tried checking out the previous branch that was successful and haven’t had any luck getting that build to work again.

It is very time consuming and frustrating to troubleshoot this. I can’t figure out what would have changed, especially considering the local build which is on a clean git branch is working. I’ve tried git bisect and verified the pbxproj was valid for each commit. The only changes have been version bumps as mentioned.

have you tried running eas build --local and verified that way? this does definitely sound frustrating, sorry i don’t have a better answer, it’s tough without having a minimal reproducible example. another thing you could try is upgrading to sdk 43.

Thanks @notbrent yeah --local works which makes this less urgent. We will look into upgrading to sdk 43, but its very concerning that a previous sdk would suddenly stop without warning.

I can reproduce this as well. Builds that were successful ~6 days ago now fail to build with the error message describe above.

1 Like

if someone can please try breaking this down to a minimal reproducible example it’d be appreciated fyi/manual-debugging.md at main · expo/fyi · GitHub

From Discord:

After debugging builds locally for a while, here’s what I found

We have different product names and bundle identifiers for Release and Debug configuration (“Simplero” is for “Release”, “Simplero Dev” is for “Debug” - notice the product name has a space).

Debugging using eas build --local, I saw the same corruption message. Since the other person in the forum post can run eas build locally just fine, I am assuming they might be on an older eas-cli version (or maybe our issues are completely different).

Checking out the build’s project.pbxproj, I see CODE_SIGN_ENTITLEMENTS is changed to
CODE_SIGN_ENTITLEMENTS = Simplero/Simplero Dev.entitlements; for some reason and the original entitlement file (Simplero/Simplero.entitlements) is moved to Simplero/Simplero Dev.entitlements.

Notice no quotes around the value which has a space, I think that is the reason parsing fails.
(Even building with explicit buildConfiguration and scheme set, the entitlement file was still moved to “Simplero Dev.entitlements”).

Anyway, renaming our “Debug” product name to “SimpleroDev”, and everything seems to be working once again)

this will be resolved in the next deploy: [config-plugins] fix setting CODE_SIGN_ENTITLEMENTS by dsokal · Pull Request #4007 · expo/expo-cli · GitHub

1 Like

Thank you @simplerodevs and @notbrent I can confirm that removing the space in the entitlements files resolved my build issue.