Description
For Discussion
This task tracks issues with Xcode 10 as well as the new Xcode build system. This modern build system was originally introduced in Xcode 9, and it is now used by default in Xcode 10.
Troubleshooting
Please take a look at the list of known issues below. If your issue does not match any of these, please try the following:
- Clean up your project.
- Remove any build artifacts.
- Re-build the app.
If that does not work, please do the following to help us keep track of any remaining issues that need to be solved:
- File a new issue.
- Add a link back to this issue, ☂️ Supporting Xcode 10 and the new Xcode build system #19573
A maintainer will then update this post with a reference to your issue as needed.
Known Issues
- When new Xcode build system is used, Xcode build fails to download third-party dependencies #20774 - When new Xcode build system is used, Xcode build fails to download third-party dependencies (workaround in the issue description)
Fixed Issues
-
Xcode signing issues due to Facebook Team ID being used by default in npm release #16881 - Xcode signing issues due to Facebook Team ID being used by default in npm release
-
Xcode 10 libfishhook.a cannot be found #19569 - Xcode 10 libfishhook.a cannot be found
-
Problems with glog (config.h missing) and gflags/gflags.h on Xcode 10 #19774 - glog (config.h missing) and gflags/gflags.h
-
Make run-ios command play nicely with multiple Xcode versions #19781 - wrong iOS simulator is used in Xcode 10
-
Problem with third-party in Xcode 10 building to iOS physical device #19839 - third-party encounters a semantic issue during Xcode builds to physical iOS device
-
Xcode 10: unable to open dependencies file when archiving a project #21137 - Unable to open dependencies file when archiving a project
-
'Multiple commands produce' error when building with new Xcode build system #20492 - 'Multiple commands produce' error when building with new Xcode build system
Opting out of the new Xcode build system
For issues related to the new Xcode build system, you may be able to unblock yourself by switching to the legacy build system.
Using Xcode:
- Go to File, then Project Settings or Workspace Settings.
- Select Legacy Build System from the Build System dropdown.
Using xcodebuild
:
You may use the -UseModernBuildSystem=NO
flag to opt out of the new Xcode build system.
Mitigating issues in future Xcode updates
Currently, our CI runs tests on the latest stable Xcode release. We could have caught many of these issues by doing two things:
- Opting into the new build system in CI
- Using the Xcode 10.0 beta in CI when it was introduced this summer
PRs that add support for either of these are welcome. For the latter, we'd look for Xcode 11 beta support once it's presumably announced next summer.