Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Code Review: PR #158 "Release: 2.26.1"Target: PR #158 "Release: 2.26.1" CI Validation
No issues found on AI review by |
Code Review: PR #158 — bump/2.26.1Target: PR #158 `bump/2.26.1` CI Validation
Issues
1. `pod repo update` adds significant CI runtime overheadType: Architecture | Severity: suggestion | Where: `.github/workflows/ci.yml:188` `pod repo update` performs a full sync of the CocoaPods spec repository, which typically adds 5–10 minutes to every CI run. This is a blunt fix for a CDN cache staleness issue that is specific to the 2.26.1 release window — once the CDN propagates fully, the step becomes permanently wasteful overhead on every future build. A targeted alternative is to use `pod install --repo-update` only on the `flutter build` step, or to scope the workaround to a time-limited flag that can be removed after the CDN settles. If the CDN issue is already resolved, remove this step.
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
FlutterImplicitEngineDelegate/FlutterImplicitEngineBridge require Flutter 3.27+, which is not compatible with the CI Flutter version (3.22.3). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New method added in 2.26.1 must be overridden in the KMP subclass to prevent SIGSEGV during test bootstrap. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mulator SDK 2.26.1 KMP classes trigger SIGSEGV when subclassed on iOS 17.5 (Xcode 15.4). Tests pass on iOS 18.2 (Xcode 16+). Upgrade CI environment to resolve the crash. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
macOS 15 runner with Xcode 16.2 requires explicit OS version in destination. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
iOS 18.2 runtime is not pre-installed on the macOS 15 runner. Use OS=latest to pick whatever iOS version is available. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
macOS-15 runner with Xcode 16.2 only has iOS 16.x and 17.x runtimes pre-installed. OS=latest was selecting iOS 26.2 beta which has no runtime, causing actool to fail. iPhone 15 Pro + iOS 17.4 uses the available 23C54 runtime. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
macos-15 runner has no simulator runtimes pre-installed (only placeholder destinations available). macos-14 comes with Xcode 16.1 bundled with iOS 18.1 simulator runtime. Using Xcode 16.x avoids the KMP SIGSEGV that was reproducible on Xcode 15.4 + iOS 17.5. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
macos-14 runner with Xcode 16.1 has no iPhone simulator runtimes pre-installed, but does have iPad (10th generation) with iOS 18.2. Using that instead. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGSEGV happens with Xcode 16.1 + iOS 18.1 too. Tests pass locally with Xcode 16.2 + iOS 18.2. macos-14 has both Xcode 16.2 and iPad (10th gen) iOS 18.2 simulator available. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGSEGV happens consistently on macos-14 iOS simulator across all Xcode versions (15.4, 16.1, 16.2). Both runners (macos-14 and macos-15) expose a macOS arm64 'Designed for [iPad,iPhone]' destination. This runs the iOS binary natively on macOS, bypassing the simulator runtime entirely and the KMP 2.26.1 initialization crash. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Brackets in 'Designed for [iPad,iPhone]' are parsed as comma separators by xcodebuild. Use 'platform=macOS,name=My Mac' which matches the same destination unambiguously. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGSEGV on iOS simulator is macOS 14 specific - KMP 2.26.1 requires macOS 15. macos-15 has no simulator runtimes pre-installed so we explicitly download them with xcodebuild -downloadPlatform iOS. Timeout increased to 45min to accommodate the download. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
xcodebuild -downloadPlatform iOS requires the simulator service running and fails in CI. iOS 18.2 runtime is bundled inside Xcode 16.2 at iPhoneSimulator.platform/Library/.../Runtimes/iOS.simruntime — register it directly with xcrun simctl runtime add. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mulator Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nner Xcode 16.2 SDK resolves OS:latest to iOS 18.2 but macos-15 runner has iOS 18.5 and 18.6 pre-installed (not 18.2). iPhone 16 Pro + iOS 18.5 is already created on the runner — no setup step needed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Xcode 16.2 actool does not recognize iOS 18.5 simulator runtimes due to a SDK version mismatch. Using latest-stable Xcode ensures the SDK matches the pre-installed iOS 18.5 runtime. Removing the OS pin from the destination makes the test resilient to future runner changes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reverts back to the stable config used in master (macos-14, Xcode 15.4, iPhone 15 Pro) to fix the simulator runtime mismatch introduced by the bump/2.26.1 migration to macos-15. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…or 2.26.1 Override getGPPData, getGPPString, setGPPConsent (MSDK-3160) and the updated denyAllForTCF signature with unsavedVendorLIDecisions (MSDK-3297) to prevent SIGSEGV crash before test suite bootstrap. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ramework The published 2.26.1 binary exposes denyAllForTCF with 3 parameters only. The 4-param override (unsavedVendorLIDecisions) compiled as a new method instead of an override, leaving the abstract 3-param method unimplemented and causing SIGSEGV at test bootstrap. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
KMP-generated ObjC classes require every method to be overridden in Swift subclasses — any unimplemented vtable slot causes SIGSEGV at instantiation. Added stubs for all 14 methods missing from FakeUsercentricsSDK, including methods that pre-date 2.26.1 but were not previously triggering crashes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- getDpsMetadata(templateId:) — new in MSDK-3172 - denyAllForTCF with unsavedVendorLIDecisions — MSDK-3297 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- TCF2Settings: rename resurfacePeriodEnded (Bool) → resurfacePeriod (Int) in Dart model, serializers, and test mocks - UsercentricsSettings: add gppSignalingEnabled and gpcSignalHonoured fields (Dart model + serializers, iOS Swift, Android Kotlin) - CCPASettings: add mspaCoveredTransaction and mspaMode fields + MspaMode enum (Dart model + serializers, iOS Swift, Android Kotlin) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Release 2.26.1
Features
getDpsMetadata()APIFixes
setGPPConsentGppData+Dict🤖 Generated with Claude Code