Background
As of April 25, 2023, all app submissions to the App Store must be built with Xcode 14.1 or later.
Symptoms
Errors after migrating to Xcode 14.1 (or later) from an earlier version. Frequent error messages/warnings from the UBA/Xcode logs that are symptomatic of this issue:
-
ld: symbol(s) not found for architecture arm64:
-
[
2022
-
12
-02T11:
06
:
42
.911Z] -
7.2
.
2.2
.
4.2
- [
0
;36mINFO[0m: ▸ ld: symbol(s) not found
for
architecture arm64
[
2022
-
12
-02T11:
06
:
42
.911Z] -
7.2
.
2.2
.
4.2
- [
0
;36mINFO[0m: ▸ clang: error: linker command failed with exit code
1
(use -v to see invocation)
-
-
warning: The iOS deployment target *** is set to *** but the range of supported deployment target versions is *** to ***:
-
warning: The iOS deployment target 'IPHONEOSDEPLOYMENTTARGET' is set to 10.0, but the range of supported deployment target versions is 11.0 to 16.1.99
-
-
Signing for
DEPENDENCY POD NAME
requires a development team.-
error: Signing for "gRPC-C++-gRPCCertificates-Cpp" requires a development team. Select a development team in the Signing & Capabilities editor. (in target 'gRPC-C++-gRPCCertificates-Cpp' from project 'Pods')
-
Causes
While not exclusively the cause, these errors often appear when changing Xcode versions if some components, packages, or plugins are not compatible with the new version of Xcode.
Resolution
The first step is to ensure you can build locally in batch mode with a clean clone of the repository (no locally cached library) and build the Xcode project without any additional changes beyond what you are doing in your Build Automation targets.
After building successfully locally in batch mode with Xcode version 14, ensure the version of cocoapods you are using locally matches the one used in Build Automation and if not, install it using the following pre-build script (this example is for cocoapods version 1.12.0). Pre-build scripts can be configured in the advanced configuration tab for your target:
gem install cocoapods -v 1.12.0 echo "current cocoapods version: " gem which cocoapods
You can check your local version of cocoapods using this command at the terminal:
pod --version
Also, ensure that any changes you are applying to the local Xcode project before building, you are applying to the project in Build Automation as well.
If the above steps do not help resolve the issue, please open a support ticket from the Support section of the Unity Dashboard so the support team can investigate further.
More Information