Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions docs/ai/agent-skills/sdk/ios/v7/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ ls Podfile Package.swift Cartfile 2>/dev/null
# Existing Bugsee install (and which major version)
grep -ri bugsee Podfile Package.swift Package.resolved Cartfile 2>/dev/null | head -10

# Deployment target — 7.x requires iOS 13+
# Deployment target — 7.x requires iOS 15+
grep -r "IPHONEOS_DEPLOYMENT_TARGET" *.xcodeproj/project.pbxproj 2>/dev/null | sort -u | head -5

# Entry point
Expand All @@ -65,7 +65,7 @@ grep -rnE '"(BugseeAppLaunchCrashDetectionKey|BugseeDefaultBugPriority|BugseeDef

| Question | Impact |
|----------|--------|
| Deployment target below iOS 13? | Raise it — 7.x will not link otherwise |
| Deployment target below iOS 15? | Raise it — 7.x will not link otherwise |
| `Podfile` / `Cartfile` only? | 7.x ships via SPM; the project needs an SPM dependency added |
| Existing Bugsee 6.x found? | This is a migration, not a fresh install — go to Phase 2b after Phase 2 |
| Raw option-key strings found? | **Fix these first** — they fail silently, with no compiler error |
Expand Down Expand Up @@ -105,7 +105,7 @@ targets: [
]
```

`exact:` is mandatory. SwiftPM excludes pre-release versions from version ranges, so `from:` silently fails to resolve a 7.x beta. The target must also declare `platforms: [.iOS(.v13)]` or resolution fails.
`exact:` is mandatory. SwiftPM excludes pre-release versions from version ranges, so `from:` silently fails to resolve a 7.x beta. The target must also declare `platforms: [.iOS(.v15)]` or resolution fails.

**`.xcodeproj` with no package manifest** — the reference lives in `<project>.xcodeproj/project.pbxproj` as an `XCRemoteSwiftPackageReference` plus an `XCSwiftPackageProductDependency` wired into the target's `packageProductDependencies`. Hand-editing that file corrupts projects. Do not attempt it: ask the user to add the package once through Xcode (**File → Add Package Dependencies…**, the URL above, dependency rule **Exact Version**), then continue from Phase 3. Confirm it landed before moving on:

Expand All @@ -116,11 +116,11 @@ grep -rn "bugsee/spm" *.xcodeproj/project.pbxproj *.xcworkspace/xcshareddata/swi

> **Do not guess the version.** Ask the user which 7.x version to pin. If an existing `Package.swift` or `Package.resolved` already references `bugsee/spm`, change the rule in place rather than adding a second dependency on the same repository.

Requirements: iOS 13+, tvOS 13+, visionOS 1+.
Requirements: iOS 15+, tvOS 15+, visionOS 1+.

### Optional: in-app feedback

Feedback is no longer in the core framework. It ships as a separate Swift package, `BugseeFeedback`, published alongside the beta. Add it only if the app uses in-app feedback / chat.
Feedback is no longer in the core framework. It ships as a separate Swift package, `BugseeFeedback`, published alongside the beta at `https://github.com/bugsee/feedback-spm`. Add it only if the app uses in-app feedback / chat, with the **Exact Version** rule at the same version as the core package — each `BugseeFeedback` release requires that core version exactly. Its package identity is `feedback-spm`: `.product(name: "BugseeFeedback", package: "feedback-spm")`.

---

Expand All @@ -145,7 +145,7 @@ Work in this order — it is not arbitrary:
events and traces keep being recorded. If the app used `pause` to stop *all* capture,
`[Bugsee stop:]` is the honest replacement.

Raising the deployment target to iOS 13 is a prerequisite for all of the above.
Raising the deployment target to iOS 15 is a prerequisite for all of the above.


**Renamed.** A plain search and replace does most of these.
Expand Down
8 changes: 8 additions & 0 deletions docs/sdk/ios/swiftui.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ struct BugseeSwiftUIApp: App {

Bugsee.launch(token: "<your_app_token>", options: options)
}

var body: some Scene {
WindowGroup {
ContentView()
}
}
}
```

Expand All @@ -40,6 +46,8 @@ import BugseeSwiftUI

:::info
`BugseeSwiftUI` requires iOS 13.0 or later; on iOS 12 the core `Bugsee` module remains fully usable. The module is part of the Swift Package Manager distribution only — the CocoaPods pod and the Carthage/manual XCFramework ship the core `Bugsee` framework alone.

In 7.x both modules require iOS 15, Swift Package Manager is the only distribution channel, the dictionary launch above becomes `Bugsee.launch(token:dictionaryOptions:)`, and the option keys are renamed to the `BugseeOption*` family (for example `BugseeMaxRecordingTimeKey` → `BugseeOptionConfigDuration`). See the [7.x migration guide](/sdk/ios/v7/migration).
:::

**Static protection** (view is always hidden):
Expand Down
4 changes: 2 additions & 2 deletions docs/sdk/ios/symbolication.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,7 @@ Add bugsee fastlane to your project:
fastlane add_plugin bugsee
```

For uploading symbols during build(gym) (non-Bitcode case):
To upload symbols right after the build (`gym`):

```
lane :mybuildlane do
Expand All @@ -433,7 +433,7 @@ lane :mybuildlane do
end
```

