Repository navigation
[Merge only after iOS SDK 7.0 GA] iOS: import the wrapper contract from Bugsee.SPI - #20
dsheikherev wants to merge 2 commits into
Conversation
The iOS SDK 7.0 GA moves the wrapper contract (BGSWrapperChannel, BGSReportContract, BGSAttachmentContract, BGSCallback, BugseeWrapper, +setWrapper:, ...) out of Bugsee.h into the Bugsee.SPI submodule (BugseeSPI.h), which `@import Bugsee;` no longer brings in. The bugsee_flutter_wrapper sources and the wrapper tests that use those types import <Bugsee/BugseeSPI.h> under __has_include, so they build against both the 7.0 betas and GA. GA also keeps data encryption out of the public headers (the option still works), so the manifest enum test uses its values directly when built against GA. No behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
Claude finished @dsheikherev's task in 33s —— View job Review of PR #20: import the wrapper contract from
|
| #if __has_include(<Bugsee/BugseeSPI.h>) | ||
| // 7.0 GA keeps data encryption out of the public headers (the option is still read), so | ||
| // the enum is not visible here; these are its values. | ||
| @"BugseeDataEncryptionMode" : @{@"None" : @0, @"OnDevice" : @1, @"EndToEnd" : @2}, |
There was a problem hiding this comment.
Severity: P3 Low
Location: BGSFlutterLaunchOpsTests.m:341-347
Problem: Under GA the BugseeDataEncryptionMode expectation is a literal copy of what test/fixtures/option_manifests/ios.json already says (None 0, OnDevice 1, EndToEnd 2; I checked that they match today). testTheManifestEnumsAreTheFrameworksRealEnums therefore stops guarding that one enum.
Impact: If the SDK renumbers the enum, or the vendored manifest goes stale, nothing fails for this enum on GA. The test's stated purpose, per its doc comment, is to catch exactly that. This only affects this one enum and only when built against GA.
Scenario: A later GA patch changes EndToEnd to 3 and republishes the manifest. The plugin still sends 2, and this test still passes because both sides are the same literal.
Fix: Optional, and probably acceptable since the PR already states the trade-off. Either keep the literal and add a // guarded elsewhere: pointer to whichever check covers it (scripts/verify_option_manifests.dart reads the SDK source), or, if the SDK still exposes the values in a private or SPI header, read them from there. The __has_include(<Bugsee/BugseeSPI.h>) condition is also only a proxy for "encryption enum hidden". It compiles either way, so it is harmless.
….0 stable) All 11 files conflicted because #21 already moved the wrapper contract to Bugsee.SPI against the stable 7.0.0 pin; the branch tree now equals nextgen. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Change-Id: I4e93e6adae9859fd936bd8dfa98042bfc3e75b21
|
Claude finished @krassx's task in 17s —— View job Re-review after the latest pushI found no new issues, because this PR no longer changes anything.
What changedThe latest commit, Earlier P3 finding (
|
Merge only after the iOS SDK 7.0 GA. The code builds against the 7.0 betas as well, so merging early breaks nothing. The title is there so this lands with the GA SDK bump.
Why
iOS SDK 7.0 GA trims the public headers before the API freezes. The cross-platform wrapper contract moves out of
Bugsee.hinto the explicit submoduleBugsee.SPI(BugseeSPI.h). That coversBGSWrapperChannel,BGSReportContract,BGSAttachmentContract,BGSDataRequestResultCallback,BGSCallback,BGSLogEventSource,BugseeWrapper,+[Bugsee setWrapper:]and the rest.@import Bugsee;no longer brings it in. The bugsee-cocoa change is bugsee/bugsee-cocoa#309.Change
ios/bugsee_flutter/Sources/bugsee_flutter_wrapper:BGSFlutterWrapper.m,BGSFlutterReportOps.m,BGSFlutterReportFiles.m,BGSFlutterReportHandlerPipeline.m,BGSFlutterLogOps.mandBGSFlutterNetworkOps.mimport<Bugsee/BugseeSPI.h>under__has_include.ios/wrapper_tests:BGSFlutterFakeReport.h,BGSFlutterLogOpsTests.m,BGSFlutterNetworkOpsTests.mandBGSFlutterWrapperTests.mdo the same.BGSFlutterLaunchOpsTests.m: GA also keeps data encryption out of the public headers. The option is still read and stays in the option manifest, butBugseeDataEncryptionModeis not visible. Built against GA, the manifest enum test uses its values (0, 1, 2) directly.No behaviour change.
Checked
clang -fsyntax-onlyagainst an SDK build withBugsee.SPIand one without. 34/34 compile in both.🤖 Generated with Claude Code