From 8eba0f65943419ffc1e258ba7d532e5970066027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Minh=20Nguy=E1=BB=85n?= Date: Fri, 1 May 2020 12:44:47 -0700 Subject: [PATCH] [ios] Adopt Apple Generic Versioning --- platform/darwin/darwin.xcconfig | 4 +-- .../darwin/test/MGLAttributionInfoTests.m | 2 +- platform/darwin/test/MGLVersionNumber.m | 7 +--- platform/ios/ios.xcodeproj/project.pbxproj | 33 ++++++++++--------- platform/ios/scripts/package.sh | 4 --- platform/ios/scripts/update-version.sh | 32 ++++++++++++++++++ .../macos/macos.xcodeproj/project.pbxproj | 6 ---- 7 files changed, 54 insertions(+), 34 deletions(-) create mode 100755 platform/ios/scripts/update-version.sh diff --git a/platform/darwin/darwin.xcconfig b/platform/darwin/darwin.xcconfig index 2eebeff35..f87b68ef2 100644 --- a/platform/darwin/darwin.xcconfig +++ b/platform/darwin/darwin.xcconfig @@ -81,8 +81,8 @@ OTHER_SWIFT_FLAGS = -warnings-as-errors // User defined BITCODE_GENERATION_MODE = bitcode CURRENT_COMMIT_HASH = deadbeef -CURRENT_SEMANTIC_VERSION = 1.0.0 -CURRENT_SHORT_VERSION = 1.0 +CURRENT_SEMANTIC_VERSION = 0.0.0 +CURRENT_SHORT_VERSION = 0.0 // TODO: CLANG_USE_OPTIMIZATION_PROFILE = NO diff --git a/platform/darwin/test/MGLAttributionInfoTests.m b/platform/darwin/test/MGLAttributionInfoTests.m index b6f053a8a..510b67760 100644 --- a/platform/darwin/test/MGLAttributionInfoTests.m +++ b/platform/darwin/test/MGLAttributionInfoTests.m @@ -67,7 +67,7 @@ XCTAssertEqualObjects([infos[3] feedbackURLAtCenterCoordinate:mapbox zoomLevel:14], [NSURL URLWithString:urlString]); - urlString = [NSString stringWithFormat:@"https://apps.mapbox.com/feedback/?referrer=%@&owner=mapbox&id=satellite-streets-v99&access_token=pk.feedcafedeadbeefbadebede&map_sdk_version=1.0.0#/77.63680/12.98108/3.14/90.9/13", bundleId]; + urlString = [NSString stringWithFormat:@"https://apps.mapbox.com/feedback/?referrer=%@&owner=mapbox&id=satellite-streets-v99&access_token=pk.feedcafedeadbeefbadebede&map_sdk_version=0.0.0#/77.63680/12.98108/3.14/90.9/13", bundleId]; XCTAssertEqualObjects([infos[3] feedbackURLForStyleURL:styleURL atCenterCoordinate:mapbox zoomLevel:3.14159 direction:90.9 pitch:12.5], [NSURL URLWithString:urlString]); } diff --git a/platform/darwin/test/MGLVersionNumber.m b/platform/darwin/test/MGLVersionNumber.m index 9404145c9..722256b99 100644 --- a/platform/darwin/test/MGLVersionNumber.m +++ b/platform/darwin/test/MGLVersionNumber.m @@ -9,12 +9,7 @@ @implementation MGLVersionTests - (void)testVersionNumber { -#if TARGET_OS_IPHONE - XCTAssertEqual(1, MapboxVersionNumber); -#else - XCTAssertGreaterThan(MapboxVersionNumber, 1); - XCTAssertGreaterThan(MapboxVersionString[0] + MapboxVersionString[1] + MapboxVersionString[2], 0); -#endif + XCTAssertGreaterThanOrEqual(MapboxVersionNumber, 0); } @end diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index ca1c7a800..b9f497915 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -3601,6 +3601,7 @@ CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 15254; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_PREPROCESSOR_DEFINITIONS = ""; @@ -3612,6 +3613,7 @@ SYMROOT = ../../build/ios; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; }; name = RelWithDebInfo; }; @@ -3623,7 +3625,7 @@ CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = GJZR2MEM28; - INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; + INFOPLIST_FILE = app/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxGL; PRODUCT_NAME = "Mapbox GL"; @@ -3650,7 +3652,7 @@ "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/vendor/expected/include", "$(PROJECT_DIR)/../../platform/darwin/include", ); - INFOPLIST_FILE = "$(SRCROOT)/benchmark/Info.plist"; + INFOPLIST_FILE = benchmark/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.bench; PRODUCT_NAME = "Bench GL"; @@ -3663,10 +3665,9 @@ buildSettings = { BITCODE_GENERATION_MODE = bitcode; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 15254; DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; INFOPLIST_FILE = framework/Info.plist; @@ -3676,7 +3677,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox; PRODUCT_NAME = Mapbox; SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; }; name = RelWithDebInfo; @@ -3687,6 +3687,7 @@ buildSettings = { BITCODE_GENERATION_MODE = bitcode; DEFINES_MODULE = YES; + DYLIB_CURRENT_VERSION = 15254; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/include", "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/platform/default/include", @@ -3818,6 +3819,7 @@ CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 15254; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_TESTABILITY = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -3831,6 +3833,7 @@ SDKROOT = iphoneos; SYMROOT = ../../build/ios; TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; @@ -3840,6 +3843,7 @@ CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 15254; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_PREPROCESSOR_DEFINITIONS = ""; @@ -3851,6 +3855,7 @@ SYMROOT = ../../build/ios; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; @@ -3862,7 +3867,7 @@ CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = GJZR2MEM28; - INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; + INFOPLIST_FILE = app/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxGL; PRODUCT_NAME = "Mapbox GL"; @@ -3877,7 +3882,7 @@ CLANG_ANALYZER_LOCALIZABILITY_EMPTY_CONTEXT = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = NO; DEVELOPMENT_TEAM = GJZR2MEM28; - INFOPLIST_FILE = "$(SRCROOT)/app/Info.plist"; + INFOPLIST_FILE = app/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.MapboxGL; PRODUCT_NAME = "Mapbox GL"; @@ -3943,10 +3948,9 @@ buildSettings = { BITCODE_GENERATION_MODE = bitcode; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 15254; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = framework/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -3954,7 +3958,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox; PRODUCT_NAME = Mapbox; SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; }; name = Debug; @@ -3965,11 +3968,10 @@ buildSettings = { BITCODE_GENERATION_MODE = bitcode; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DEPLOYMENT_POSTPROCESSING = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; + DYLIB_CURRENT_VERSION = 15254; DYLIB_INSTALL_NAME_BASE = "@rpath"; GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; INFOPLIST_FILE = framework/Info.plist; @@ -3980,7 +3982,6 @@ PRODUCT_NAME = Mapbox; SKIP_INSTALL = YES; STRIP_STYLE = "non-global"; - VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; }; name = Release; @@ -4013,6 +4014,7 @@ buildSettings = { BITCODE_GENERATION_MODE = bitcode; DEFINES_MODULE = YES; + DYLIB_CURRENT_VERSION = 15254; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/include", "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/platform/default/include", @@ -4052,6 +4054,7 @@ BITCODE_GENERATION_MODE = bitcode; DEFINES_MODULE = YES; DEPLOYMENT_POSTPROCESSING = YES; + DYLIB_CURRENT_VERSION = 15254; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/include", "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/platform/default/include", @@ -4106,7 +4109,7 @@ "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/vendor/expected/include", "$(PROJECT_DIR)/../../platform/darwin/include", ); - INFOPLIST_FILE = "$(SRCROOT)/benchmark/Info.plist"; + INFOPLIST_FILE = benchmark/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.bench; PRODUCT_NAME = "Bench GL"; @@ -4133,7 +4136,7 @@ "$(PROJECT_DIR)/../../vendor/mapbox-gl-native/vendor/expected/include", "$(PROJECT_DIR)/../../platform/darwin/include", ); - INFOPLIST_FILE = "$(SRCROOT)/benchmark/Info.plist"; + INFOPLIST_FILE = benchmark/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.bench; PRODUCT_NAME = "Bench GL"; diff --git a/platform/ios/scripts/package.sh b/platform/ios/scripts/package.sh index f629e103e..dc3a518cb 100755 --- a/platform/ios/scripts/package.sh +++ b/platform/ios/scripts/package.sh @@ -85,8 +85,6 @@ fi step "Building ${FORMAT} framework for iOS Simulator using ${SCHEME} scheme" xcodebuild \ - CURRENT_PROJECT_VERSION=${PROJ_VERSION} \ - CURRENT_SHORT_VERSION=${SHORT_VERSION} \ CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ CURRENT_COMMIT_HASH=${HASH} \ ONLY_ACTIVE_ARCH=NO \ @@ -101,8 +99,6 @@ xcodebuild \ if [[ ${BUILD_FOR_DEVICE} == true ]]; then step "Building ${FORMAT} framework for iOS devices using ${SCHEME} scheme" xcodebuild \ - CURRENT_PROJECT_VERSION=${PROJ_VERSION} \ - CURRENT_SHORT_VERSION=${SHORT_VERSION} \ CURRENT_SEMANTIC_VERSION=${SEM_VERSION} \ CURRENT_COMMIT_HASH=${HASH} \ ONLY_ACTIVE_ARCH=NO \ diff --git a/platform/ios/scripts/update-version.sh b/platform/ios/scripts/update-version.sh new file mode 100755 index 000000000..8927d23cf --- /dev/null +++ b/platform/ios/scripts/update-version.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail +set -u + +function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } +function finish { >&2 echo -en "\033[0m"; } +trap finish EXIT + +if [ $# -eq 0 ]; then + echo "Usage: v" + exit 1 +fi + +SEM_VERSION=$1 +SEM_VERSION=${SEM_VERSION/#macos-} +SEM_VERSION=${SEM_VERSION/#v} +SHORT_VERSION=${SEM_VERSION%-*} + +step "Version ${SEM_VERSION}" + +cd platform/ios/ + +step "Updating Xcode targets to version ${SHORT_VERSION}…" + +xcrun agvtool bump -all +xcrun agvtool new-marketing-version "${SHORT_VERSION}" + +step "Updating CocoaPods podspecs to version ${SEM_VERSION}…" + +find . -type f -name '*.podspec' -exec sed -i '' "s/^ *version *=.*$/ version = '${SEM_VERSION}'/" {} + diff --git a/platform/macos/macos.xcodeproj/project.pbxproj b/platform/macos/macos.xcodeproj/project.pbxproj index 486cda924..62c3f6533 100644 --- a/platform/macos/macos.xcodeproj/project.pbxproj +++ b/platform/macos/macos.xcodeproj/project.pbxproj @@ -2009,8 +2009,6 @@ COPY_PHASE_STRIP = NO; CURRENT_COMMIT_HASH = deadbeef; CURRENT_PROJECT_VERSION = 15254; - CURRENT_SEMANTIC_VERSION = 0.15.0; - CURRENT_SHORT_VERSION = 0.15.0; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -2078,8 +2076,6 @@ COPY_PHASE_STRIP = NO; CURRENT_COMMIT_HASH = deadbeef; CURRENT_PROJECT_VERSION = 15254; - CURRENT_SEMANTIC_VERSION = 0.15.0; - CURRENT_SHORT_VERSION = 0.15.0; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -2182,7 +2178,6 @@ PRODUCT_BUNDLE_IDENTIFIER = com.mapbox.Mapbox; PRODUCT_NAME = Mapbox; SKIP_INSTALL = YES; - VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; }; name = Debug; @@ -2208,7 +2203,6 @@ PRODUCT_NAME = Mapbox; SKIP_INSTALL = YES; STRIP_STYLE = "non-global"; - VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = "__attribute__((visibility (\"default\"))) "; }; name = Release;