For refreshing dSYM files from App Store Connect (Bitcode case):
Builds uploaded with Bitcode (Xcode 13 and earlier) were recompiled by Apple, so their dSYM files have to be downloaded from App Store Connect instead:

```
lane :refresh_dsyms do
Expand Down
3 changes: 2 additions & 1 deletion docs/sdk/ios/v7/migration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -994,6 +994,7 @@ Renamed — a plain search and replace does most of these.
| `registerEvent:` | `event:` |
| `registerEvent:withParams:` | `event:params:` (params now optional) |
| `traceKey:withValue:` | `trace:value:` |
| Swift `Bugsee.trace(key:value:)` | Swift `Bugsee.trace(_:value:)` |
| `registerNetworkEvent:` | `addNetworkEvent:` |
| `registerNetworkEvent:needsToBeFiltered:` | `addNetworkEvent:requiresFiltering:` |
| `removeNetworkEventFilter` | `setNetworkEventFilter:nil` |
Expand Down Expand Up @@ -1027,7 +1028,7 @@ Removed with no direct replacement.
| `isViewHidden:` | — |
| `hideKeyboard:` | — |
| `setInternalSecureRectangles:` | — |
| `logAssert:withLocation:` | Use `logException:reason:options:completion:` |
| `logAssert:withLocation:` / `BUGSEE_ASSERT` | Use `logException:reason:options:completion:` |
| `log:level:timestamp:` | `log:level:requiresFiltering:` takes the slot but does something different — it opts the message into the log filter |
| `setDefaultCrashPriority:` | `BugseeOptionReportingDefaultCrashPriority` at launch |
| `setDefaultErrorPriority:` | `BugseeOptionReportingDefaultErrorPriority` at launch |
Expand Down
46 changes: 46 additions & 0 deletions docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ import { themes as prismThemes } from 'prism-react-renderer';
import type { Config } from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';

// Wrapper SDKs share one layout: an installation page and a privacy section.
const wrapperSdks = ['cordova', 'dotnet', 'flutter', 'kmp', 'react_native', 'unity', 'xamarin'];

const config: Config = {
title: 'Bugsee',
tagline: 'Documentation',
Expand Down Expand Up @@ -63,6 +66,49 @@ const config: Config = {
],
],

plugins: [
[
'@docusaurus/plugin-client-redirects',
{
redirects: [
// Section roots have no page of their own; send them to the first page.
{ from: '/sdk/ios', to: '/sdk/ios/installation/' },
{ from: '/sdk/ios/v7', to: '/sdk/ios/v7/installation/' },
{ from: '/sdk/ios/builds', to: '/sdk/ios/builds/overview/' },
{ from: '/sdk/ios/privacy', to: '/sdk/ios/privacy/overview/' },
{ from: '/sdk/android', to: '/sdk/android/overview/' },
{ from: '/sdk/android/manual', to: '/sdk/android/manual/bug-reporting/' },
{ from: '/sdk/android/privacy', to: '/sdk/android/privacy/overview/' },
{ from: '/sdk/android/v6', to: '/sdk/android/v6/installation/' },
{ from: '/sdk/android/v6/privacy', to: '/sdk/android/v6/privacy/overview/' },
...wrapperSdks.flatMap((sdk) => [
{ from: `/sdk/${sdk}`, to: `/sdk/${sdk}/installation/` },
{ from: `/sdk/${sdk}/privacy`, to: `/sdk/${sdk}/privacy/overview/` },
]),
// Android pages that were split or renamed.
{ from: '/sdk/android/custom', to: '/sdk/android/events-and-traces/' },
{ from: '/sdk/android/crashes', to: '/sdk/android/issue-detection/crashes/' },
{ from: '/sdk/android/gradle-plugin-releases', to: '/sdk/android/gradle-plugin/releases/' },
{ from: '/sdk/android/v7', to: '/sdk/android/overview/' },
{ from: '/sdk/android/v7/privacy', to: '/sdk/android/privacy/overview/' },
{ from: '/sdk/android/v7/custom', to: '/sdk/android/events-and-traces/' },
{ from: '/sdk/android/v7/crashes', to: '/sdk/android/issue-detection/crashes/' },
{ from: '/sdk/android/v7/detection', to: '/sdk/android/issue-detection/' },
{ from: '/sdk/android/v7/extensions', to: '/sdk/android/extensibility/bugsee-extensions/' },
{ from: '/sdk/android/v7/manual', to: '/sdk/android/manual/bug-reporting/' },
],
// Android 7.x lived under /sdk/android/v7/ until it became the default;
// every current Android page keeps answering at its old v7 address.
createRedirects(existingPath: string) {
if (existingPath.startsWith('/sdk/android/') && !existingPath.startsWith('/sdk/android/v6/')) {
return existingPath.replace('/sdk/android/', '/sdk/android/v7/');
}
return undefined;
},
},
],
],

presets: [
[
'classic',
Expand Down
25 changes: 25 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"dependencies": {
"@docusaurus/core": "3.10.2",
"@docusaurus/faster": "^3.10.2",
"@docusaurus/plugin-client-redirects": "3.10.2",
"@docusaurus/preset-classic": "3.10.2",
"@easyops-cn/docusaurus-search-local": "^0.55.3",
"@mdx-js/react": "^3.0.0",
Expand Down
Loading