From 43857045685cc53c69c6b529682579205de91581 Mon Sep 17 00:00:00 2001 From: Aleksei Sapitskii <45671572+aleksproger@users.noreply.github.com> Date: Tue, 24 Sep 2024 16:00:00 +0300 Subject: [PATCH] [lts/v10] Release v10.19.0 (#2311) --- .../xcshareddata/swiftpm/Package.resolved | 12 +++--- CHANGELOG.md | 5 +++ LICENSE.md | 4 +- MapboxMaps.podspec | 8 ++-- Package.resolved | 12 +++--- Package.swift | 6 +-- Sources/MapboxMaps/Info.plist | 4 +- Sources/MapboxMaps/MapboxMaps.json | 2 +- .../MapboxMaps/Style/Style+Localization.swift | 4 +- .../Helpers/Encodable+JsonString.swift | 2 +- .../ExpressionTests/FormatOptionsTests.swift | 8 ++-- .../Style/StyleIntegrationTests.swift | 2 +- .../Style/StyleTransitionTests.swift | 2 +- baselines/binary-size/MapboxMaps.json | 38 +++++++++---------- project.yml | 1 + .../release/packager/create-xcframework.sh | 4 +- scripts/release/packager/versions.json | 6 +-- 17 files changed, 64 insertions(+), 56 deletions(-) diff --git a/Apps/Apps.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Apps/Apps.xcworkspace/xcshareddata/swiftpm/Package.resolved index fbe06ad75f4e..ba0759f698fc 100644 --- a/Apps/Apps.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Apps/Apps.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -15,8 +15,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-common-ios.git", "state": { "branch": null, - "revision": "c2aa7022afdcf5a070ace4e3b608562101a04690", - "version": "23.10.1" + "revision": "462930ede08570c1636601c5d5bdad35c6d96330", + "version": "23.11.0" } }, { @@ -24,8 +24,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-core-maps-ios.git", "state": { "branch": null, - "revision": "51f776b11bcff34ced88fcf14e4ed9c568257232", - "version": "10.18.0" + "revision": "a46690fa9a8def6a5b77f380082bccdf63170a02", + "version": "10.19.1" } }, { @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-events-ios.git", "state": { "branch": null, - "revision": "91ae071c0232c144251dfe0d0724525deaf293d4", - "version": "1.0.10" + "revision": "990bab73cf50242a05f29b6a9cfeb30592150c13", + "version": "2.0.0" } }, { diff --git a/CHANGELOG.md b/CHANGELOG.md index ea980a6ebd31..8e53a68ee3b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ Mapbox welcomes participation and contributions from everyone. +# 10.19.0 - September 24, 2024 + +* Remove bitcode from framework binaries across the stack +* Update MapboxCoreMaps to 10.19.1 and MapboxCommon to 23.11.0, MapboxMobileEvents to 2.0.0 + # 10.18.2 - June 12, 2024 * Update Turf to 2.8.0 diff --git a/LICENSE.md b/LICENSE.md index 0ce6ec901910..3bdc07d15ca6 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ ## License -Mapbox Maps for iOS version 10.18.2 +Mapbox Maps for iOS version 10.19.0 Mapbox Maps iOS SDK Copyright © 2021 - 2024 Mapbox, Inc. All rights reserved. @@ -31,7 +31,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --- -### MapboxCoreMaps,10.18.0,Mapbox ToS,Mapbox,https://www.mapbox.com/ +### MapboxCoreMaps,10.19.0,Mapbox ToS,Mapbox,https://www.mapbox.com/ ``` Mapbox Core Maps version 10.0 diff --git a/MapboxMaps.podspec b/MapboxMaps.podspec index d32f074877f1..b5836977a07d 100644 --- a/MapboxMaps.podspec +++ b/MapboxMaps.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |m| - maps_version = '10.18.2' + maps_version = '10.19.0' m.name = 'MapboxMaps' m.version = maps_version @@ -25,9 +25,9 @@ Pod::Spec.new do |m| # TODO: remove after Cocoapods 1.12 is released m.pod_target_xcconfig = { 'CODE_SIGNING_ALLOWED' => 'NO' } - m.dependency 'MapboxCoreMaps', '10.18.0' - m.dependency 'MapboxMobileEvents', '1.0.10' - m.dependency 'MapboxCommon', '23.10.1' + m.dependency 'MapboxCoreMaps', '10.19.1' + m.dependency 'MapboxMobileEvents', '2.0.0' + m.dependency 'MapboxCommon', '23.11.0' m.dependency 'Turf', '2.8.0' end diff --git a/Package.resolved b/Package.resolved index fbe06ad75f4e..ba0759f698fc 100644 --- a/Package.resolved +++ b/Package.resolved @@ -15,8 +15,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-common-ios.git", "state": { "branch": null, - "revision": "c2aa7022afdcf5a070ace4e3b608562101a04690", - "version": "23.10.1" + "revision": "462930ede08570c1636601c5d5bdad35c6d96330", + "version": "23.11.0" } }, { @@ -24,8 +24,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-core-maps-ios.git", "state": { "branch": null, - "revision": "51f776b11bcff34ced88fcf14e4ed9c568257232", - "version": "10.18.0" + "revision": "a46690fa9a8def6a5b77f380082bccdf63170a02", + "version": "10.19.1" } }, { @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/mapbox/mapbox-events-ios.git", "state": { "branch": null, - "revision": "91ae071c0232c144251dfe0d0724525deaf293d4", - "version": "1.0.10" + "revision": "990bab73cf50242a05f29b6a9cfeb30592150c13", + "version": "2.0.0" } }, { diff --git a/Package.swift b/Package.swift index cf14312e9681..5c6618282661 100644 --- a/Package.swift +++ b/Package.swift @@ -13,10 +13,10 @@ let package = Package( targets: ["MapboxMaps"]), ], dependencies: [ - .package(name: "MapboxCoreMaps", url: "https://github.com/mapbox/mapbox-core-maps-ios.git", .exact("10.18.0")), + .package(name: "MapboxCoreMaps", url: "https://github.com/mapbox/mapbox-core-maps-ios.git", .exact("10.19.1")), // We keep MME dependency for compatibility reasons - .package(name: "MapboxMobileEvents", url: "https://github.com/mapbox/mapbox-events-ios.git", .exact("1.0.10")), - .package(name: "MapboxCommon", url: "https://github.com/mapbox/mapbox-common-ios.git", .exact("23.10.1")), + .package(name: "MapboxMobileEvents", url: "https://github.com/mapbox/mapbox-events-ios.git", .exact("2.0.0")), + .package(name: "MapboxCommon", url: "https://github.com/mapbox/mapbox-common-ios.git", .exact("23.11.0")), .package(name: "Turf", url: "https://github.com/mapbox/turf-swift.git", .exact("2.8.0")), .package(name: "CocoaImageHashing", url: "https://github.com/ameingast/cocoaimagehashing", .exact("1.9.0")) ], diff --git a/Sources/MapboxMaps/Info.plist b/Sources/MapboxMaps/Info.plist index 1ed51071df09..b900b8f3d26f 100644 --- a/Sources/MapboxMaps/Info.plist +++ b/Sources/MapboxMaps/Info.plist @@ -15,8 +15,8 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 10.18.2 + 10.19.0 CFBundleVersion - 90 + 91 diff --git a/Sources/MapboxMaps/MapboxMaps.json b/Sources/MapboxMaps/MapboxMaps.json index 2fb4a9d51bff..948da4e6ec21 100644 --- a/Sources/MapboxMaps/MapboxMaps.json +++ b/Sources/MapboxMaps/MapboxMaps.json @@ -1,3 +1,3 @@ { - "version" : "10.18.2" + "version" : "10.19.0" } diff --git a/Sources/MapboxMaps/Style/Style+Localization.swift b/Sources/MapboxMaps/Style/Style+Localization.swift index 5407d0a602c3..aad49da1e8c8 100644 --- a/Sources/MapboxMaps/Style/Style+Localization.swift +++ b/Sources/MapboxMaps/Style/Style+Localization.swift @@ -108,7 +108,9 @@ extension Style { options: .caseInsensitive) if case .expression(let textField) = symbolLayer.textField { - var stringExpression = String(decoding: try JSONEncoder().encode(textField), as: UTF8.self) + guard var stringExpression = String(data: try JSONEncoder().encode(textField), encoding: .utf8) else { + return nil + } stringExpression.updateOnceExpression(replacement: replacement, regex: expressionCoalesce) stringExpression.updateExpression(replacement: replacement, regex: expressionAbbr) diff --git a/Tests/MapboxMapsTests/Helpers/Encodable+JsonString.swift b/Tests/MapboxMapsTests/Helpers/Encodable+JsonString.swift index ea6e686c9d76..fe6f9500e7a4 100644 --- a/Tests/MapboxMapsTests/Helpers/Encodable+JsonString.swift +++ b/Tests/MapboxMapsTests/Helpers/Encodable+JsonString.swift @@ -2,6 +2,6 @@ import Foundation extension Encodable { func jsonString() throws -> String { - try String(decoding: JSONEncoder().encode(self), as: UTF8.self) + try String(data: JSONEncoder().encode(self), encoding: .utf8)! } } diff --git a/Tests/MapboxMapsTests/Style/ExpressionTests/FormatOptionsTests.swift b/Tests/MapboxMapsTests/Style/ExpressionTests/FormatOptionsTests.swift index 9e706b7bc6a8..2c88b6538fdf 100644 --- a/Tests/MapboxMapsTests/Style/ExpressionTests/FormatOptionsTests.swift +++ b/Tests/MapboxMapsTests/Style/ExpressionTests/FormatOptionsTests.swift @@ -96,7 +96,7 @@ final class FormatOptionsTests: XCTestCase { XCTAssertEqual(encoded["font-scale"] as? Double, 1) XCTAssertEqual(encoded["text-font"] as? [String], ["Open Sans Semibold", "Arial Unicode MS Bold"]) XCTAssertEqual( - String(decoding: try JSONSerialization.data(withJSONObject: encoded["text-color"] as Any), as: UTF8.self), + String(data: try JSONSerialization.data(withJSONObject: encoded["text-color"] as Any), encoding: .utf8), ##"["case",[">=",["to-number",["get","point_count"]],4],"#ffffff","#000000"]"## ) } @@ -136,15 +136,15 @@ final class FormatOptionsTests: XCTestCase { let encoded = try DictionaryEncoder().encode(formatOptions) XCTAssertEqual( - String(decoding: try JSONSerialization.data(withJSONObject: encoded["font-scale"] as Any), as: UTF8.self), + String(data: try JSONSerialization.data(withJSONObject: encoded["font-scale"] as Any), encoding: .utf8), #"["case",[">=",["to-number",["get","point_count"]],4],1,2]"# ) XCTAssertEqual( - String(decoding: try JSONSerialization.data(withJSONObject: encoded["text-font"] as Any), as: UTF8.self), + String(data: try JSONSerialization.data(withJSONObject: encoded["text-font"] as Any), encoding: .utf8), #"["case",[">=",["to-number",["get","point_count"]],4],["Open Sans Semibold"],["Arial Unicode MS Bold"]]"# ) XCTAssertEqual( - String(decoding: try JSONSerialization.data(withJSONObject: encoded["text-color"] as Any), as: UTF8.self), + String(data: try JSONSerialization.data(withJSONObject: encoded["text-color"] as Any), encoding: .utf8), ##"["case",[">=",["to-number",["get","point_count"]],4],"#ffffff","#000000"]"## ) } diff --git a/Tests/MapboxMapsTests/Style/StyleIntegrationTests.swift b/Tests/MapboxMapsTests/Style/StyleIntegrationTests.swift index d09ffeef9c0a..2f7cdde84ec8 100644 --- a/Tests/MapboxMapsTests/Style/StyleIntegrationTests.swift +++ b/Tests/MapboxMapsTests/Style/StyleIntegrationTests.swift @@ -247,7 +247,7 @@ internal class StyleIntegrationTests: MapViewIntegrationTestCase { let convertedExpression = try! style!.convertExpressionForLocalization(symbolLayer: symbolLayer, localeValue: "zh") let data = try! JSONSerialization.data(withJSONObject: convertedExpression!, options: [.prettyPrinted]) - let convertedString = String(decoding: data, as: UTF8.self).replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "") + let convertedString = String(data: data, encoding: .utf8)!.replacingOccurrences(of: " ", with: "").replacingOccurrences(of: "\n", with: "") let result = "[\"format\",[\"coalesce\",[\"get\",\"name_zh\"],[\"get\",\"name\"]]]" XCTAssertEqual(result, convertedString) diff --git a/Tests/MapboxMapsTests/Style/StyleTransitionTests.swift b/Tests/MapboxMapsTests/Style/StyleTransitionTests.swift index fe20acbb202b..3ab250d21f7e 100644 --- a/Tests/MapboxMapsTests/Style/StyleTransitionTests.swift +++ b/Tests/MapboxMapsTests/Style/StyleTransitionTests.swift @@ -16,7 +16,7 @@ class StyleTransitionTests: XCTestCase { func testEncodeHasCorrectConversion() { let transition = StyleTransition(duration: 1.0, delay: 0.5) let encodedTransition = try! JSONEncoder().encode(transition) - let dataString = String(decoding: encodedTransition, as: UTF8.self) + let dataString = String(data: encodedTransition, encoding: .utf8) XCTAssertEqual(dataString, jsonString) } diff --git a/baselines/binary-size/MapboxMaps.json b/baselines/binary-size/MapboxMaps.json index 78c7a3d8a70a..53201cbf0762 100644 --- a/baselines/binary-size/MapboxMaps.json +++ b/baselines/binary-size/MapboxMaps.json @@ -1,33 +1,33 @@ { "binary_name": "MapboxMaps.xcframework", - "created": "2022-12-19T12:10:20.121611", - "binary_size": 19613669, + "created": "2024-09-24T12:45:57.753990", + "binary_size": 12698407, "platform": { - "MapboxMaps_iphoneos_arm64": 2405512, - "MapboxMaps_iphoneos_arm64_bitcodeSize": 15695872, - "MapboxMaps_iphoneos_arm64_debugSymbolsSize": 190104, + "MapboxMaps_iphoneos_arm64": 2444040, + "MapboxMaps_iphoneos_arm64_bitcodeSize": 0, + "MapboxMaps_iphoneos_arm64_debugSymbolsSize": 196920, "MapboxMaps_iphoneos_arm64_humanReadableSize": "2.3 MB", - "MapboxMaps_iphonesimulator_arm64": 2409568, + "MapboxMaps_iphonesimulator_arm64": 2481536, "MapboxMaps_iphonesimulator_arm64_bitcodeSize": 0, - "MapboxMaps_iphonesimulator_arm64_debugSymbolsSize": 189664, - "MapboxMaps_iphonesimulator_arm64_humanReadableSize": "2.3 MB", - "MapboxMaps_iphonesimulator_x86_64": 2475840, + "MapboxMaps_iphonesimulator_arm64_debugSymbolsSize": 196416, + "MapboxMaps_iphonesimulator_arm64_humanReadableSize": "2.4 MB", + "MapboxMaps_iphonesimulator_x86_64": 2564512, "MapboxMaps_iphonesimulator_x86_64_bitcodeSize": 0, - "MapboxMaps_iphonesimulator_x86_64_debugSymbolsSize": 190080, + "MapboxMaps_iphonesimulator_x86_64_debugSymbolsSize": 197072, "MapboxMaps_iphonesimulator_x86_64_humanReadableSize": "2.4 MB" }, "core": {}, "build": { - "build": 56338, + "build": 141708, "project": "mapbox-maps-ios", "branch": "HEAD", - "sha": "96b72437db29820c0431cfdfd67e7e3cd860fece", - "author": "Mai Mai", - "timestamp": 1671438467, - "message": "Fix assertion failure\n", - "xcode": "Xcode 13.1 Build version 13A1030d", - "metrics-sha": "b5adb2df9eeed65aab59adcd584e5b4822f0a67f" + "sha": "b0d5af27c954b1ec6a04cedbbb04907bd4356bc0", + "author": "Aleksei Sapitskii", + "timestamp": 1727181797, + "message": "Disable bitcode in iOS SDK\n", + "xcode": "Xcode 14.1 Build version 14B47b", + "metrics-sha": "b0d5af27c954b1ec6a04cedbbb04907bd4356bc0" }, - "name": "ios-maps-v10", + "name": "ios-maps-v10-benchmark", "version": "3" -} +} \ No newline at end of file diff --git a/project.yml b/project.yml index a30c97bf2fbf..599fd6103c40 100644 --- a/project.yml +++ b/project.yml @@ -16,6 +16,7 @@ settings: GCC_WARN_64_TO_32_BIT_CONVERSION: $(GCC_WARN_64_TO_32_BIT_CONVERSION) CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER: "YES" MTL_FAST_MATH: "YES" + ENABLE_BITCODE: "NO" configs: Debug: ONLY_ACTIVE_ARCH: "YES" diff --git a/scripts/release/packager/create-xcframework.sh b/scripts/release/packager/create-xcframework.sh index 61d9ffc61d12..805ca8015f9c 100755 --- a/scripts/release/packager/create-xcframework.sh +++ b/scripts/release/packager/create-xcframework.sh @@ -38,7 +38,7 @@ xcodebuild archive \ ARCHS='x86_64 arm64' \ EXCLUDED_ARCHS= \ MACH_O_TYPE="$MACH_O_TYPE" \ - ENABLE_BITCODE=YES \ + ENABLE_BITCODE=NO \ LLVM_LTO=NO # Create iOS Device Framework @@ -57,7 +57,7 @@ xcodebuild archive \ ARCHS='arm64' \ EXCLUDED_ARCHS= \ MACH_O_TYPE="$MACH_O_TYPE" \ - ENABLE_BITCODE=YES \ + ENABLE_BITCODE=NO \ LLVM_LTO=NO # Create XCFramework diff --git a/scripts/release/packager/versions.json b/scripts/release/packager/versions.json index 04178caf249c..fe417026bdb5 100644 --- a/scripts/release/packager/versions.json +++ b/scripts/release/packager/versions.json @@ -1,6 +1,6 @@ { - "MapboxCoreMaps": "10.18.0", - "MapboxMobileEvents": "v1.0.10", - "MapboxCommon": "23.10.1", + "MapboxCoreMaps": "10.19.1", + "MapboxMobileEvents": "v2.0.0", + "MapboxCommon": "23.11.0", "Turf": "v2.8.0" }