From 802050259ce31a299425ea9be3a14eb4c0ef6630 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 24 May 2026 21:24:18 -0600 Subject: [PATCH] update android build, fix ios build for new version of MLKit BarcodeScanner (both build) --- BUILDING.md | 2 +- CHANGELOG.md | 5 + android/app/build.gradle | 6 +- .../src/main/assets/capacitor.plugins.json | 8 + ios/App/App.xcodeproj/project.pbxproj | 25 +-- ios/App/Podfile | 7 +- ios/App/Podfile.lock | 174 +++++++++--------- package-lock.json | 2 +- package.json | 3 +- scripts/build-ios.sh | 21 ++- 10 files changed, 126 insertions(+), 127 deletions(-) diff --git a/BUILDING.md b/BUILDING.md index 2df3ccd0..96ea4544 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -1420,7 +1420,7 @@ The recommended way to build for Android is using the automated build script: ```bash perl -p -i -e 's/versionCode .*/versionCode 67/g' android/app/build.gradle -perl -p -i -e 's/versionName .*/versionName "1.3.12"/g' android/app/build.gradle +perl -p -i -e 's/versionName .*/versionName "1.4.1"/g' android/app/build.gradle ``` ##### 2. Build diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c9a79a8..b550924f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.4.1] - 2026.05.24 +### Changed +- Support 16 KB page sizes + + ## [1.3.13] - 2026.04.05 ### Added - Ability to select project that the current one fulfills diff --git a/android/app/build.gradle b/android/app/build.gradle index d2d8ca72..c658d547 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -29,8 +29,8 @@ android { compileSdk rootProject.ext.compileSdkVersion compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 + sourceCompatibility JavaVersion.VERSION_21 + targetCompatibility JavaVersion.VERSION_21 } defaultConfig { @@ -38,7 +38,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 67 - versionName "1.3.12" + versionName "1.4.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/android/app/src/main/assets/capacitor.plugins.json b/android/app/src/main/assets/capacitor.plugins.json index 4981dd86..1a7182ed 100644 --- a/android/app/src/main/assets/capacitor.plugins.json +++ b/android/app/src/main/assets/capacitor.plugins.json @@ -38,5 +38,13 @@ { "pkg": "@timesafari/daily-notification-plugin", "classpath": "org.timesafari.dailynotification.DailyNotificationPlugin" + }, + { + "pkg": "SafeArea", + "classpath": "app.timesafari.safearea.SafeAreaPlugin" + }, + { + "pkg": "SharedImage", + "classpath": "app.timesafari.sharedimage.SharedImagePlugin" } ] diff --git a/ios/App/App.xcodeproj/project.pbxproj b/ios/App/App.xcodeproj/project.pbxproj index d7271f26..71df37ce 100644 --- a/ios/App/App.xcodeproj/project.pbxproj +++ b/ios/App/App.xcodeproj/project.pbxproj @@ -74,18 +74,7 @@ /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - C86585D62ED456DE00824752 /* TimeSafariShareExtension */ = { - isa = PBXFileSystemSynchronizedRootGroup; - exceptions = ( - C86585E32ED456DE00824752 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, - ); - explicitFileTypes = { - }; - explicitFolders = ( - ); - path = TimeSafariShareExtension; - sourceTree = ""; - }; + C86585D62ED456DE00824752 /* TimeSafariShareExtension */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (C86585E32ED456DE00824752 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = TimeSafariShareExtension; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -530,12 +519,12 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = App/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Giftopia; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.12; + MARKETING_VERSION = 1.4.1; OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\""; PRODUCT_BUNDLE_IDENTIFIER = app.timesafari; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -559,12 +548,12 @@ ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = App/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = Giftopia; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.5; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.3.12; + MARKETING_VERSION = 1.4.1; PRODUCT_BUNDLE_IDENTIFIER = app.timesafari; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = ""; @@ -596,7 +585,7 @@ "@executable_path/../../Frameworks", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 1.3.12; + MARKETING_VERSION = 1.4.1; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = app.timesafari.TimeSafariShareExtension; @@ -634,7 +623,7 @@ "@executable_path/../../Frameworks", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 1.3.12; + MARKETING_VERSION = 1.4.1; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = app.timesafari.TimeSafariShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ios/App/Podfile b/ios/App/Podfile index 614f612b..916af27d 100644 --- a/ios/App/Podfile +++ b/ios/App/Podfile @@ -1,6 +1,6 @@ require_relative '../../node_modules/@capacitor/ios/scripts/pods_helpers' -platform :ios, '14.0' +platform :ios, '15.5' use_frameworks! # workaround to avoid Xcode caching of Pods that requires @@ -30,9 +30,4 @@ end post_install do |installer| assertDeploymentTarget(installer) - installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' - end - end end diff --git a/ios/App/Podfile.lock b/ios/App/Podfile.lock index 1cd7746a..483a12c0 100644 --- a/ios/App/Podfile.lock +++ b/ios/App/Podfile.lock @@ -1,94 +1,84 @@ PODS: - - Capacitor (6.2.1): + - Capacitor (7.6.4): - CapacitorCordova - - CapacitorApp (6.0.2): + - CapacitorApp (7.1.2): - Capacitor - - CapacitorCamera (6.1.2): + - CapacitorCamera (7.0.5): - Capacitor - - CapacitorClipboard (6.0.2): + - CapacitorClipboard (7.0.4): - Capacitor - - CapacitorCommunitySqlite (6.0.2): + - CapacitorCommunitySqlite (7.0.3): - Capacitor - SQLCipher - ZIPFoundation - - CapacitorCordova (6.2.1) - - CapacitorFilesystem (6.0.3): + - CapacitorCordova (7.6.4) + - CapacitorFilesystem (7.1.8): - Capacitor - - CapacitorMlkitBarcodeScanning (6.2.0): + - IONFilesystemLib (~> 1.1.1) + - CapacitorMlkitBarcodeScanning (7.5.0): - Capacitor - - GoogleMLKit/BarcodeScanning (= 5.0.0) - - CapacitorShare (6.0.3): + - GoogleMLKit/BarcodeScanning (= 7.0.0) + - CapacitorShare (7.0.4): - Capacitor - - CapacitorStatusBar (6.0.2): + - CapacitorStatusBar (7.0.6): - Capacitor - - CapawesomeCapacitorFilePicker (6.2.0): + - CapawesomeCapacitorFilePicker (7.2.0): - Capacitor - - GoogleDataTransport (9.4.1): - - GoogleUtilities/Environment (~> 7.7) - - nanopb (< 2.30911.0, >= 2.30908.0) - - PromisesObjC (< 3.0, >= 1.2) - - GoogleMLKit/BarcodeScanning (5.0.0): + - GoogleDataTransport (10.1.0): + - nanopb (~> 3.30910.0) + - PromisesObjC (~> 2.4) + - GoogleMLKit/BarcodeScanning (7.0.0): - GoogleMLKit/MLKitCore - - MLKitBarcodeScanning (~> 4.0.0) - - GoogleMLKit/MLKitCore (5.0.0): - - MLKitCommon (~> 10.0.0) - - GoogleToolboxForMac/DebugUtils (2.3.2): - - GoogleToolboxForMac/Defines (= 2.3.2) - - GoogleToolboxForMac/Defines (2.3.2) - - GoogleToolboxForMac/Logger (2.3.2): - - GoogleToolboxForMac/Defines (= 2.3.2) - - "GoogleToolboxForMac/NSData+zlib (2.3.2)": - - GoogleToolboxForMac/Defines (= 2.3.2) - - "GoogleToolboxForMac/NSDictionary+URLArguments (2.3.2)": - - GoogleToolboxForMac/DebugUtils (= 2.3.2) - - GoogleToolboxForMac/Defines (= 2.3.2) - - "GoogleToolboxForMac/NSString+URLArguments (= 2.3.2)" - - "GoogleToolboxForMac/NSString+URLArguments (2.3.2)" - - GoogleUtilities/Environment (7.13.3): + - MLKitBarcodeScanning (~> 6.0.0) + - GoogleMLKit/MLKitCore (7.0.0): + - MLKitCommon (~> 12.0.0) + - GoogleToolboxForMac/Defines (4.2.1) + - GoogleToolboxForMac/Logger (4.2.1): + - GoogleToolboxForMac/Defines (= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (4.2.1)": + - GoogleToolboxForMac/Defines (= 4.2.1) + - GoogleUtilities/Environment (8.1.0): - GoogleUtilities/Privacy - - PromisesObjC (< 3.0, >= 1.2) - - GoogleUtilities/Logger (7.13.3): + - GoogleUtilities/Logger (8.1.0): - GoogleUtilities/Environment - GoogleUtilities/Privacy - - GoogleUtilities/Privacy (7.13.3) - - GoogleUtilities/UserDefaults (7.13.3): + - GoogleUtilities/Privacy (8.1.0) + - GoogleUtilities/UserDefaults (8.1.0): - GoogleUtilities/Logger - GoogleUtilities/Privacy - - GoogleUtilitiesComponents (1.1.0): - - GoogleUtilities/Logger - GTMSessionFetcher/Core (3.5.0) - - MLImage (1.0.0-beta5) - - MLKitBarcodeScanning (4.0.0): - - MLKitCommon (~> 10.0) - - MLKitVision (~> 6.0) - - MLKitCommon (10.0.0): - - GoogleDataTransport (~> 9.0) - - GoogleToolboxForMac/Logger (~> 2.1) - - "GoogleToolboxForMac/NSData+zlib (~> 2.1)" - - "GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)" - - GoogleUtilities/UserDefaults (~> 7.0) - - GoogleUtilitiesComponents (~> 1.0) - - GTMSessionFetcher/Core (< 4.0, >= 1.1) - - MLKitVision (6.0.0): - - GoogleToolboxForMac/Logger (~> 2.1) - - "GoogleToolboxForMac/NSData+zlib (~> 2.1)" - - GTMSessionFetcher/Core (< 4.0, >= 1.1) - - MLImage (= 1.0.0-beta5) - - MLKitCommon (~> 10.0) - - nanopb (2.30910.0): - - nanopb/decode (= 2.30910.0) - - nanopb/encode (= 2.30910.0) - - nanopb/decode (2.30910.0) - - nanopb/encode (2.30910.0) + - IONFilesystemLib (1.1.2) + - MLImage (1.0.0-beta6) + - MLKitBarcodeScanning (6.0.0): + - MLKitCommon (~> 12.0) + - MLKitVision (~> 8.0) + - MLKitCommon (12.0.0): + - GoogleDataTransport (~> 10.0) + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GoogleUtilities/Logger (~> 8.0) + - GoogleUtilities/UserDefaults (~> 8.0) + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLKitVision (8.0.0): + - GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1) + - "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)" + - GTMSessionFetcher/Core (< 4.0, >= 3.3.2) + - MLImage (= 1.0.0-beta6) + - MLKitCommon (~> 12.0) + - nanopb (3.30910.0): + - nanopb/decode (= 3.30910.0) + - nanopb/encode (= 3.30910.0) + - nanopb/decode (3.30910.0) + - nanopb/encode (3.30910.0) - PromisesObjC (2.4.0) - - SQLCipher (4.9.0): - - SQLCipher/standard (= 4.9.0) - - SQLCipher/common (4.9.0) - - SQLCipher/standard (4.9.0): + - SQLCipher (4.10.0): + - SQLCipher/standard (= 4.10.0) + - SQLCipher/common (4.10.0) + - SQLCipher/standard (4.10.0): - SQLCipher/common - TimesafariDailyNotificationPlugin (2.0.0): - Capacitor - - ZIPFoundation (0.9.19) + - ZIPFoundation (0.9.20) DEPENDENCIES: - "Capacitor (from `../../node_modules/@capacitor/ios`)" @@ -110,8 +100,8 @@ SPEC REPOS: - GoogleMLKit - GoogleToolboxForMac - GoogleUtilities - - GoogleUtilitiesComponents - GTMSessionFetcher + - IONFilesystemLib - MLImage - MLKitBarcodeScanning - MLKitCommon @@ -148,33 +138,33 @@ EXTERNAL SOURCES: :path: "../../node_modules/@timesafari/daily-notification-plugin" SPEC CHECKSUMS: - Capacitor: c95400d761e376be9da6be5a05f226c0e865cebf - CapacitorApp: e1e6b7d05e444d593ca16fd6d76f2b7c48b5aea7 - CapacitorCamera: 9bc7b005d0e6f1d5f525b8137045b60cffffce79 - CapacitorClipboard: 4443c3cdb7c77b1533dfe3ff0f9f7756aa8579df - CapacitorCommunitySqlite: 0299d20f4b00c2e6aa485a1d8932656753937b9b - CapacitorCordova: 8d93e14982f440181be7304aa9559ca631d77fff - CapacitorFilesystem: 59270a63c60836248812671aa3b15df673fbaf74 - CapacitorMlkitBarcodeScanning: 7652be9c7922f39203a361de735d340ae37e134e - CapacitorShare: d2a742baec21c8f3b92b361a2fbd2401cdd8288e - CapacitorStatusBar: b16799a26320ffa52f6c8b01737d5a95bbb8f3eb - CapawesomeCapacitorFilePicker: c40822f0a39f86855321943c7829d52bca7f01bd - GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a - GoogleMLKit: 90ba06e028795a50261f29500d238d6061538711 - GoogleToolboxForMac: 8bef7c7c5cf7291c687cf5354f39f9db6399ad34 - GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15 - GoogleUtilitiesComponents: 679b2c881db3b615a2777504623df6122dd20afe + Capacitor: 69dc07ebc6bd064747c5e76922f97e4862d9cc23 + CapacitorApp: f01a913211780e0718dae9750442c3e23f96e106 + CapacitorCamera: 9e952270be355797f769aa835bb7643a96c871fe + CapacitorClipboard: d1f123674cf413125db816a45e8f70e8770972fc + CapacitorCommunitySqlite: 4813d82ad33001e612a39d313cb5d28066cbafda + CapacitorCordova: e343e95a672ff73e21a77a80257b52fb609b47d5 + CapacitorFilesystem: c63fc54df41e5a6761785a7f3c49dc696c22e296 + CapacitorMlkitBarcodeScanning: afd6fc431b550026a2c052e11ab2b71c7ae30011 + CapacitorShare: 25f7fc5dd0e4edbde5d6801c6de5d14a8b450a41 + CapacitorStatusBar: 416e9e53fd6397e668d4a181cd2131617d949bd6 + CapawesomeCapacitorFilePicker: 0f4a913a00e39dd77213449f0d917e92f35a5ca9 + GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 + GoogleMLKit: eff9e23ec1d90ea4157a1ee2e32a4f610c5b3318 + GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8 + GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1 GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6 - MLImage: 1824212150da33ef225fbd3dc49f184cf611046c - MLKitBarcodeScanning: 9cb0ec5ec65bbb5db31de4eba0a3289626beab4e - MLKitCommon: afcd11b6c0735066a0dde8b4bf2331f6197cbca2 - MLKitVision: 90922bca854014a856f8b649d1f1f04f63fd9c79 - nanopb: 438bc412db1928dac798aa6fd75726007be04262 + IONFilesystemLib: 21a63377696b2d8fab5632ecfb7d2ac67bddb68a + MLImage: 0ad1c5f50edd027672d8b26b0fee78a8b4a0fc56 + MLKitBarcodeScanning: 0a3064da0a7f49ac24ceb3cb46a5bc67496facd2 + MLKitCommon: 07c2c33ae5640e5380beaaa6e4b9c249a205542d + MLKitVision: 45e79d68845a2de77e2dd4d7f07947f0ed157b0e + nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - SQLCipher: 31878d8ebd27e5c96db0b7cb695c96e9f8ad77da + SQLCipher: eb79c64049cb002b4e9fcb30edb7979bf4706dfc TimesafariDailyNotificationPlugin: 3c12e8c39fc27f689f56cf4e57230a8c28611fcc - ZIPFoundation: b8c29ea7ae353b309bc810586181fd073cb3312c + ZIPFoundation: dfd3d681c4053ff7e2f7350bc4e53b5dba3f5351 -PODFILE CHECKSUM: 6d92bfa46c6c2d31d19b8c0c38f56a8ae9fd222f +PODFILE CHECKSUM: 87c07d03f36ef38ab0c873802aee1ce9b5d34448 COCOAPODS: 1.16.2 diff --git a/package-lock.json b/package-lock.json index 1e3a0b09..77bb1489 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "giftopia", - "version": "1.3.14-beta", + "version": "1.4.1", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/package.json b/package.json index 84216126..36c1d687 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ + { "name": "giftopia", - "version": "1.3.14-beta", + "version": "1.4.1", "description": "Giftopia App", "author": { "name": "Gift Economies Team" diff --git a/scripts/build-ios.sh b/scripts/build-ios.sh index dae96f56..eac5f9a5 100755 --- a/scripts/build-ios.sh +++ b/scripts/build-ios.sh @@ -222,8 +222,9 @@ build_ios_app() { if [ "$BUILD_TYPE" = "debug" ]; then build_config="Debug" - # Any Simulator — avoids hardcoding a device name (e.g. iPhone 15 Pro) that may not exist in newer Xcode runtimes - destination="generic/platform=iOS Simulator" + # Use device SDK — prebuilt MLKit frameworks (MLImage, MLKitBarcodeScanning) ship + # iOS device slices only and cannot link against the iOS Simulator SDK. + destination="generic/platform=iOS" else build_config="Release" destination="platform=iOS,id=auto" @@ -233,10 +234,16 @@ build_ios_app() { cd ios/App + # Prevent pkgx-managed libs (e.g. zlib) from leaking into the iOS SDK linker. + unset LIBRARY_PATH + unset DYLD_LIBRARY_PATH + unset DYLD_FALLBACK_LIBRARY_PATH + # Build the app: # -quiet: skip the huge export VAR dump (compiler warnings still show unless suppressed below). # SWIFT_SUPPRESS_WARNINGS / GCC_WARN_INHIBIT_ALL_WARNINGS: quiet CLI output from Pods + plugins; # build in Xcode for full diagnostics. Real errors still fail the build. + local build_exit=0 xcodebuild -quiet \ -workspace App.xcworkspace \ -scheme "$scheme" \ @@ -247,10 +254,14 @@ build_ios_app() { CODE_SIGNING_REQUIRED=NO \ CODE_SIGNING_ALLOWED=NO \ SWIFT_SUPPRESS_WARNINGS=YES \ - GCC_WARN_INHIBIT_ALL_WARNINGS=YES - + GCC_WARN_INHIBIT_ALL_WARNINGS=YES || build_exit=$? + cd ../.. - + + if [ $build_exit -ne 0 ]; then + return $build_exit + fi + log_success "iOS app built successfully" }