[ObjC] Raise the min OS versions (and required Xcode)
Xcode min: 13.3.1
iOS min: 10.0
macOS min: 10.12
tvOS min: 12.0
watchOS min: 6.0
Apple's AppStore requirements now require Xcode 13:
https://developer.apple.com/news/?id=2t1chhp3
Update to the minOS version and Xcode version that also matches what Firebase
as done as that seems like a common set for most Apple platforms
(https://firebase.google.com/docs/ios/setup).
diff --git a/Protobuf.podspec b/Protobuf.podspec
index b3e8434..539bc9f 100644
--- a/Protobuf.podspec
+++ b/Protobuf.podspec
@@ -34,10 +34,10 @@
s.user_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' }
s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=1' }
- s.ios.deployment_target = '9.0'
- s.osx.deployment_target = '10.9'
- s.tvos.deployment_target = '9.0'
- s.watchos.deployment_target = '2.0'
+ s.ios.deployment_target = '10.0'
+ s.osx.deployment_target = '10.12'
+ s.tvos.deployment_target = '12.0'
+ s.watchos.deployment_target = '6.0'
s.requires_arc = false
# The unittest need the generate sources from the testing related .proto
diff --git a/objectivec/DevTools/full_mac_build.sh b/objectivec/DevTools/full_mac_build.sh
index 55b163f..95e8e5b 100755
--- a/objectivec/DevTools/full_mac_build.sh
+++ b/objectivec/DevTools/full_mac_build.sh
@@ -224,20 +224,11 @@
# just pick a mix of OS Versions and 32/64 bit.
# NOTE: Different Xcode have different simulated hardware/os support.
case "${XCODE_VERSION}" in
- [6-9].* )
- echo "ERROR: Xcode 10.2 or higher is required." 1>&2
+ [6-9].* | 1[0-2].* )
+ echo "ERROR: Xcode 13.3.1 or higher is required." 1>&2
exit 11
;;
- 10.*)
- XCODEBUILD_TEST_BASE_IOS+=(
- -destination "platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
- -destination "platform=iOS Simulator,name=iPhone 7,OS=latest" # 64bit
- # 10.x also seems to often fail running destinations in parallel (with
- # 32bit one include at least)
- -disable-concurrent-destination-testing
- )
- ;;
- 11.* | 12.* | 13.* | 14.*)
+ 13.* | 14.*)
# Dropped 32bit as Apple doesn't seem support the simulators either.
XCODEBUILD_TEST_BASE_IOS+=(
-destination "platform=iOS Simulator,name=iPhone 8,OS=latest" # 64bit
@@ -274,8 +265,8 @@
XCODEBUILD_TEST_BASE_OSX+=( -quiet )
fi
case "${XCODE_VERSION}" in
- [6-9].* )
- echo "ERROR: Xcode 10.2 or higher is required." 1>&2
+ [6-9].* | 1[0-2].* )
+ echo "ERROR: Xcode 13.3.1 or higher is required." 1>&2
exit 11
;;
esac
@@ -295,15 +286,10 @@
-scheme ProtocolBuffers
)
case "${XCODE_VERSION}" in
- [6-9].* )
- echo "ERROR: Xcode 10.2 or higher is required." 1>&2
+ [6-9].* | 1[0-2].* )
+ echo "ERROR: Xcode 13.3.1 or higher is required." 1>&2
exit 11
;;
- 10.* | 11.* | 12.*)
- XCODEBUILD_TEST_BASE_TVOS+=(
- -destination "platform=tvOS Simulator,name=Apple TV 4K,OS=latest"
- )
- ;;
13.* | 14.*)
XCODEBUILD_TEST_BASE_TVOS+=(
-destination "platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=latest"
diff --git a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
index 3d07bf2..5f3ffa0 100644
--- a/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_OSX.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 47;
+ objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
@@ -663,7 +663,7 @@
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ProtocolBuffers_OSX" */;
- compatibilityVersion = "Xcode 6.3";
+ compatibilityVersion = "Xcode 13.0";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -857,14 +857,21 @@
CLANG_ENABLE_OBJC_WEAK = YES;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/../Frameworks",
+ );
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = UnitTests;
SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -881,13 +888,20 @@
CLANG_ENABLE_OBJC_WEAK = YES;
COMBINE_HIDPI_IMAGES = YES;
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/../Frameworks",
+ "@loader_path/../Frameworks",
+ );
OTHER_LDFLAGS = "-ObjC";
PRODUCT_BUNDLE_IDENTIFIER = "com.yourcompany.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = UnitTests;
SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h";
SWIFT_VERSION = 4.0;
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -952,7 +966,7 @@
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_PROFILING_CODE = NO;
- MACOSX_DEPLOYMENT_TARGET = 10.9;
+ MACOSX_DEPLOYMENT_TARGET = 10.12;
ONLY_ACTIVE_ARCH = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = macosx;
@@ -1021,10 +1035,11 @@
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_PROFILING_CODE = NO;
- MACOSX_DEPLOYMENT_TARGET = 10.9;
+ MACOSX_DEPLOYMENT_TARGET = 10.12;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = macosx;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
USE_HEADERMAP = NO;
WARNING_CFLAGS = (
"-Wdocumentation-unknown-command",
diff --git a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
index 33cb483..4b4f083 100644
--- a/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_iOS.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 47;
+ objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
@@ -670,7 +670,7 @@
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ProtocolBuffers_iOS" */;
- compatibilityVersion = "Xcode 6.3";
+ compatibilityVersion = "Xcode 13.0";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -869,7 +869,11 @@
"$(inherited)",
);
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(DEVELOPER_DIR)/usr/lib\"",
@@ -880,7 +884,10 @@
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -900,7 +907,11 @@
"$(inherited)",
);
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(DEVELOPER_DIR)/usr/lib\"",
@@ -910,7 +921,10 @@
SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -976,7 +990,7 @@
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_PROFILING_CODE = NO;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
ONLY_ACTIVE_ARCH = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
@@ -1045,10 +1059,11 @@
GCC_WARN_UNUSED_PARAMETER = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
GENERATE_PROFILING_CODE = NO;
- IPHONEOS_DEPLOYMENT_TARGET = 9.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = iphoneos;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
WARNING_CFLAGS = (
"-Wdocumentation-unknown-command",
"-Wundef",
diff --git a/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj b/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
index e9c28e1..3b535ba 100644
--- a/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
+++ b/objectivec/ProtocolBuffers_tvOS.xcodeproj/project.pbxproj
@@ -3,7 +3,7 @@
archiveVersion = 1;
classes = {
};
- objectVersion = 47;
+ objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
@@ -670,7 +670,7 @@
};
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ProtocolBuffers_tvOS" */;
- compatibilityVersion = "Xcode 6.3";
+ compatibilityVersion = "Xcode 13.0";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
@@ -865,7 +865,11 @@
"$(inherited)",
);
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(DEVELOPER_DIR)/usr/lib\"",
@@ -875,7 +879,10 @@
SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 4.0;
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -895,7 +902,11 @@
"$(inherited)",
);
INFOPLIST_FILE = "Tests/UnitTests-Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ "@loader_path/Frameworks",
+ );
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(DEVELOPER_DIR)/usr/lib\"",
@@ -904,7 +915,10 @@
PRODUCT_NAME = UnitTests;
SWIFT_OBJC_BRIDGING_HEADER = "Tests/UnitTests-Bridging-Header.h";
SWIFT_VERSION = 4.0;
- USER_HEADER_SEARCH_PATHS = "${PROJECT_DERIVED_FILE_DIR}/protos $(SRCROOT)";
+ USER_HEADER_SEARCH_PATHS = (
+ "${PROJECT_DERIVED_FILE_DIR}/protos",
+ "$(SRCROOT)",
+ );
WARNING_CFLAGS = (
"$(inherited)",
"-Wno-documentation-unknown-command",
@@ -973,7 +987,7 @@
ONLY_ACTIVE_ARCH = YES;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = appletvos;
- TVOS_DEPLOYMENT_TARGET = 9.0;
+ TVOS_DEPLOYMENT_TARGET = 12.0;
WARNING_CFLAGS = (
"-Wdocumentation-unknown-command",
"-Wundef",
@@ -1041,8 +1055,9 @@
GENERATE_PROFILING_CODE = NO;
RUN_CLANG_STATIC_ANALYZER = YES;
SDKROOT = appletvos;
- SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
- TVOS_DEPLOYMENT_TARGET = 9.0;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
+ TVOS_DEPLOYMENT_TARGET = 12.0;
WARNING_CFLAGS = (
"-Wdocumentation-unknown-command",
"-Wundef",
diff --git a/objectivec/README.md b/objectivec/README.md
index 25e6b23..95f561c 100644
--- a/objectivec/README.md
+++ b/objectivec/README.md
@@ -11,7 +11,7 @@
The Objective C implementation requires:
- Objective C 2.0 Runtime (32bit & 64bit iOS, 64bit OS X).
-- Xcode 10.3 (or later).
+- Xcode 13.3.1 (or later).
- The library code does *not* use ARC (for performance reasons), but it all can
be called from ARC code.