├── Gemfile
├── BugfenderSDK.xcframework
├── ios-arm64_x86_64-maccatalyst
│ └── BugfenderSDK.framework
│ │ ├── Versions
│ │ ├── Current
│ │ └── A
│ │ │ ├── BugfenderSDK
│ │ │ ├── Modules
│ │ │ ├── module.modulemap
│ │ │ └── BugfenderSDK.swiftmodule
│ │ │ │ ├── arm64-apple-ios-macabi.swiftdoc
│ │ │ │ ├── x86_64-apple-ios-macabi.swiftdoc
│ │ │ │ ├── arm64-apple-ios-macabi.swiftinterface
│ │ │ │ ├── x86_64-apple-ios-macabi.swiftinterface
│ │ │ │ ├── arm64-apple-ios-macabi.private.swiftinterface
│ │ │ │ └── x86_64-apple-ios-macabi.private.swiftinterface
│ │ │ ├── Headers
│ │ │ ├── BFDefaultLogInterceptor.h
│ │ │ ├── BFLogInterceptor.h
│ │ │ ├── BFInterceptedLog.h
│ │ │ ├── BFUserFeedbackNavigationController.h
│ │ │ └── BFUserFeedbackViewController.h
│ │ │ └── Resources
│ │ │ ├── PrivacyInfo.xcprivacy
│ │ │ └── Info.plist
│ │ ├── Headers
│ │ ├── Modules
│ │ ├── Resources
│ │ └── BugfenderSDK
├── _CodeSignature
│ ├── CodeDirectory
│ ├── CodeSignature
│ ├── CodeRequirements
│ └── CodeRequirements-1
├── ios-arm64
│ └── BugfenderSDK.framework
│ │ ├── Info.plist
│ │ ├── BugfenderSDK
│ │ ├── Modules
│ │ ├── BugfenderSDK.swiftmodule
│ │ │ ├── arm64-apple-ios.swiftdoc
│ │ │ ├── arm64-apple-ios.swiftinterface
│ │ │ └── arm64-apple-ios.private.swiftinterface
│ │ └── module.modulemap
│ │ ├── Headers
│ │ ├── BFDefaultLogInterceptor.h
│ │ ├── BFLogInterceptor.h
│ │ ├── BFInterceptedLog.h
│ │ ├── BFUserFeedbackNavigationController.h
│ │ ├── BFUserFeedbackViewController.h
│ │ ├── BugfenderSDK-Swift.h
│ │ └── BugfenderSDK.h
│ │ └── PrivacyInfo.xcprivacy
├── ios-arm64_x86_64-simulator
│ └── BugfenderSDK.framework
│ │ ├── Info.plist
│ │ ├── BugfenderSDK
│ │ ├── Modules
│ │ ├── module.modulemap
│ │ └── BugfenderSDK.swiftmodule
│ │ │ ├── arm64-apple-ios-simulator.swiftdoc
│ │ │ ├── x86_64-apple-ios-simulator.swiftdoc
│ │ │ ├── arm64-apple-ios-simulator.swiftinterface
│ │ │ ├── x86_64-apple-ios-simulator.swiftinterface
│ │ │ ├── arm64-apple-ios-simulator.private.swiftinterface
│ │ │ └── x86_64-apple-ios-simulator.private.swiftinterface
│ │ ├── Headers
│ │ ├── BFDefaultLogInterceptor.h
│ │ ├── BFLogInterceptor.h
│ │ ├── BFInterceptedLog.h
│ │ ├── BFUserFeedbackNavigationController.h
│ │ ├── BFUserFeedbackViewController.h
│ │ └── BugfenderSDK.h
│ │ ├── PrivacyInfo.xcprivacy
│ │ └── _CodeSignature
│ │ └── CodeResources
└── Info.plist
├── readme-images
├── spm
│ ├── spm1.png
│ ├── spm2.png
│ ├── spm3.png
│ ├── spm4.png
│ └── spm5.png
└── User-feedback-custom.png
├── docs
├── User-feedback-custom.png
└── User-feedback-default.png
├── xcode-upload-symbols
├── xcode.png
├── upload-symbols.sh
└── README.md
├── Example
├── Podfile
├── BugfenderExample
│ ├── Images.xcassets
│ │ ├── first.imageset
│ │ │ ├── first.pdf
│ │ │ └── Contents.json
│ │ ├── second.imageset
│ │ │ ├── second.pdf
│ │ │ └── Contents.json
│ │ └── AppIcon.appiconset
│ │ │ └── Contents.json
│ ├── FirstViewController.h
│ ├── SecondViewController.h
│ ├── FirstViewController.m
│ ├── SecondViewController.m
│ ├── AppDelegate.h
│ ├── main.m
│ ├── AppDelegate.m
│ ├── Info.plist
│ └── Base.lproj
│ │ ├── LaunchScreen.xib
│ │ └── Main.storyboard
├── BugfenderExample.xcodeproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── BugfenderExample.xcscheme
├── BugfenderExample.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── Podfile.lock
└── BugfenderExampleUITests
│ ├── Info.plist
│ └── BugfenderExampleUITests.m
├── .github
└── issue_template.md
├── .jazzy.yaml
├── .swiftpm
└── xcode
│ └── package.xcworkspace
│ └── contents.xcworkspacedata
├── generate-docs
├── .gitignore
├── Package.swift
├── BugfenderSDK.podspec
├── upload-symbols.sh
├── BugfenderSDK-XCFramework.json
├── BugfenderSDK.json
├── Gemfile.lock
├── README.md
├── CHANGELOG.md
└── LICENSE
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | gem 'jazzy'
3 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Headers:
--------------------------------------------------------------------------------
1 | Versions/Current/Headers
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Modules:
--------------------------------------------------------------------------------
1 | Versions/Current/Modules
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Resources:
--------------------------------------------------------------------------------
1 | Versions/Current/Resources
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
1 | Versions/Current/BugfenderSDK
--------------------------------------------------------------------------------
/readme-images/spm/spm1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/spm/spm1.png
--------------------------------------------------------------------------------
/readme-images/spm/spm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/spm/spm2.png
--------------------------------------------------------------------------------
/readme-images/spm/spm3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/spm/spm3.png
--------------------------------------------------------------------------------
/readme-images/spm/spm4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/spm/spm4.png
--------------------------------------------------------------------------------
/readme-images/spm/spm5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/spm/spm5.png
--------------------------------------------------------------------------------
/docs/User-feedback-custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/docs/User-feedback-custom.png
--------------------------------------------------------------------------------
/docs/User-feedback-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/docs/User-feedback-default.png
--------------------------------------------------------------------------------
/xcode-upload-symbols/xcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/xcode-upload-symbols/xcode.png
--------------------------------------------------------------------------------
/readme-images/User-feedback-custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/readme-images/User-feedback-custom.png
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeDirectory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/_CodeSignature/CodeDirectory
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeSignature:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/_CodeSignature/CodeSignature
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements-1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements-1
--------------------------------------------------------------------------------
/Example/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '15.0'
2 | target "BugfenderExample" do
3 | # For local testing
4 | #pod 'BugfenderSDK', :path => '..'
5 | pod 'BugfenderSDK', '~> 2.1.0'
6 | end
7 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/first.imageset/first.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/Example/BugfenderExample/Images.xcassets/first.imageset/first.pdf
--------------------------------------------------------------------------------
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | _Please make sure to inform your SDK version number_.
2 |
3 | _If you prefer to contact us privately you can do so at our [support page](http://support.bugfender.com)_
4 |
--------------------------------------------------------------------------------
/.jazzy.yaml:
--------------------------------------------------------------------------------
1 | objc: true
2 | author: Bugfender
3 | author_url: https://bugfender.com
4 | github_url: https://github.com/bugfender/BugfenderSDK-iOS
5 | module: BugfenderSDK
6 | sdk: iphonesimulator
7 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Info.plist
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/second.imageset/second.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/Example/BugfenderExample/Images.xcassets/second.imageset/second.pdf
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/BugfenderSDK
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Info.plist
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/BugfenderSDK
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/BugfenderSDK
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/first.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "first.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/second.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "second.pdf"
6 | }
7 | ],
8 | "info" : {
9 | "version" : 1,
10 | "author" : "xcode"
11 | }
12 | }
--------------------------------------------------------------------------------
/generate-docs:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | bundle install
3 | bundle exec jazzy \
4 | --clean \
5 | --umbrella-header BugfenderSDK.framework/Headers/BugfenderSDK.h \
6 | --framework-root ./BugfenderSDK.framework \
7 | --output ../BugfenderSDK-iOS-gh-pages \
8 | --sdk iphonesimulator
9 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.swiftdoc
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module BugfenderSDK {
2 | umbrella header "BugfenderSDK.h"
3 | export *
4 |
5 | module * { export * }
6 | }
7 |
8 | module BugfenderSDK.Swift {
9 | header "BugfenderSDK-Swift.h"
10 | requires objc
11 | }
12 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module BugfenderSDK {
2 | umbrella header "BugfenderSDK.h"
3 | export *
4 |
5 | module * { export * }
6 | }
7 |
8 | module BugfenderSDK.Swift {
9 | header "BugfenderSDK-Swift.h"
10 | requires objc
11 | }
12 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/module.modulemap:
--------------------------------------------------------------------------------
1 | framework module BugfenderSDK {
2 | umbrella header "BugfenderSDK.h"
3 | export *
4 |
5 | module * { export * }
6 | }
7 |
8 | module BugfenderSDK.Swift {
9 | header "BugfenderSDK-Swift.h"
10 | requires objc
11 | }
12 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/FirstViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // FirstViewController.h
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface FirstViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/SecondViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // SecondViewController.h
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface SecondViewController : UIViewController
12 |
13 |
14 | @end
15 |
16 |
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-macabi.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-macabi.swiftdoc
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-macabi.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/HEAD/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-macabi.swiftdoc
--------------------------------------------------------------------------------
/Example/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - BugfenderSDK (2.0.1)
3 |
4 | DEPENDENCIES:
5 | - BugfenderSDK (from `..`)
6 |
7 | EXTERNAL SOURCES:
8 | BugfenderSDK:
9 | :path: ".."
10 |
11 | SPEC CHECKSUMS:
12 | BugfenderSDK: 01831192d8bfe81912f104b903510f1c93fb3592
13 |
14 | PODFILE CHECKSUM: 862b297da5deaed71b3203d45d7dffaceccd64bf
15 |
16 | COCOAPODS: 1.16.2
17 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/FirstViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // FirstViewController.m
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import "FirstViewController.h"
10 |
11 | @interface FirstViewController ()
12 |
13 | @end
14 |
15 | @implementation FirstViewController
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/SecondViewController.m:
--------------------------------------------------------------------------------
1 | //
2 | // SecondViewController.m
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import "SecondViewController.h"
10 |
11 | @interface SecondViewController ()
12 |
13 | @end
14 |
15 | @implementation SecondViewController
16 |
17 | @end
18 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface AppDelegate : UIResponder
12 |
13 | @property (strong, nonatomic) UIWindow *window;
14 |
15 |
16 | @end
17 |
18 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | build/
4 | *.pbxuser
5 | !default.pbxuser
6 | *.mode1v3
7 | !default.mode1v3
8 | *.mode2v3
9 | !default.mode2v3
10 | *.perspectivev3
11 | !default.perspectivev3
12 | xcuserdata
13 | *.xccheckout
14 | *.moved-aside
15 | DerivedData
16 | *.hmap
17 | *.ipa
18 | *.xcuserstate
19 | .DS_Store
20 |
21 | Pods/
22 | BugfenderSDK.framework.zip
23 | BugfenderSDK.xcframework.zip
24 | static-lib.zip
25 |
26 | .idea/
27 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "AppDelegate.h"
11 |
12 | int main(int argc, char * argv[]) {
13 | @autoreleasepool {
14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BFDefaultLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fran Montiel on 24/1/23.
3 | // Copyright (c) 2023 Beenario GmbH. All rights reserved.
4 | //
5 |
6 | #import
7 | #import "BFLogInterceptor.h"
8 |
9 | /**
10 | * Default BFLogInterceptor that returns the same BFInterceptedLog that receives
11 | */
12 | @interface BFDefaultLogInterceptor: NSObject
13 | @end
14 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BFDefaultLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fran Montiel on 24/1/23.
3 | // Copyright (c) 2023 Beenario GmbH. All rights reserved.
4 | //
5 |
6 | #import
7 | #import "BFLogInterceptor.h"
8 |
9 | /**
10 | * Default BFLogInterceptor that returns the same BFInterceptedLog that receives
11 | */
12 | @interface BFDefaultLogInterceptor: NSObject
13 | @end
14 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Headers/BFDefaultLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // Created by Fran Montiel on 24/1/23.
3 | // Copyright (c) 2023 Beenario GmbH. All rights reserved.
4 | //
5 |
6 | #import
7 | #import "BFLogInterceptor.h"
8 |
9 | /**
10 | * Default BFLogInterceptor that returns the same BFInterceptedLog that receives
11 | */
12 | @interface BFDefaultLogInterceptor: NSObject
13 | @end
14 |
--------------------------------------------------------------------------------
/Package.swift:
--------------------------------------------------------------------------------
1 | // swift-tools-version:5.3
2 |
3 | import PackageDescription
4 |
5 | let package = Package(
6 | name: "BugfenderPackage",
7 | platforms: [
8 | .iOS("12")
9 | ],
10 | products: [
11 | .library(
12 | name: "BugfenderLibrary",
13 | targets: ["BugfenderSDK"])
14 | ],
15 | targets: [
16 | .binaryTarget(
17 | name: "BugfenderSDK",
18 | url: "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/2.1.0/BugfenderSDK.xcframework.zip",
19 | checksum: "04e27940a53f0888b7a64620a61ff2dd7b660c79013cd919daa765e0f174976a"
20 | )
21 | ]
22 | )
23 |
--------------------------------------------------------------------------------
/Example/BugfenderExampleUITests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BFLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSLogInterceptor.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "BFInterceptedLog.h"
11 |
12 | /**
13 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
14 | */
15 | @protocol BFLogInterceptor
16 |
17 | /**
18 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
19 | * @param interceptedLog log intercepted
20 | * @return The log entry to be logged. If nil is returned the log entry won't be logged.
21 | */
22 | - (BFInterceptedLog *)intercept:(BFInterceptedLog *)interceptedLog;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "size" : "29x29",
6 | "scale" : "2x"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "size" : "29x29",
11 | "scale" : "3x"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "size" : "40x40",
16 | "scale" : "2x"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "size" : "40x40",
21 | "scale" : "3x"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "size" : "60x60",
26 | "scale" : "2x"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "size" : "60x60",
31 | "scale" : "3x"
32 | }
33 | ],
34 | "info" : {
35 | "version" : 1,
36 | "author" : "xcode"
37 | }
38 | }
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BFLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSLogInterceptor.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "BFInterceptedLog.h"
11 |
12 | /**
13 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
14 | */
15 | @protocol BFLogInterceptor
16 |
17 | /**
18 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
19 | * @param interceptedLog log intercepted
20 | * @return The log entry to be logged. If nil is returned the log entry won't be logged.
21 | */
22 | - (BFInterceptedLog *)intercept:(BFInterceptedLog *)interceptedLog;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Headers/BFLogInterceptor.h:
--------------------------------------------------------------------------------
1 | //
2 | // NSLogInterceptor.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 | #import "BFInterceptedLog.h"
11 |
12 | /**
13 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
14 | */
15 | @protocol BFLogInterceptor
16 |
17 | /**
18 | * Intercept a log entry from NSLog/OSLog and allow to modify it or to block it.
19 | * @param interceptedLog log intercepted
20 | * @return The log entry to be logged. If nil is returned the log entry won't be logged.
21 | */
22 | - (BFInterceptedLog *)intercept:(BFInterceptedLog *)interceptedLog;
23 |
24 | @end
25 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyTracking
6 |
7 | NSPrivacyCollectedDataTypes
8 |
9 |
10 | NSPrivacyCollectedDataType
11 | NSPrivacyCollectedDataTypeOtherDiagnosticData
12 | NSPrivacyCollectedDataTypeLinked
13 |
14 | NSPrivacyCollectedDataTypeTracking
15 |
16 | NSPrivacyCollectedDataTypePurposes
17 |
18 | NSPrivacyCollectedDataTypePurposeOther
19 |
20 |
21 |
22 | NSPrivacyAccessedAPITypes
23 |
24 |
25 | NSPrivacyAccessedAPIType
26 | NSPrivacyAccessedAPICategoryUserDefaults
27 | NSPrivacyAccessedAPITypeReasons
28 |
29 | CA92.1
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyTracking
6 |
7 | NSPrivacyCollectedDataTypes
8 |
9 |
10 | NSPrivacyCollectedDataType
11 | NSPrivacyCollectedDataTypeOtherDiagnosticData
12 | NSPrivacyCollectedDataTypeLinked
13 |
14 | NSPrivacyCollectedDataTypeTracking
15 |
16 | NSPrivacyCollectedDataTypePurposes
17 |
18 | NSPrivacyCollectedDataTypePurposeOther
19 |
20 |
21 |
22 | NSPrivacyAccessedAPITypes
23 |
24 |
25 | NSPrivacyAccessedAPIType
26 | NSPrivacyAccessedAPICategoryUserDefaults
27 | NSPrivacyAccessedAPITypeReasons
28 |
29 | CA92.1
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/BugfenderSDK.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'BugfenderSDK'
3 | s.version = '2.1.0'
4 | s.ios.deployment_target = '12.0'
5 | s.license = { :type => 'Commercial', :text => 'See https://bugfender.com/terms-of-service/' }
6 | s.summary = 'Bugfender: a mobile remote logger'
7 | s.description = 'A modern remote logger tailor-made for mobile development.'
8 | s.homepage = 'https://bugfender.com'
9 | s.author = { 'Bugfender' => 'support@bugfender.com' }
10 | s.requires_arc = true
11 | s.source = {
12 | :git => 'https://github.com/bugfender/BugfenderSDK-iOS.git',
13 | :tag => s.version.to_s
14 | }
15 | s.swift_versions = ['5.1']
16 | s.frameworks = "Foundation", "SystemConfiguration", "Security", "MobileCoreServices"
17 | s.library = 'c++'
18 | s.vendored_frameworks = 'BugfenderSDK.xcframework'
19 | s.cocoapods_version = '>= 1.10.0'
20 | s.pod_target_xcconfig = { 'VALID_ARCHS' => 'arm64 arm64e armv7 armv7s x86_64' }
21 | s.preserve_paths = ['upload-symbols.sh']
22 | s.prepare_command = <<-PREPARE_COMMAND_END
23 | cp -f ./xcode-upload-symbols/upload-symbols.sh ./upload-symbols.sh
24 | PREPARE_COMMAND_END
25 |
26 | end
27 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Resources/PrivacyInfo.xcprivacy:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | NSPrivacyTracking
6 |
7 | NSPrivacyCollectedDataTypes
8 |
9 |
10 | NSPrivacyCollectedDataType
11 | NSPrivacyCollectedDataTypeOtherDiagnosticData
12 | NSPrivacyCollectedDataTypeLinked
13 |
14 | NSPrivacyCollectedDataTypeTracking
15 |
16 | NSPrivacyCollectedDataTypePurposes
17 |
18 | NSPrivacyCollectedDataTypePurposeOther
19 |
20 |
21 |
22 | NSPrivacyAccessedAPITypes
23 |
24 |
25 | NSPrivacyAccessedAPIType
26 | NSPrivacyAccessedAPICategoryUserDefaults
27 | NSPrivacyAccessedAPITypeReasons
28 |
29 | CA92.1
30 |
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // BugfenderExample
4 | //
5 | // Created by gimix on 14/08/15.
6 | // Copyright (c) 2015 Bugfender. All rights reserved.
7 | //
8 |
9 | #import "AppDelegate.h"
10 | #import
11 |
12 | @interface AppDelegate ()
13 |
14 | @end
15 |
16 | @implementation AppDelegate
17 |
18 |
19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
20 | // Configure Bugfender with all options enabled
21 | [Bugfender overrideDeviceName:@"This is the device name"];
22 | [Bugfender activateLogger:@"S4Ko0xfy9j4kaL4hZZT4bPEGpIncXLCo"]; // Use your own token here in order to see results in your account
23 | [Bugfender enableUIEventLogging];
24 | BFLog(@"Hello world! 🎉");
25 | return YES;
26 | }
27 |
28 | - (void)applicationWillResignActive:(UIApplication *)application {
29 |
30 | }
31 |
32 | - (void)applicationDidEnterBackground:(UIApplication *)application {
33 |
34 | }
35 |
36 | - (void)applicationWillEnterForeground:(UIApplication *)application {
37 |
38 | }
39 |
40 | - (void)applicationDidBecomeActive:(UIApplication *)application {
41 |
42 | }
43 |
44 | - (void)applicationWillTerminate:(UIApplication *)application {
45 |
46 | }
47 |
48 | @end
49 |
--------------------------------------------------------------------------------
/Example/BugfenderExampleUITests/BugfenderExampleUITests.m:
--------------------------------------------------------------------------------
1 | //
2 | // BugfenderExampleUITests.m
3 | // BugfenderExampleUITests
4 | //
5 | // Created by gimix on 06/10/2016.
6 | // Copyright © 2016 Bugfender. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface BugfenderExampleUITests : XCTestCase
12 |
13 | @end
14 |
15 | @implementation BugfenderExampleUITests
16 |
17 | - (void)setUp {
18 | [super setUp];
19 |
20 | // Put setup code here. This method is called before the invocation of each test method in the class.
21 |
22 | // In UI tests it is usually best to stop immediately when a failure occurs.
23 | self.continueAfterFailure = NO;
24 | // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
25 | [[[XCUIApplication alloc] init] launch];
26 |
27 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
28 | }
29 |
30 | - (void)tearDown {
31 | // Put teardown code here. This method is called after the invocation of each test method in the class.
32 | [super tearDown];
33 | }
34 |
35 | // this very simple test check no crashes happen when sending some log to Bugfender
36 | - (void)testButton {
37 | XCUIApplication *app = [[XCUIApplication alloc] init];
38 | [app.buttons[@"Example button"] tap];
39 | }
40 |
41 | @end
42 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIMainStoryboardFile
28 | Main
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UIStatusBarTintParameters
34 |
35 | UINavigationBar
36 |
37 | Style
38 | UIBarStyleDefault
39 | Translucent
40 |
41 |
42 |
43 | UISupportedInterfaceOrientations
44 |
45 | UIInterfaceOrientationPortrait
46 | UIInterfaceOrientationLandscapeLeft
47 | UIInterfaceOrientationLandscapeRight
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 24G90
7 | CFBundleDevelopmentRegion
8 | en
9 | CFBundleExecutable
10 | BugfenderSDK
11 | CFBundleIdentifier
12 | com.bugfender.BugfenderSDK
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | BugfenderSDK
17 | CFBundlePackageType
18 | FMWK
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSupportedPlatforms
22 |
23 | MacOSX
24 |
25 | CFBundleVersion
26 | 1
27 | DTCompiler
28 | com.apple.compilers.llvm.clang.1_0
29 | DTPlatformBuild
30 | 25A352
31 | DTPlatformName
32 | macosx
33 | DTPlatformVersion
34 | 26.0
35 | DTSDKBuild
36 | 25A352
37 | DTSDKName
38 | macosx26.0
39 | DTXcode
40 | 2601
41 | DTXcodeBuild
42 | 17A400
43 | LSMinimumSystemVersion
44 | 10.15
45 | UIDeviceFamily
46 |
47 | 2
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BFInterceptedLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFInterceptedLog.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Intercepted log from NSLog/OSLog
13 | */
14 | @interface BFInterceptedLog : NSObject
15 |
16 | /**
17 | * Initializes an BFInterceptedLog with a timestamp, text, and log level.
18 | * @note You will usually not need to use this method.
19 | * @param text Text of the log.
20 | * @param level Level of the log. See BFLogLevel enum for possible values.
21 | * @param date Timestamp of the log.
22 | */
23 | -(instancetype _Nonnull) initWithText: (NSString*_Nonnull) text level: (NSInteger)level date: (NSDate*_Nonnull) date;
24 |
25 | /**
26 | * Line in the source file where the log was originated.
27 | */
28 | @property (nonatomic, assign) NSInteger line;
29 |
30 | /**
31 | * Level of the log. See BFLogLevel enum for possible values.
32 | */
33 | @property (nonatomic, assign) NSInteger level;
34 |
35 | /**
36 | * Timestamp of the log.
37 | */
38 | @property (nonatomic, strong) NSDate * _Nonnull date;
39 |
40 | /**
41 | * Tag (or category) of the log.
42 | */
43 | @property (nonatomic, strong) NSString * _Nonnull tag;
44 |
45 | /**
46 | * Method of the source file where the log was originated.
47 | */
48 | @property (nonatomic, strong) NSString * _Nonnull method;
49 |
50 | /**
51 | * Source file name where the log was originated.
52 | */
53 | @property (nonatomic, strong) NSString * _Nonnull file;
54 |
55 | /**
56 | * Text of the log.
57 | */
58 | @property (nonatomic, strong) NSString * _Nonnull text;
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BFInterceptedLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFInterceptedLog.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Intercepted log from NSLog/OSLog
13 | */
14 | @interface BFInterceptedLog : NSObject
15 |
16 | /**
17 | * Initializes an BFInterceptedLog with a timestamp, text, and log level.
18 | * @note You will usually not need to use this method.
19 | * @param text Text of the log.
20 | * @param level Level of the log. See BFLogLevel enum for possible values.
21 | * @param date Timestamp of the log.
22 | */
23 | -(instancetype _Nonnull) initWithText: (NSString*_Nonnull) text level: (NSInteger)level date: (NSDate*_Nonnull) date;
24 |
25 | /**
26 | * Line in the source file where the log was originated.
27 | */
28 | @property (nonatomic, assign) NSInteger line;
29 |
30 | /**
31 | * Level of the log. See BFLogLevel enum for possible values.
32 | */
33 | @property (nonatomic, assign) NSInteger level;
34 |
35 | /**
36 | * Timestamp of the log.
37 | */
38 | @property (nonatomic, strong) NSDate * _Nonnull date;
39 |
40 | /**
41 | * Tag (or category) of the log.
42 | */
43 | @property (nonatomic, strong) NSString * _Nonnull tag;
44 |
45 | /**
46 | * Method of the source file where the log was originated.
47 | */
48 | @property (nonatomic, strong) NSString * _Nonnull method;
49 |
50 | /**
51 | * Source file name where the log was originated.
52 | */
53 | @property (nonatomic, strong) NSString * _Nonnull file;
54 |
55 | /**
56 | * Text of the log.
57 | */
58 | @property (nonatomic, strong) NSString * _Nonnull text;
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Headers/BFInterceptedLog.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFInterceptedLog.h
3 | // BugfenderSDK
4 | //
5 | // Created by Fran Montiel on 24/1/23.
6 | // Copyright © 2023 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | /**
12 | * Intercepted log from NSLog/OSLog
13 | */
14 | @interface BFInterceptedLog : NSObject
15 |
16 | /**
17 | * Initializes an BFInterceptedLog with a timestamp, text, and log level.
18 | * @note You will usually not need to use this method.
19 | * @param text Text of the log.
20 | * @param level Level of the log. See BFLogLevel enum for possible values.
21 | * @param date Timestamp of the log.
22 | */
23 | -(instancetype _Nonnull) initWithText: (NSString*_Nonnull) text level: (NSInteger)level date: (NSDate*_Nonnull) date;
24 |
25 | /**
26 | * Line in the source file where the log was originated.
27 | */
28 | @property (nonatomic, assign) NSInteger line;
29 |
30 | /**
31 | * Level of the log. See BFLogLevel enum for possible values.
32 | */
33 | @property (nonatomic, assign) NSInteger level;
34 |
35 | /**
36 | * Timestamp of the log.
37 | */
38 | @property (nonatomic, strong) NSDate * _Nonnull date;
39 |
40 | /**
41 | * Tag (or category) of the log.
42 | */
43 | @property (nonatomic, strong) NSString * _Nonnull tag;
44 |
45 | /**
46 | * Method of the source file where the log was originated.
47 | */
48 | @property (nonatomic, strong) NSString * _Nonnull method;
49 |
50 | /**
51 | * Source file name where the log was originated.
52 | */
53 | @property (nonatomic, strong) NSString * _Nonnull file;
54 |
55 | /**
56 | * Text of the log.
57 | */
58 | @property (nonatomic, strong) NSString * _Nonnull text;
59 |
60 | @end
61 |
--------------------------------------------------------------------------------
/upload-symbols.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | token=${1:-$BUGFENDER_SYMBOLICATION_TOKEN}
5 | if [ -z "$token" ]; then
6 | echo 'Symbolication Token is required'
7 | exit 0 # Do not fail, we don't want to break people's BC builds
8 | fi
9 | url=${BUGFENDER_SYMBOLICATION_URL:-https://dashboard.bugfender.com/}
10 | [[ "$url" != */ ]] && url="$url/"
11 |
12 | version=$MARKETING_VERSION
13 | build=$CURRENT_PROJECT_VERSION
14 |
15 | dsympath="$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"
16 | if [ -f "$dsympath" ] && [ ! -s "$dsympath" ]; then
17 | echo 'dSYM path leads to an empty file'
18 | echo 'Check that you are not hitting https://developer.apple.com/forums/thread/659187'
19 | exit 0 # Do not fail, we don't want to break people's BC builds
20 | fi
21 | if [ -z "$(find "$dsympath" -type f)" ]; then
22 | echo 'No files found inside dSYM bundle'
23 | echo 'Probably a BitCode enabled build?'
24 | echo 'For now, these have to have symbols uploaded manually through the Dashboard'
25 | exit 0 # Do not fail, we don't want to break people's BC builds
26 | fi
27 |
28 | tempdir=$(mktemp -d -t 'bugfender')
29 | zippath="$tempdir/dSYMs.zip"
30 | function cleanup {
31 | rm -f "$zippath"
32 | rmdir "$tempdir"
33 | }
34 | trap cleanup EXIT
35 |
36 | zip -r "$zippath" "$dsympath"
37 |
38 | resp=$(curl -i# \
39 | -H "Authorization: Bearer $token" \
40 | -F version="$version" \
41 | -F build="$build" \
42 | -F file=@"$zippath" \
43 | "${url}api/upload-symbols"
44 | )
45 | statuscode=$(echo "$resp" | head -n1 | cut -d' ' -f2)
46 | if [ "$statuscode" -eq 100 ]; then
47 | statuscode=$(echo "$resp" | head -n3 | tail -n1 | cut -d' ' -f2)
48 | fi
49 | if [ "$statuscode" -ne 200 ]; then
50 | message=$(echo "$resp" | tail -n1)
51 | echo "Upload failed with code $statuscode and message: $message"
52 | exit 0 # Do not fail, we don't want to break people's BC builds
53 | fi
54 |
--------------------------------------------------------------------------------
/xcode-upload-symbols/upload-symbols.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | set -e
3 |
4 | token=${1:-$BUGFENDER_SYMBOLICATION_TOKEN}
5 | if [ -z "$token" ]; then
6 | echo 'Symbolication Token is required'
7 | exit 0 # Do not fail, we don't want to break people's BC builds
8 | fi
9 | url=${BUGFENDER_SYMBOLICATION_URL:-https://dashboard.bugfender.com/}
10 | [[ "$url" != */ ]] && url="$url/"
11 |
12 | version=$MARKETING_VERSION
13 | build=$CURRENT_PROJECT_VERSION
14 |
15 | dsympath="$DWARF_DSYM_FOLDER_PATH/$DWARF_DSYM_FILE_NAME"
16 | if [ -f "$dsympath" ] && [ ! -s "$dsympath" ]; then
17 | echo 'dSYM path leads to an empty file'
18 | echo 'Check that you are not hitting https://developer.apple.com/forums/thread/659187'
19 | exit 0 # Do not fail, we don't want to break people's BC builds
20 | fi
21 | if [ -z "$(find "$dsympath" -type f)" ]; then
22 | echo 'No files found inside dSYM bundle'
23 | echo 'Probably a BitCode enabled build?'
24 | echo 'For now, these have to have symbols uploaded manually through the Dashboard'
25 | exit 0 # Do not fail, we don't want to break people's BC builds
26 | fi
27 |
28 | tempdir=$(mktemp -d -t 'bugfender')
29 | zippath="$tempdir/dSYMs.zip"
30 | function cleanup {
31 | rm -f "$zippath"
32 | rmdir "$tempdir"
33 | }
34 | trap cleanup EXIT
35 |
36 | zip -r "$zippath" "$dsympath"
37 |
38 | resp=$(curl -i# \
39 | -H "Authorization: Bearer $token" \
40 | -F version="$version" \
41 | -F build="$build" \
42 | -F file=@"$zippath" \
43 | "${url}api/upload-symbols"
44 | )
45 | statuscode=$(echo "$resp" | head -n1 | cut -d' ' -f2)
46 | if [ "$statuscode" -eq 100 ]; then
47 | statuscode=$(echo "$resp" | head -n3 | tail -n1 | cut -d' ' -f2)
48 | fi
49 | if [ "$statuscode" -ne 200 ]; then
50 | message=$(echo "$resp" | tail -n1)
51 | echo "Upload failed with code $statuscode and message: $message"
52 | exit 0 # Do not fail, we don't want to break people's BC builds
53 | fi
54 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AvailableLibraries
6 |
7 |
8 | BinaryPath
9 | BugfenderSDK.framework/BugfenderSDK
10 | LibraryIdentifier
11 | ios-arm64_x86_64-simulator
12 | LibraryPath
13 | BugfenderSDK.framework
14 | SupportedArchitectures
15 |
16 | arm64
17 | x86_64
18 |
19 | SupportedPlatform
20 | ios
21 | SupportedPlatformVariant
22 | simulator
23 |
24 |
25 | BinaryPath
26 | BugfenderSDK.framework/BugfenderSDK
27 | LibraryIdentifier
28 | ios-arm64
29 | LibraryPath
30 | BugfenderSDK.framework
31 | SupportedArchitectures
32 |
33 | arm64
34 |
35 | SupportedPlatform
36 | ios
37 |
38 |
39 | BinaryPath
40 | BugfenderSDK.framework/Versions/A/BugfenderSDK
41 | LibraryIdentifier
42 | ios-arm64_x86_64-maccatalyst
43 | LibraryPath
44 | BugfenderSDK.framework
45 | SupportedArchitectures
46 |
47 | arm64
48 | x86_64
49 |
50 | SupportedPlatform
51 | ios
52 | SupportedPlatformVariant
53 | maccatalyst
54 |
55 |
56 | CFBundlePackageType
57 | XFWK
58 | XCFrameworkFormatVersion
59 | 1.0
60 |
61 |
62 |
--------------------------------------------------------------------------------
/xcode-upload-symbols/README.md:
--------------------------------------------------------------------------------
1 | Bugfender iOS Symbols Upload Script
2 | ===================================
3 |
4 | Used to automatically upload dSYM bundles to [Bugfender](https://bugfender.com).
5 |
6 | Our upload script is meant to be executed locally from the Xcode build environment. It may not yet function in Xcode Cloud.
7 |
8 | ## Enable Symbol Creation
9 |
10 | 1. Open project settings.
11 |
12 | 1. Select your main target from the *TARGETS* list on the left.
13 |
14 | 1. Select the *Build Settings* tab.
15 |
16 | 1. Ensure that `Debug Information Format` is set to `DWARF with dSYM File`.
17 |
18 | ## Configure Build to Upload Symbols
19 |
20 | 1. Open project settings.
21 |
22 | 1. Select your main target from the *TARGETS* list on the left.
23 |
24 | 1. Select the *Build Settings* tab, find **Build Options** > **User Script Sandboxing** and set it to **No**.
25 |
26 | 1. Select the *Build Phases* tab.
27 |
28 | 1. Open menu under the `+` sign and select *New Run Script Phase*.
29 |
30 | 1. Configure the new *Run Script* as follows:
31 |
32 | * If you are using CocoaPods:
33 | ```sh
34 | ${PODS_ROOT}/BugfenderSDK/upload-symbols.sh
35 | ```
36 |
37 | * If you using SPM:
38 |
39 | ```sh
40 | BUGFENDER_SYMBOLICATION_URL=https://dashboard.bugfender.com/ ${BUILD_DIR%Build/*}SourcePackages/checkouts/BugfenderSDK-iOS/xcode-upload-symbols/upload-symbols.sh
41 | ```
42 |
43 | * If you copied the script manually:
44 | ```sh
45 | /upload-symbols.sh
46 | ```
47 |
48 | * The **bugfender symbolication token** can be obtained from the Bugfender Dashboard and needs to be specified either as a first argument to the script or setting the `BUGFENDER_SYMBOLICATION_TOKEN` environment variable.
49 |
50 | 1. Under the "Input Files" section, add the following path. This will provide access to the debug symbols to our upload script.
51 |
52 | `${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}`
53 |
54 | 1. Done! Here is a screenshot of what the complete settings would look like if you were using SPM.
55 |
56 | 
57 |
--------------------------------------------------------------------------------
/BugfenderSDK-XCFramework.json:
--------------------------------------------------------------------------------
1 | {
2 | "1.8.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.8.0/BugfenderSDK.xcframework.zip",
3 | "1.9.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.0/BugfenderSDK.xcframework.zip",
4 | "1.9.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.1/BugfenderSDK.xcframework.zip",
5 | "1.9.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.2/BugfenderSDK.xcframework.zip",
6 | "1.10.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.0/BugfenderSDK.xcframework.zip",
7 | "1.10.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.1/BugfenderSDK.xcframework.zip",
8 | "1.10.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.2/BugfenderSDK.xcframework.zip",
9 | "1.10.3" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.3/BugfenderSDK.xcframework.zip",
10 | "1.10.4" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.4/BugfenderSDK.xcframework.zip",
11 | "1.10.5" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.5/BugfenderSDK.xcframework.zip",
12 | "1.10.6" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.6/BugfenderSDK.xcframework.zip",
13 | "1.11.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.11.0/BugfenderSDK.xcframework.zip",
14 | "1.12.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.0/BugfenderSDK.xcframework.zip",
15 | "1.12.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.1/BugfenderSDK.xcframework.zip",
16 | "1.12.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.2/BugfenderSDK.xcframework.zip",
17 | "1.13.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.0/BugfenderSDK.xcframework.zip",
18 | "1.13.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.1/BugfenderSDK.xcframework.zip",
19 | "1.13.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.2/BugfenderSDK.xcframework.zip",
20 | "2.0.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/2.0.0/BugfenderSDK.xcframework.zip",
21 | "2.0.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/2.0.1/BugfenderSDK.xcframework.zip",
22 | "2.1.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/2.1.0/BugfenderSDK.xcframework.zip"
23 | }
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BFUserFeedbackNavigationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 15/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #if TARGET_OS_IOS
10 |
11 | #import "BFUserFeedbackViewController.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | /**
16 | * Navigation View Controller containing a BFUserFeedbackNavigationController as rootViewController
17 | */
18 | @interface BFUserFeedbackNavigationController : UINavigationController
19 |
20 |
21 |
22 | /**
23 | * Root View Controller containing a table with the textfields used to gather feedback
24 | */
25 | @property (nonatomic, strong) BFUserFeedbackViewController *feedbackViewController;
26 |
27 | /**
28 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
29 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
30 |
31 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
32 |
33 | @param title Title for the navigation bar
34 | @param hint Short text at the beginning
35 | @param subjectPlaceholder placeholder in the subject textfield
36 | @param messagePlaceholder placeholder in the message textfield
37 | @param sendButtonTitle title for the send button in the navigation bar
38 | @param cancelButtonTitle title for the cancel button
39 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
40 | */
41 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
42 | hint:(NSString *)hint
43 | subjectPlaceholder:(NSString *)subjectPlaceholder
44 | messagePlaceholder:(NSString *)messagePlaceholder
45 | sendButtonTitle:(NSString *)sendButtonTitle
46 | cancelButtonTitle:(NSString *)cancelButtonTitle
47 | completion:(void (^)(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
48 |
49 |
50 | @end
51 |
52 | NS_ASSUME_NONNULL_END
53 | #endif
54 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BFUserFeedbackNavigationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 15/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #if TARGET_OS_IOS
10 |
11 | #import "BFUserFeedbackViewController.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | /**
16 | * Navigation View Controller containing a BFUserFeedbackNavigationController as rootViewController
17 | */
18 | @interface BFUserFeedbackNavigationController : UINavigationController
19 |
20 |
21 |
22 | /**
23 | * Root View Controller containing a table with the textfields used to gather feedback
24 | */
25 | @property (nonatomic, strong) BFUserFeedbackViewController *feedbackViewController;
26 |
27 | /**
28 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
29 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
30 |
31 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
32 |
33 | @param title Title for the navigation bar
34 | @param hint Short text at the beginning
35 | @param subjectPlaceholder placeholder in the subject textfield
36 | @param messagePlaceholder placeholder in the message textfield
37 | @param sendButtonTitle title for the send button in the navigation bar
38 | @param cancelButtonTitle title for the cancel button
39 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
40 | */
41 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
42 | hint:(NSString *)hint
43 | subjectPlaceholder:(NSString *)subjectPlaceholder
44 | messagePlaceholder:(NSString *)messagePlaceholder
45 | sendButtonTitle:(NSString *)sendButtonTitle
46 | cancelButtonTitle:(NSString *)cancelButtonTitle
47 | completion:(void (^)(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
48 |
49 |
50 | @end
51 |
52 | NS_ASSUME_NONNULL_END
53 | #endif
54 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Headers/BFUserFeedbackNavigationController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 15/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #if TARGET_OS_IOS
10 |
11 | #import "BFUserFeedbackViewController.h"
12 |
13 | NS_ASSUME_NONNULL_BEGIN
14 |
15 | /**
16 | * Navigation View Controller containing a BFUserFeedbackNavigationController as rootViewController
17 | */
18 | @interface BFUserFeedbackNavigationController : UINavigationController
19 |
20 |
21 |
22 | /**
23 | * Root View Controller containing a table with the textfields used to gather feedback
24 | */
25 | @property (nonatomic, strong) BFUserFeedbackViewController *feedbackViewController;
26 |
27 | /**
28 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
29 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
30 |
31 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
32 |
33 | @param title Title for the navigation bar
34 | @param hint Short text at the beginning
35 | @param subjectPlaceholder placeholder in the subject textfield
36 | @param messagePlaceholder placeholder in the message textfield
37 | @param sendButtonTitle title for the send button in the navigation bar
38 | @param cancelButtonTitle title for the cancel button
39 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
40 | */
41 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
42 | hint:(NSString *)hint
43 | subjectPlaceholder:(NSString *)subjectPlaceholder
44 | messagePlaceholder:(NSString *)messagePlaceholder
45 | sendButtonTitle:(NSString *)sendButtonTitle
46 | cancelButtonTitle:(NSString *)cancelButtonTitle
47 | completion:(void (^)(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
48 |
49 |
50 | @end
51 |
52 | NS_ASSUME_NONNULL_END
53 | #endif
54 |
--------------------------------------------------------------------------------
/BugfenderSDK.json:
--------------------------------------------------------------------------------
1 | {
2 | "1.6.3" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.6.3/BugfenderSDK.framework.zip",
3 | "1.6.4" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.6.4/BugfenderSDK.framework.zip",
4 | "1.6.5" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.6.5/BugfenderSDK.framework.zip",
5 | "1.6.6" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.6.6/BugfenderSDK.framework.zip",
6 | "1.7.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.7.0/BugfenderSDK.framework.zip",
7 | "1.8.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.8.0/BugfenderSDK.framework.zip",
8 | "1.9.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.0/BugfenderSDK.framework.zip",
9 | "1.9.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.1/BugfenderSDK.framework.zip",
10 | "1.9.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.9.2/BugfenderSDK.framework.zip",
11 | "1.10.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.0/BugfenderSDK.framework.zip",
12 | "1.10.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.1/BugfenderSDK.framework.zip",
13 | "1.10.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.2/BugfenderSDK.framework.zip",
14 | "1.10.3" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.3/BugfenderSDK.framework.zip",
15 | "1.10.4" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.4/BugfenderSDK.framework.zip",
16 | "1.10.5" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.5/BugfenderSDK.framework.zip",
17 | "1.10.6" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.10.6/BugfenderSDK.framework.zip",
18 | "1.11.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.11.0/BugfenderSDK.framework.zip",
19 | "1.12.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.0/BugfenderSDK.framework.zip",
20 | "1.12.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.1/BugfenderSDK.framework.zip",
21 | "1.12.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.12.2/BugfenderSDK.framework.zip",
22 | "1.13.0" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.0/BugfenderSDK.framework.zip",
23 | "1.13.1" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.1/BugfenderSDK.framework.zip",
24 | "1.13.2" : "https://github.com/bugfender/BugfenderSDK-iOS/releases/download/1.13.2/BugfenderSDK.framework.zip"
25 | }
26 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BFUserFeedbackViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 16/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /**
14 | * BFUserFeedbackViewController provides a basic and configurable view controller to gather feedback from the users
15 | */
16 | @interface BFUserFeedbackViewController : UITableViewController {
17 |
18 | }
19 |
20 | #pragma mark - Background colors
21 |
22 | /**
23 | The background of the view controller
24 | */
25 | @property (nonatomic, strong) UIColor *mainBackgroundColor;
26 |
27 | /**
28 | Background for textfields
29 | */
30 | @property (nonatomic, strong) UIColor *secondaryBackgroundColor;
31 |
32 | #pragma mark - Hint
33 |
34 | /**
35 | The hint is the upper text in the view controller.
36 | Use the hint give instructions to your users or just to thank them for providing feedback
37 | */
38 | @property (nonatomic, strong) NSString *hint;
39 |
40 | /**
41 | * Font from the hint
42 | */
43 | @property (nonatomic, strong) UIFont *hintFont;
44 |
45 | /**
46 | * Font color from the hint
47 | */
48 | @property (nonatomic, strong) UIColor *hintFontColor;
49 |
50 | #pragma mark - Subject
51 |
52 | /**
53 | The subject of the feedback.
54 | Remember to provide a placeholder
55 | */
56 | @property (nonatomic, strong) UIFont *subjectFont;
57 |
58 | /**
59 | * Font color from the subject textfield
60 | */
61 | @property (nonatomic, strong) UIColor *subjectFontColor;
62 |
63 | /**
64 | * Font color for the placeholder of the subject textfield
65 | */
66 | @property (nonatomic, strong) UIColor *subjectPlaceholderFontColor;
67 |
68 | /**
69 | * Subject placeholder
70 | */
71 | @property (nonatomic, strong) NSString *subjectPlaceholder;
72 |
73 | #pragma mark - Message
74 | /**
75 | The message of the feedback
76 | Remember to provide a placeholder
77 | */
78 | @property (nonatomic, strong) UIFont *messageFont;
79 |
80 | /**
81 | * Message font color
82 | */
83 | @property (nonatomic, strong) UIColor *messageFontColor;
84 |
85 | /**
86 | * Message placeholder font color
87 | */
88 | @property (nonatomic, strong) UIColor *messagePlaceholderFontColor;
89 |
90 | /**
91 | * Message placeholder
92 | */
93 | @property (nonatomic, strong) NSString *messagePlaceholder;
94 |
95 | #pragma mark - Actions
96 |
97 | /**
98 | * Hide view controller
99 | */
100 | - (void)dismiss;
101 |
102 | /**
103 | * Send feedback to Bugfender
104 | */
105 | - (void)sendFeedback;
106 |
107 | /**
108 | Pass a block if you want to be notified after feedback was sent (or not)
109 | */
110 | @property (nonatomic, copy) void (^completionBlock)(BOOL feedbackSent, NSURL * _Nullable url);
111 |
112 | @end
113 |
114 | NS_ASSUME_NONNULL_END
115 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BFUserFeedbackViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 16/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /**
14 | * BFUserFeedbackViewController provides a basic and configurable view controller to gather feedback from the users
15 | */
16 | @interface BFUserFeedbackViewController : UITableViewController {
17 |
18 | }
19 |
20 | #pragma mark - Background colors
21 |
22 | /**
23 | The background of the view controller
24 | */
25 | @property (nonatomic, strong) UIColor *mainBackgroundColor;
26 |
27 | /**
28 | Background for textfields
29 | */
30 | @property (nonatomic, strong) UIColor *secondaryBackgroundColor;
31 |
32 | #pragma mark - Hint
33 |
34 | /**
35 | The hint is the upper text in the view controller.
36 | Use the hint give instructions to your users or just to thank them for providing feedback
37 | */
38 | @property (nonatomic, strong) NSString *hint;
39 |
40 | /**
41 | * Font from the hint
42 | */
43 | @property (nonatomic, strong) UIFont *hintFont;
44 |
45 | /**
46 | * Font color from the hint
47 | */
48 | @property (nonatomic, strong) UIColor *hintFontColor;
49 |
50 | #pragma mark - Subject
51 |
52 | /**
53 | The subject of the feedback.
54 | Remember to provide a placeholder
55 | */
56 | @property (nonatomic, strong) UIFont *subjectFont;
57 |
58 | /**
59 | * Font color from the subject textfield
60 | */
61 | @property (nonatomic, strong) UIColor *subjectFontColor;
62 |
63 | /**
64 | * Font color for the placeholder of the subject textfield
65 | */
66 | @property (nonatomic, strong) UIColor *subjectPlaceholderFontColor;
67 |
68 | /**
69 | * Subject placeholder
70 | */
71 | @property (nonatomic, strong) NSString *subjectPlaceholder;
72 |
73 | #pragma mark - Message
74 | /**
75 | The message of the feedback
76 | Remember to provide a placeholder
77 | */
78 | @property (nonatomic, strong) UIFont *messageFont;
79 |
80 | /**
81 | * Message font color
82 | */
83 | @property (nonatomic, strong) UIColor *messageFontColor;
84 |
85 | /**
86 | * Message placeholder font color
87 | */
88 | @property (nonatomic, strong) UIColor *messagePlaceholderFontColor;
89 |
90 | /**
91 | * Message placeholder
92 | */
93 | @property (nonatomic, strong) NSString *messagePlaceholder;
94 |
95 | #pragma mark - Actions
96 |
97 | /**
98 | * Hide view controller
99 | */
100 | - (void)dismiss;
101 |
102 | /**
103 | * Send feedback to Bugfender
104 | */
105 | - (void)sendFeedback;
106 |
107 | /**
108 | Pass a block if you want to be notified after feedback was sent (or not)
109 | */
110 | @property (nonatomic, copy) void (^completionBlock)(BOOL feedbackSent, NSURL * _Nullable url);
111 |
112 | @end
113 |
114 | NS_ASSUME_NONNULL_END
115 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Headers/BFUserFeedbackViewController.h:
--------------------------------------------------------------------------------
1 | //
2 | // BFUserFeedbackViewController.h
3 | // BugfenderSDK
4 | //
5 | // Created by Rubén Vázquez Otero on 16/10/2018.
6 | // Copyright © 2018 Beenario GmbH. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | NS_ASSUME_NONNULL_BEGIN
12 |
13 | /**
14 | * BFUserFeedbackViewController provides a basic and configurable view controller to gather feedback from the users
15 | */
16 | @interface BFUserFeedbackViewController : UITableViewController {
17 |
18 | }
19 |
20 | #pragma mark - Background colors
21 |
22 | /**
23 | The background of the view controller
24 | */
25 | @property (nonatomic, strong) UIColor *mainBackgroundColor;
26 |
27 | /**
28 | Background for textfields
29 | */
30 | @property (nonatomic, strong) UIColor *secondaryBackgroundColor;
31 |
32 | #pragma mark - Hint
33 |
34 | /**
35 | The hint is the upper text in the view controller.
36 | Use the hint give instructions to your users or just to thank them for providing feedback
37 | */
38 | @property (nonatomic, strong) NSString *hint;
39 |
40 | /**
41 | * Font from the hint
42 | */
43 | @property (nonatomic, strong) UIFont *hintFont;
44 |
45 | /**
46 | * Font color from the hint
47 | */
48 | @property (nonatomic, strong) UIColor *hintFontColor;
49 |
50 | #pragma mark - Subject
51 |
52 | /**
53 | The subject of the feedback.
54 | Remember to provide a placeholder
55 | */
56 | @property (nonatomic, strong) UIFont *subjectFont;
57 |
58 | /**
59 | * Font color from the subject textfield
60 | */
61 | @property (nonatomic, strong) UIColor *subjectFontColor;
62 |
63 | /**
64 | * Font color for the placeholder of the subject textfield
65 | */
66 | @property (nonatomic, strong) UIColor *subjectPlaceholderFontColor;
67 |
68 | /**
69 | * Subject placeholder
70 | */
71 | @property (nonatomic, strong) NSString *subjectPlaceholder;
72 |
73 | #pragma mark - Message
74 | /**
75 | The message of the feedback
76 | Remember to provide a placeholder
77 | */
78 | @property (nonatomic, strong) UIFont *messageFont;
79 |
80 | /**
81 | * Message font color
82 | */
83 | @property (nonatomic, strong) UIColor *messageFontColor;
84 |
85 | /**
86 | * Message placeholder font color
87 | */
88 | @property (nonatomic, strong) UIColor *messagePlaceholderFontColor;
89 |
90 | /**
91 | * Message placeholder
92 | */
93 | @property (nonatomic, strong) NSString *messagePlaceholder;
94 |
95 | #pragma mark - Actions
96 |
97 | /**
98 | * Hide view controller
99 | */
100 | - (void)dismiss;
101 |
102 | /**
103 | * Send feedback to Bugfender
104 | */
105 | - (void)sendFeedback;
106 |
107 | /**
108 | Pass a block if you want to be notified after feedback was sent (or not)
109 | */
110 | @property (nonatomic, copy) void (^completionBlock)(BOOL feedbackSent, NSURL * _Nullable url);
111 |
112 | @end
113 |
114 | NS_ASSUME_NONNULL_END
115 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | CFPropertyList (3.0.6)
5 | rexml
6 | activesupport (7.0.8)
7 | concurrent-ruby (~> 1.0, >= 1.0.2)
8 | i18n (>= 1.6, < 2)
9 | minitest (>= 5.1)
10 | tzinfo (~> 2.0)
11 | addressable (2.8.5)
12 | public_suffix (>= 2.0.2, < 6.0)
13 | algoliasearch (1.27.5)
14 | httpclient (~> 2.8, >= 2.8.3)
15 | json (>= 1.5.1)
16 | atomos (0.1.3)
17 | claide (1.1.0)
18 | cocoapods (1.12.1)
19 | addressable (~> 2.8)
20 | claide (>= 1.0.2, < 2.0)
21 | cocoapods-core (= 1.12.1)
22 | cocoapods-deintegrate (>= 1.0.3, < 2.0)
23 | cocoapods-downloader (>= 1.6.0, < 2.0)
24 | cocoapods-plugins (>= 1.0.0, < 2.0)
25 | cocoapods-search (>= 1.0.0, < 2.0)
26 | cocoapods-trunk (>= 1.6.0, < 2.0)
27 | cocoapods-try (>= 1.1.0, < 2.0)
28 | colored2 (~> 3.1)
29 | escape (~> 0.0.4)
30 | fourflusher (>= 2.3.0, < 3.0)
31 | gh_inspector (~> 1.0)
32 | molinillo (~> 0.8.0)
33 | nap (~> 1.0)
34 | ruby-macho (>= 2.3.0, < 3.0)
35 | xcodeproj (>= 1.21.0, < 2.0)
36 | cocoapods-core (1.12.1)
37 | activesupport (>= 5.0, < 8)
38 | addressable (~> 2.8)
39 | algoliasearch (~> 1.0)
40 | concurrent-ruby (~> 1.1)
41 | fuzzy_match (~> 2.0.4)
42 | nap (~> 1.0)
43 | netrc (~> 0.11)
44 | public_suffix (~> 4.0)
45 | typhoeus (~> 1.0)
46 | cocoapods-deintegrate (1.0.5)
47 | cocoapods-downloader (1.6.3)
48 | cocoapods-plugins (1.0.0)
49 | nap
50 | cocoapods-search (1.0.1)
51 | cocoapods-trunk (1.6.0)
52 | nap (>= 0.8, < 2.0)
53 | netrc (~> 0.11)
54 | cocoapods-try (1.2.0)
55 | colored2 (3.1.2)
56 | concurrent-ruby (1.2.2)
57 | escape (0.0.4)
58 | ethon (0.16.0)
59 | ffi (>= 1.15.0)
60 | ffi (1.15.5)
61 | fourflusher (2.3.1)
62 | fuzzy_match (2.0.4)
63 | gh_inspector (1.1.3)
64 | httpclient (2.8.3)
65 | i18n (1.14.1)
66 | concurrent-ruby (~> 1.0)
67 | jazzy (0.14.4)
68 | cocoapods (~> 1.5)
69 | mustache (~> 1.1)
70 | open4 (~> 1.3)
71 | redcarpet (~> 3.4)
72 | rexml (~> 3.2)
73 | rouge (>= 2.0.6, < 5.0)
74 | sassc (~> 2.1)
75 | sqlite3 (~> 1.3)
76 | xcinvoke (~> 0.3.0)
77 | json (2.6.3)
78 | liferaft (0.0.6)
79 | minitest (5.20.0)
80 | molinillo (0.8.0)
81 | mustache (1.1.1)
82 | nanaimo (0.3.0)
83 | nap (1.1.0)
84 | netrc (0.11.0)
85 | open4 (1.3.4)
86 | public_suffix (4.0.7)
87 | redcarpet (3.6.0)
88 | rexml (3.2.6)
89 | rouge (4.1.3)
90 | ruby-macho (2.5.1)
91 | sassc (2.4.0)
92 | ffi (~> 1.9)
93 | sqlite3 (1.6.6-x86_64-darwin)
94 | typhoeus (1.4.0)
95 | ethon (>= 0.9.0)
96 | tzinfo (2.0.6)
97 | concurrent-ruby (~> 1.0)
98 | xcinvoke (0.3.0)
99 | liferaft (~> 0.0.6)
100 | xcodeproj (1.22.0)
101 | CFPropertyList (>= 2.3.3, < 4.0)
102 | atomos (~> 0.1.3)
103 | claide (>= 1.0.2, < 2.0)
104 | colored2 (~> 3.1)
105 | nanaimo (~> 0.3.0)
106 | rexml (~> 3.2.4)
107 |
108 | PLATFORMS
109 | x86_64-darwin-22
110 |
111 | DEPENDENCIES
112 | jazzy
113 |
114 | BUNDLED WITH
115 | 2.4.10
116 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.private.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target x86_64-apple-ios12.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-macabi.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios13.1-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-macabi.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target x86_64-apple-ios13.1-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target x86_64-apple-ios12.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-macabi.private.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target arm64-apple-ios13.1-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-macabi.private.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
3 | // swift-module-flags: -target x86_64-apple-ios13.1-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | #if compiler(>=5.3) && $NonescapableTypes
13 | public class func print(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
14 | #endif
15 | #if compiler(>=5.3) && $NonescapableTypes
16 | public class func error(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
17 | #endif
18 | #if compiler(>=5.3) && $NonescapableTypes
19 | public class func warning(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "\n", tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
20 | #endif
21 | }
22 | #if compiler(>=5.3) && $NonescapableTypes
23 | public func BFLog(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
24 | #endif
25 | #if compiler(>=5.3) && $NonescapableTypes
26 | public func BFLogWarn(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
27 | #endif
28 | #if compiler(>=5.3) && $NonescapableTypes
29 | public func BFLogErr(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
30 | #endif
31 | #if compiler(>=5.3) && $NonescapableTypes
32 | public func BFLogTrace(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
33 | #endif
34 | #if compiler(>=5.3) && $NonescapableTypes
35 | public func BFLogInfo(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
36 | #endif
37 | #if compiler(>=5.3) && $NonescapableTypes
38 | public func BFLogFatal(_ format: Swift.String, _ args: any Swift.CVarArg..., tag: Swift.String? = nil, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
39 | #endif
40 | #if compiler(>=5.3) && $NonescapableTypes
41 | public func bfprint(_ items: Any..., separator: Swift.String = " ", terminator: Swift.String = "", tag: Swift.String? = nil, level: BugfenderSDK.BFLogLevel = .default, filename: Swift.String = #file, line: Swift.Int = #line, funcname: Swift.String = #function)
42 | #endif
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Bugfender SDK for iOS [](https://docs.bugfender.com/docs/category/ios/)
2 | ===================
3 |
4 | Bugfender is a cloud service to collect mobile application logs. Developers can control log sending programmatically and manually for each device. Logs are available at the [Bugfender dashboard](https://dashboard.bugfender.com/). You'll need an account.
5 |
6 | Supported iOS versions:
7 | * BugfenderSDK 2.0 works for iOS 12.0 and newer.
8 | * For iOS 11.0 support you can use BugfenderSDK 1.12.
9 | * For iOS 10 support you can use BugfenderSDK 1.10.6.
10 | * For iOS 8 support you can use BugfenderSDK 1.8.
11 |
12 | # Using Bugfender
13 | Once you have the framework in your project, using it is as easy as using `BFLog()` instead of `NSLog()` or `bfprint()` instead `print()`.
14 |
15 | ## Swift
16 |
17 | If your application uses SwiftUI and doesn't have an AppDelegate, you might need to create one like this:
18 |
19 | ```Swift
20 | @main
21 | struct YourAppNameApp: App {
22 |
23 | @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
24 |
25 | var body: some Scene {
26 | WindowGroup {
27 | ContentView()
28 | }
29 | }
30 | }
31 |
32 | class AppDelegate: NSObject, UIApplicationDelegate {
33 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
34 | Bugfender.activateLogger("YOUR_APP_KEY")
35 | Bugfender.enableUIEventLogging() // optional, log user interactions automatically
36 | Bugfender.enableCrashReporting() // optional, log crashes automatically
37 | bfprint("Hello world!") // use bfprint() as you would use
38 | return true
39 | }
40 | }
41 | ```
42 | Then you may use `BFLog` as you would normally use `NSLog` or `print`.
43 |
44 | You may also want to specify a logging level by using the following helper functions:
45 |
46 | - `Bugfender.print(...)`: Default log.
47 | - `Bugfender.warning(...)`: Warning log.
48 | - `Bugfender.error(...)`: Error log.
49 |
50 | ## Objective-C
51 |
52 | Make Bugfender available project-wide by adding the following line to the `.pch` file:
53 |
54 | ```objective-c
55 | #import
56 | ```
57 |
58 | Get an API key from the [Bugfender console](https://app.bugfender.com/). In your `AppDelegate` call [activateLogger](http://cocoadocs.org/docsets/BugfenderSDK/0.3.9/Classes/Bugfender.html#//api/name/activateLogger:) when the application starts, like this:
59 |
60 | ```objective-c
61 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
62 | {
63 | ...
64 | // Activate the remote logger with an App Key.
65 | [Bugfender activateLogger:@"YOUR_APP_KEY"];
66 | [Bugfender enableNSLogLogging]; // optional, capture logs printed to console automatically
67 | [Bugfender enableUIEventLogging]; // optional, log user interactions automatically
68 | [Bugfender enableCrashReporting]; // optional, log crashes automatically
69 | BFLog("Hello world!") // use BFLog as you would use NSLog
70 | ...
71 | }
72 | ```
73 |
74 | You may use `BFLog` as you would normally use `NSLog`.
75 |
76 | You may also want to specify a logging level by using the following macros:
77 |
78 | - `BFLogFatal(...)`: Fatal log.
79 | - `BFLogErr(...)`: Error log.
80 | - `BFLogWarn(...)`: Warning log.
81 | - `BFLogInfo(...)`: Info log.
82 | - `BFLog(...)`: Default (debug) log.
83 | - `BFLogTrace(...)`: Trace log.
84 |
85 | # Documentation
86 | For information on how to use our SDK, you can check the [documentation](https://docs.bugfender.com/docs/category/ios/) to configure your project.
87 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Base.lproj/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
25 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcodeproj/xcshareddata/xcschemes/BugfenderExample.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
29 |
35 |
36 |
37 |
38 |
39 |
44 |
45 |
47 |
53 |
54 |
55 |
56 |
57 |
63 |
64 |
65 |
66 |
67 |
68 |
78 |
80 |
86 |
87 |
88 |
89 |
90 |
91 |
97 |
99 |
105 |
106 |
107 |
108 |
110 |
111 |
114 |
115 |
116 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/_CodeSignature/CodeResources:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | files
6 |
7 | Headers/BFDefaultLogInterceptor.h
8 |
9 | HM3OfaV/2/FAmMiZhowi7Z+XD3k=
10 |
11 | Headers/BFInterceptedLog.h
12 |
13 | InKoTT1wl9WenJUaI/UucvEsjfE=
14 |
15 | Headers/BFLogInterceptor.h
16 |
17 | HEA76HZiRCGnFUYr6egoRlxIx/I=
18 |
19 | Headers/BFUserFeedbackNavigationController.h
20 |
21 | pgNFegt5zvOiPUxMA25ZNeKFPoM=
22 |
23 | Headers/BFUserFeedbackViewController.h
24 |
25 | 2nyi/Du3qqDKGIjd2XYC7Mvm6BU=
26 |
27 | Headers/BugfenderSDK-Swift.h
28 |
29 | QhWKaM7DrU7mC96/EH9C4b4Me+o=
30 |
31 | Headers/BugfenderSDK.h
32 |
33 | D8Q3pX3ORaWCDtIIwU1mGGRUE5A=
34 |
35 | Info.plist
36 |
37 | cvX5lc6CpBd6BCKgAQixy9lLBng=
38 |
39 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.abi.json
40 |
41 | XGU0y8hfpQ+hBtIi5EWAXQl32gs=
42 |
43 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
44 |
45 | MKFG80TEDE+TpoQVKFUknoC2jSU=
46 |
47 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc
48 |
49 | 2LuCkDafHJZHfnAWcHiiRCN1Vq4=
50 |
51 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface
52 |
53 | MKFG80TEDE+TpoQVKFUknoC2jSU=
54 |
55 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule
56 |
57 | X2YVdo5g9IjXNduYeGvAnnA4iMk=
58 |
59 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json
60 |
61 | XGU0y8hfpQ+hBtIi5EWAXQl32gs=
62 |
63 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
64 |
65 | v3udMFyDgAwSI4Z3GTUv4Tcfa88=
66 |
67 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
68 |
69 | h7dfQLFw+DdX+eDOOg48NfttcNc=
70 |
71 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
72 |
73 | v3udMFyDgAwSI4Z3GTUv4Tcfa88=
74 |
75 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
76 |
77 | OHTCwx9t+E8iPtqgxrWV7p51odk=
78 |
79 | Modules/module.modulemap
80 |
81 | x/cXF6lKRNspReEtzJCSW0fNGB4=
82 |
83 | PrivacyInfo.xcprivacy
84 |
85 | hvWgeSSd3CM7mvMNrAyctw4z0FY=
86 |
87 |
88 | files2
89 |
90 | Headers/BFDefaultLogInterceptor.h
91 |
92 | hash2
93 |
94 | RPzjmSJ0KeLiYXq9hGrpzX/YhmMaxX5QUPFjOrC9+rs=
95 |
96 |
97 | Headers/BFInterceptedLog.h
98 |
99 | hash2
100 |
101 | UcwfFY0qkHqthVY2AufNK+Eps9AsOCdPr/1xz3EXsBg=
102 |
103 |
104 | Headers/BFLogInterceptor.h
105 |
106 | hash2
107 |
108 | N4IIYmip6wsKAxkKJ7CKK95v6mHIkVoyURQH938ca5c=
109 |
110 |
111 | Headers/BFUserFeedbackNavigationController.h
112 |
113 | hash2
114 |
115 | l8gcWZ/QAHe/vDz+pEzNEUS0JBQ3UAKqilS9QX0XGxE=
116 |
117 |
118 | Headers/BFUserFeedbackViewController.h
119 |
120 | hash2
121 |
122 | erKOMKGGxHhi9xZCBIYJTISwyaA0bXoGP3dOUh15uaE=
123 |
124 |
125 | Headers/BugfenderSDK-Swift.h
126 |
127 | hash2
128 |
129 | Y0LJJoXp5e9aYBpZAG1FV6gVovULHG/Kadc8u0rmKbY=
130 |
131 |
132 | Headers/BugfenderSDK.h
133 |
134 | hash2
135 |
136 | 0m5lx+z7MjCPlauKDYU+Qw8XCIuf0V+Su+XcoKcFOdE=
137 |
138 |
139 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.abi.json
140 |
141 | hash2
142 |
143 | 4s8SpPBxqDz44Ec7j3TZEY79FXhcNeebJTBerC1thfs=
144 |
145 |
146 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
147 |
148 | hash2
149 |
150 | ZqASF8RnnIGqx+whtjHXNI7BGOzSF3OYVNmWHE6TXRQ=
151 |
152 |
153 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc
154 |
155 | hash2
156 |
157 | kJqOv74axu8MDlT0vXs1kGMnW1ckp5Qs3AdRsDuVtcg=
158 |
159 |
160 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface
161 |
162 | hash2
163 |
164 | ZqASF8RnnIGqx+whtjHXNI7BGOzSF3OYVNmWHE6TXRQ=
165 |
166 |
167 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule
168 |
169 | hash2
170 |
171 | 1oNt6LluPPN2/T2ZozUXJGCl7ypO5vLiFAOHfPoHlfI=
172 |
173 |
174 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json
175 |
176 | hash2
177 |
178 | 4s8SpPBxqDz44Ec7j3TZEY79FXhcNeebJTBerC1thfs=
179 |
180 |
181 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
182 |
183 | hash2
184 |
185 | CFLY17YMHB4QvOjN13jkKj5z4fO5143sOCbnqTC9wWI=
186 |
187 |
188 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
189 |
190 | hash2
191 |
192 | ur6xnJ1Dd0gbBrYHgfY4/PROjSI/cwKMqJz8EmiYvyY=
193 |
194 |
195 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
196 |
197 | hash2
198 |
199 | CFLY17YMHB4QvOjN13jkKj5z4fO5143sOCbnqTC9wWI=
200 |
201 |
202 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
203 |
204 | hash2
205 |
206 | S6+az2FvInCbFufNMHhPubDBHYNvxWtNK8XptZukdIk=
207 |
208 |
209 | Modules/module.modulemap
210 |
211 | hash2
212 |
213 | wzagRleOdzlpLhvfj4TWCu3QhjNS5G9PKK5mP8nzzLc=
214 |
215 |
216 | PrivacyInfo.xcprivacy
217 |
218 | hash2
219 |
220 | 8Bw1x3CoeC5gLRbhV0CWwxI3HmL64X/ikUs5sXB+e54=
221 |
222 |
223 |
224 | rules
225 |
226 | ^.*
227 |
228 | ^.*\.lproj/
229 |
230 | optional
231 |
232 | weight
233 | 1000
234 |
235 | ^.*\.lproj/locversion.plist$
236 |
237 | omit
238 |
239 | weight
240 | 1100
241 |
242 | ^Base\.lproj/
243 |
244 | weight
245 | 1010
246 |
247 | ^version.plist$
248 |
249 |
250 | rules2
251 |
252 | .*\.dSYM($|/)
253 |
254 | weight
255 | 11
256 |
257 | ^(.*/)?\.DS_Store$
258 |
259 | omit
260 |
261 | weight
262 | 2000
263 |
264 | ^.*
265 |
266 | ^.*\.lproj/
267 |
268 | optional
269 |
270 | weight
271 | 1000
272 |
273 | ^.*\.lproj/locversion.plist$
274 |
275 | omit
276 |
277 | weight
278 | 1100
279 |
280 | ^Base\.lproj/
281 |
282 | weight
283 | 1010
284 |
285 | ^Info\.plist$
286 |
287 | omit
288 |
289 | weight
290 | 20
291 |
292 | ^PkgInfo$
293 |
294 | omit
295 |
296 | weight
297 | 20
298 |
299 | ^embedded\.provisionprofile$
300 |
301 | weight
302 | 20
303 |
304 | ^version\.plist$
305 |
306 | weight
307 | 20
308 |
309 |
310 |
311 |
312 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 2.1.0
2 | - Update: Implemented a more robust retry mechanism and error classification to prevent log loss in some unsual situations.
3 |
4 | # 2.0.1
5 | - Breaking update: built with Xcode 16, which means you will need Xcode 16 or newer to build your application.
6 |
7 | # 2.0.0
8 | - New: the xcframework is now digitally signed.
9 | - Breaking update: removed Bitcode, since now Apple rejects builds with Bitcode.
10 | - Breaking update: built with Xcode 15, which means you will need Xcode 15 or newer to build your application.
11 | - Breaking update: supports iOS version 12.0 and newer (iOS deployment target)
12 | - Breaking update: drop static library and dynamic framework builds.
13 | - Note there’s no functionality change vs prior version (1.13.2)
14 |
15 | # 1.13.2
16 | - Update: remove KSCrash logs to console output (there are benign error messages)
17 | - Bugfix: replace ID generation function that lead to sporadically missing logs when processing a high volume in a short time
18 |
19 | # 1.13.1
20 | - Bugfix: bfsdk_ksfu_readEntireFile reimplementation regression introduced in 1.13.0
21 |
22 | # 1.13.0
23 | - Update: add PrivacyInfo.xcprivacy to automatically recognize "other diagnostic data" is being collected, with no tracking and no association with the user identity
24 | - Update: declare accepted usage of NSUserDefaults in PrivacyInfo.xcprivacy
25 | - Update: replace some API calls that would "require a reason" -- whilst the reason is not tracking, Apple has not yet listed a suitable accepted reason item. we have removed them to prevent warnings or other issues because of BugfenderSDK usage
26 |
27 | # 1.12.2
28 | - Bugfix: race condition when setting device key-values that may lead to a crash
29 |
30 | # 1.12.1
31 | - This release fixes problems with Cocoapods and static library in the previous release.
32 |
33 | # 1.12.0
34 | - Feature: Add `enableNSLogLogging` & `enableNSLogLoggingWithInterceptor` method that allows to automatically capture logs written via NSLog or OSLog.
35 | - Internal: Changes on library initialization.
36 |
37 | # 1.11.0
38 | - Feature: Add `enableUIEventLoggingWithIgnoredViewTags` method that allows to avoid generating logs for some views
39 | - Changed `setMaximumLocalStorageSize` to not throw an Exception if the value provided is out of range.
40 |
41 | # 1.10.6
42 | - Fix: Possible crash due to corrupted crash log
43 | - Feature: iOS device name is not gathered anymore, it has been replaced by the device model.
44 |
45 | # 1.10.5
46 | - Fix: upload symbols script was not working properly
47 |
48 | # 1.10.4
49 | - Add upload symbols script to Bugfender Pod
50 |
51 | # 1.10.3
52 | - Bugfix: user feedback dialog navigation bar sometimes not styling properly
53 | - Bugfix: crashes sometimes reported in the wrong session when the application crashes multiple times in a row
54 |
55 | # 1.10.2
56 | - Bugfix: fixed potential crash when setting custom device data
57 |
58 | # 1.10.1
59 | - Bugfix: fixed potential crash or missing logs when app is in background mode in combination with protected data classes
60 | - More efficient API calls
61 |
62 | # 1.10.0
63 | - Bugfender was compiled with Xcode 12 and is SPM compatible now
64 | - Additionally dynamic framework and static libraries without simulator arm slice are provided for retrocompatiblity but they should be avoided
65 |
66 | # 1.9.2
67 | - Feature: added a new overrideDeviceName(String) that allows to customize the name of the device.
68 |
69 | # 1.9.1
70 | - Fix: returning URLs from device/issue/session missing path segment
71 |
72 | # 1.9.0
73 | - Support for CocoaPods 1.9.0 and xcframework
74 |
75 | # 1.8.0
76 | - Added xcframework to support Project Catalyst
77 | - Bugfender is now a dynamic library and swift files are included inside. No need to manually add the swift bridge anymore
78 | - Bugfender will return a specific -1004 error when trying to send logs to an app that was deleted in the server
79 |
80 | # 1.7.0
81 | - Fixed an issue in which retrieving the session identifier right after activateLogger might result in a null identifier under certain conditions and this could provocate a crash in swift projects
82 | - Changed pulic api so URL dependant identifiers are nullable properties now
83 |
84 | # 1.6.6
85 | - Added new log levels
86 |
87 | # 1.6.5
88 | - The device identifier, the session identifier and sending an issue (issue, crash or user feedback) will return now URLs to the Bugfender's Dashboard. This can be used to create automations and to integrate BugfenderSDK with third party tools
89 | - Fixed race condition that may prevent some crashes to be correctly displayed in the Bugfender's Dashboard
90 | - Added new method allowing developers to manually send crash reports to Bugfender
91 |
92 | # 1.6.4
93 | - Fixed an async task that may block a background thread
94 | - Improved how user defined key-values synchronize with the server
95 | - Fixed race condition that may lead to a heap corruption in low connectivity conditions
96 |
97 | # 1.6.3
98 | - Fixed threading issue that may lead to a crash under stress conditions
99 |
100 | # 1.6.2
101 | - Improved the memory footprint of BugfenderSDK. The SDK, in general, will need less memory to perform normal operations
102 | - Improved the behaviour of the SDK heartbeat for apps which are never fully closed
103 | - Fixed crash when a device was trying to send an abnormally big amount of logs to the server
104 | - Logs have been limited to 32000 characters in order to avoid memory issues in devices with low resources available
105 | - Updated docs regarding to the ussage of the tags
106 | - Other minor performance issues
107 |
108 | # 1.6.1
109 | - Fixed crash when using the Bugfender User Feedback in Swift
110 | - Improved return key type in the User Feedback textfields
111 |
112 | # 1.6.0
113 | - Featuring the new Bugfender User Feedback. A fast and easy way to gather feedback from the users
114 | - Fixed swift bridges sending the full path of the files instead the filename
115 |
116 | # 1.5.6
117 | - Fixed an issue in which gap logs were reporting wrong begin/end dates
118 |
119 | # 1.5.5
120 | - Addressing an issue in which access to the iOS keychain in the background may cause a crash
121 | - Fixed SDK sending wrong timestamp in crash
122 |
123 | # 1.5.4
124 | - Fixed when receiving a big number of logs per seconds the SDK may use a lot of RAM and the app may crash. New implementation will ignore new Log operations if it receives a memory warning until the Log queue is reduced.
125 |
126 | # 1.5.3
127 | - Fixed issue with some crashes was not sent.
128 |
129 | # 1.5.2
130 | - Implement refresh device status
131 | - Fixed issue with the device key-values
132 |
133 | # 1.5.1
134 | - Improved efficiency of background cleanup process
135 |
136 | # 1.5.0
137 | - Added crash reporting
138 | - Added information when deleting logs unsent to the server
139 | - Added exponential back off if the server is not reachable
140 |
141 | # 1.4.10
142 | - Added method for setting API endpoint
143 |
144 | # 1.4.9
145 | - Fixed crash when sendIssues is called with nil parameters.
146 | - Adding some other parameter validations.
147 |
148 | # 1.4.8
149 | - Fixed minor issues.
150 |
151 | # 1.4.7
152 | - Fixed minor issues.
153 |
154 | # 1.4.6
155 | - Added method to get the session identifier.
156 | - Now send issue method returns the issue identifier.
157 |
158 | # 1.4.5
159 | - Fixed issue with the latest release.
160 |
161 | # 1.4.4
162 | - Improvements with the CPU consumption.
163 |
164 | # 1.4.3
165 | - Stability update: fixed crash in very rare circumstances.
166 | - Improvements when the sdk is deleting the old logs because the max storage size is reached.
167 |
168 | # 1.4.2
169 | - Fixing CocoaPods when using static libraries in Objective-C
170 | - Now compatible with Swift 2.3, 3.0 and 3.1
171 | - Fixing appledoc, fixToConsole default setting wrongly documented
172 | - Fixing appledoc, some argument names were wrong
173 | - Printing an empty line on BFLog(nil);
174 |
175 | # 1.4.0
176 | - Declared the framework as a Clang module, so that the framework can be used in Swift without bridging headers
177 | - Removed redundant and outdated method calls to make the SDK docs/API cleaner
178 | - Published helper file for Swift projects
179 |
180 | # 0.3.27
181 | - Stability update: fixed crash in very rare circumstances.
182 |
183 | # 0.3.26
184 | - Improved networking code, smaller and more efficient
185 | - Fixed conflict with AFNetworking library
186 |
187 | # 0.3.25
188 | - enableNSLogLogging is now marked as deprecated, not working since iOS 10
189 | - Dropping support for iOS 7
190 | - Improvements on the networking code
191 |
192 | # 0.3.24
193 | - Better formatting of the automated user interaction logging
194 |
195 | # 0.3.23
196 | - Fixing missing some NSLogs at the beginning and end of the session, especially on iOS 10
197 | - Fixing documentation warnings raised by Xcode 8
198 | - Fixing duplicated logs from NSLog when DEBUG macro is defined when using BFLog
199 |
200 | # 0.3.22
201 | - Fixing bug that sends empty sessions to the server
202 | - Fixing a bug that reports wrong app version information when the build number contains the dot character
203 |
204 | # 0.3.21
205 | - Fixing wake lock to avoid applications dying faster in the background
206 |
207 | # 0.3.20
208 | - Bug fix: date formatting in devices in Arabic
209 | - Improves: format for UI events
210 |
211 | # 0.3.18
212 | - fixing nil dereference exceptions (rarely seen)
213 |
214 | # 0.3.17
215 | - Fixes synchronization of device details set with setDevice*
216 | - Allows the change of the API endpoint via environment variable for Bugfender preproduction tests
217 |
218 | # 0.3.16
219 | - Fixes #11, crash when using Bugfender with CocoaLumberjack and empty log message
220 |
221 | # 0.3.15
222 | - Fixes timestamp estimation and some UIEvents without timestamp.
223 | - Better description for topmost view controller and UIEvents
224 |
225 | # 0.3.14
226 | - Recompiled with Xcode 7, supports Bitcode
227 |
228 | # 0.3.10
229 | - Fixed crash on iOS7 when NSLog logging is enabled
230 | - Added documentation about issues
231 |
232 | # 0.3.9
233 | - Added issues
234 | - Option to send logs from the app
235 |
236 | # 0.3.8
237 | - Added device detail key-value storage
238 | - Fixed a crash when device disk was full
239 |
240 | # 0.3.7
241 | - Efficiency and stability improvements
242 |
243 | # 0.3.6
244 | - Automated logging of NSLog
245 | - Automated UIEvent logging
246 | - Efficiency and stability improvements
247 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BugfenderSDK-Swift.h:
--------------------------------------------------------------------------------
1 | #if 0
2 | #elif defined(__arm64__) && __arm64__
3 | // Generated by Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.19.9 clang-1700.3.19.1)
4 | #ifndef BUGFENDERSDK_SWIFT_H
5 | #define BUGFENDERSDK_SWIFT_H
6 | #pragma clang diagnostic push
7 | #pragma clang diagnostic ignored "-Wgcc-compat"
8 |
9 | #if !defined(__has_include)
10 | # define __has_include(x) 0
11 | #endif
12 | #if !defined(__has_attribute)
13 | # define __has_attribute(x) 0
14 | #endif
15 | #if !defined(__has_feature)
16 | # define __has_feature(x) 0
17 | #endif
18 | #if !defined(__has_warning)
19 | # define __has_warning(x) 0
20 | #endif
21 |
22 | #if __has_include()
23 | # include
24 | #endif
25 |
26 | #pragma clang diagnostic ignored "-Wauto-import"
27 | #if defined(__OBJC__)
28 | #include
29 | #endif
30 | #if defined(__cplusplus)
31 | #include
32 | #include
33 | #include
34 | #include
35 | #include
36 | #include
37 | #include
38 | #else
39 | #include
40 | #include
41 | #include
42 | #include
43 | #endif
44 | #if defined(__cplusplus)
45 | #pragma clang diagnostic push
46 | #pragma clang diagnostic ignored "-Wnon-modular-include-in-framework-module"
47 | #if defined(__arm64e__) && __has_include()
48 | # include
49 | #else
50 | #pragma clang diagnostic push
51 | #pragma clang diagnostic ignored "-Wreserved-macro-identifier"
52 | # ifndef __ptrauth_swift_value_witness_function_pointer
53 | # define __ptrauth_swift_value_witness_function_pointer(x)
54 | # endif
55 | # ifndef __ptrauth_swift_class_method_pointer
56 | # define __ptrauth_swift_class_method_pointer(x)
57 | # endif
58 | #pragma clang diagnostic pop
59 | #endif
60 | #pragma clang diagnostic pop
61 | #endif
62 |
63 | #if !defined(SWIFT_TYPEDEFS)
64 | # define SWIFT_TYPEDEFS 1
65 | # if __has_include()
66 | # include
67 | # elif !defined(__cplusplus)
68 | typedef unsigned char char8_t;
69 | typedef uint_least16_t char16_t;
70 | typedef uint_least32_t char32_t;
71 | # endif
72 | typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
73 | typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
74 | typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
75 | typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
76 | typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
77 | typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
78 | typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
79 | typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
80 | typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
81 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
82 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
83 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
84 | #endif
85 |
86 | #if !defined(SWIFT_PASTE)
87 | # define SWIFT_PASTE_HELPER(x, y) x##y
88 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
89 | #endif
90 | #if !defined(SWIFT_METATYPE)
91 | # define SWIFT_METATYPE(X) Class
92 | #endif
93 | #if !defined(SWIFT_CLASS_PROPERTY)
94 | # if __has_feature(objc_class_property)
95 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
96 | # else
97 | # define SWIFT_CLASS_PROPERTY(...)
98 | # endif
99 | #endif
100 | #if !defined(SWIFT_RUNTIME_NAME)
101 | # if __has_attribute(objc_runtime_name)
102 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
103 | # else
104 | # define SWIFT_RUNTIME_NAME(X)
105 | # endif
106 | #endif
107 | #if !defined(SWIFT_COMPILE_NAME)
108 | # if __has_attribute(swift_name)
109 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
110 | # else
111 | # define SWIFT_COMPILE_NAME(X)
112 | # endif
113 | #endif
114 | #if !defined(SWIFT_METHOD_FAMILY)
115 | # if __has_attribute(objc_method_family)
116 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
117 | # else
118 | # define SWIFT_METHOD_FAMILY(X)
119 | # endif
120 | #endif
121 | #if !defined(SWIFT_NOESCAPE)
122 | # if __has_attribute(noescape)
123 | # define SWIFT_NOESCAPE __attribute__((noescape))
124 | # else
125 | # define SWIFT_NOESCAPE
126 | # endif
127 | #endif
128 | #if !defined(SWIFT_RELEASES_ARGUMENT)
129 | # if __has_attribute(ns_consumed)
130 | # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
131 | # else
132 | # define SWIFT_RELEASES_ARGUMENT
133 | # endif
134 | #endif
135 | #if !defined(SWIFT_WARN_UNUSED_RESULT)
136 | # if __has_attribute(warn_unused_result)
137 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
138 | # else
139 | # define SWIFT_WARN_UNUSED_RESULT
140 | # endif
141 | #endif
142 | #if !defined(SWIFT_NORETURN)
143 | # if __has_attribute(noreturn)
144 | # define SWIFT_NORETURN __attribute__((noreturn))
145 | # else
146 | # define SWIFT_NORETURN
147 | # endif
148 | #endif
149 | #if !defined(SWIFT_CLASS_EXTRA)
150 | # define SWIFT_CLASS_EXTRA
151 | #endif
152 | #if !defined(SWIFT_PROTOCOL_EXTRA)
153 | # define SWIFT_PROTOCOL_EXTRA
154 | #endif
155 | #if !defined(SWIFT_ENUM_EXTRA)
156 | # define SWIFT_ENUM_EXTRA
157 | #endif
158 | #if !defined(SWIFT_CLASS)
159 | # if __has_attribute(objc_subclassing_restricted)
160 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
161 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
162 | # else
163 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
164 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
165 | # endif
166 | #endif
167 | #if !defined(SWIFT_RESILIENT_CLASS)
168 | # if __has_attribute(objc_class_stub)
169 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
170 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
171 | # else
172 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
173 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
174 | # endif
175 | #endif
176 | #if !defined(SWIFT_PROTOCOL)
177 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
178 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
179 | #endif
180 | #if !defined(SWIFT_EXTENSION)
181 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
182 | #endif
183 | #if !defined(OBJC_DESIGNATED_INITIALIZER)
184 | # if __has_attribute(objc_designated_initializer)
185 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
186 | # else
187 | # define OBJC_DESIGNATED_INITIALIZER
188 | # endif
189 | #endif
190 | #if !defined(SWIFT_ENUM_ATTR)
191 | # if __has_attribute(enum_extensibility)
192 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
193 | # else
194 | # define SWIFT_ENUM_ATTR(_extensibility)
195 | # endif
196 | #endif
197 | #if !defined(SWIFT_ENUM)
198 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
199 | # if __has_feature(generalized_swift_name)
200 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
201 | # else
202 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
203 | # endif
204 | #endif
205 | #if !defined(SWIFT_UNAVAILABLE)
206 | # define SWIFT_UNAVAILABLE __attribute__((unavailable))
207 | #endif
208 | #if !defined(SWIFT_UNAVAILABLE_MSG)
209 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
210 | #endif
211 | #if !defined(SWIFT_AVAILABILITY)
212 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
213 | #endif
214 | #if !defined(SWIFT_WEAK_IMPORT)
215 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
216 | #endif
217 | #if !defined(SWIFT_DEPRECATED)
218 | # define SWIFT_DEPRECATED __attribute__((deprecated))
219 | #endif
220 | #if !defined(SWIFT_DEPRECATED_MSG)
221 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
222 | #endif
223 | #if !defined(SWIFT_DEPRECATED_OBJC)
224 | # if __has_feature(attribute_diagnose_if_objc)
225 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
226 | # else
227 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
228 | # endif
229 | #endif
230 | #if defined(__OBJC__)
231 | #if !defined(IBSegueAction)
232 | # define IBSegueAction
233 | #endif
234 | #endif
235 | #if !defined(SWIFT_EXTERN)
236 | # if defined(__cplusplus)
237 | # define SWIFT_EXTERN extern "C"
238 | # else
239 | # define SWIFT_EXTERN extern
240 | # endif
241 | #endif
242 | #if !defined(SWIFT_CALL)
243 | # define SWIFT_CALL __attribute__((swiftcall))
244 | #endif
245 | #if !defined(SWIFT_INDIRECT_RESULT)
246 | # define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
247 | #endif
248 | #if !defined(SWIFT_CONTEXT)
249 | # define SWIFT_CONTEXT __attribute__((swift_context))
250 | #endif
251 | #if !defined(SWIFT_ERROR_RESULT)
252 | # define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
253 | #endif
254 | #if defined(__cplusplus)
255 | # define SWIFT_NOEXCEPT noexcept
256 | #else
257 | # define SWIFT_NOEXCEPT
258 | #endif
259 | #if !defined(SWIFT_C_INLINE_THUNK)
260 | # if __has_attribute(always_inline)
261 | # if __has_attribute(nodebug)
262 | # define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
263 | # else
264 | # define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
265 | # endif
266 | # else
267 | # define SWIFT_C_INLINE_THUNK inline
268 | # endif
269 | #endif
270 | #if defined(_WIN32)
271 | #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
272 | # define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
273 | #endif
274 | #else
275 | #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
276 | # define SWIFT_IMPORT_STDLIB_SYMBOL
277 | #endif
278 | #endif
279 | #if defined(__OBJC__)
280 | #if __has_feature(objc_modules)
281 | #if __has_warning("-Watimport-in-framework-header")
282 | #pragma clang diagnostic ignored "-Watimport-in-framework-header"
283 | #endif
284 | #endif
285 |
286 | #endif
287 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
288 | #pragma clang diagnostic ignored "-Wduplicate-method-arg"
289 | #if __has_warning("-Wpragma-clang-attribute")
290 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
291 | #endif
292 | #pragma clang diagnostic ignored "-Wunknown-pragmas"
293 | #pragma clang diagnostic ignored "-Wnullability"
294 | #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
295 | #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
296 |
297 | #if __has_attribute(external_source_symbol)
298 | # pragma push_macro("any")
299 | # undef any
300 | # pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="BugfenderSDK",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol))
301 | # pragma pop_macro("any")
302 | #endif
303 |
304 | #if defined(__OBJC__)
305 |
306 | #endif
307 | #if __has_attribute(external_source_symbol)
308 | # pragma clang attribute pop
309 | #endif
310 | #if defined(__cplusplus)
311 | #endif
312 | #pragma clang diagnostic pop
313 | #endif
314 |
315 | #else
316 | #error unsupported Swift architecture
317 | #endif
318 |
--------------------------------------------------------------------------------
/Example/BugfenderExample/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
31 |
37 |
38 |
39 |
40 |
46 |
52 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
102 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright since 2015 Bugfender
2 |
3 | See https://bugfender.com/terms-of-service/
4 |
5 | ---
6 |
7 | License for http://llvm.org:
8 |
9 | ==============================================================================
10 | LLVM Release License
11 | ==============================================================================
12 | University of Illinois/NCSA
13 | Open Source License
14 |
15 | Copyright (c) 2003-2015 University of Illinois at Urbana-Champaign.
16 | All rights reserved.
17 |
18 | Developed by:
19 |
20 | LLVM Team
21 |
22 | University of Illinois at Urbana-Champaign
23 |
24 | http://llvm.org
25 |
26 | Permission is hereby granted, free of charge, to any person obtaining a copy of
27 | this software and associated documentation files (the "Software"), to deal with
28 | the Software without restriction, including without limitation the rights to
29 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
30 | of the Software, and to permit persons to whom the Software is furnished to do
31 | so, subject to the following conditions:
32 |
33 | * Redistributions of source code must retain the above copyright notice,
34 | this list of conditions and the following disclaimers.
35 |
36 | * Redistributions in binary form must reproduce the above copyright notice,
37 | this list of conditions and the following disclaimers in the
38 | documentation and/or other materials provided with the distribution.
39 |
40 | * Neither the names of the LLVM Team, University of Illinois at
41 | Urbana-Champaign, nor the names of its contributors may be used to
42 | endorse or promote products derived from this Software without specific
43 | prior written permission.
44 |
45 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
46 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
47 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
48 | CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
49 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
50 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
51 | SOFTWARE.
52 |
53 | ==============================================================================
54 | Copyrights and Licenses for Third Party Software Distributed with LLVM:
55 | ==============================================================================
56 | The LLVM software contains code written by third parties. Such software will
57 | have its own individual LICENSE.TXT file in the directory in which it appears.
58 | This file will describe the copyrights, license, and restrictions which apply
59 | to that code.
60 |
61 | The disclaimer of warranty in the University of Illinois Open Source License
62 | applies to all code in the LLVM Distribution, and nothing in any of the
63 | other licenses gives permission to use the names of the LLVM Team or the
64 | University of Illinois to endorse or promote products derived from this
65 | Software.
66 |
67 | ---
68 |
69 | License for https://www.swift.org:
70 |
71 | Apache License
72 | Version 2.0, January 2004
73 | http://www.apache.org/licenses/
74 |
75 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
76 |
77 | 1. Definitions.
78 |
79 | "License" shall mean the terms and conditions for use, reproduction,
80 | and distribution as defined by Sections 1 through 9 of this document.
81 |
82 | "Licensor" shall mean the copyright owner or entity authorized by
83 | the copyright owner that is granting the License.
84 |
85 | "Legal Entity" shall mean the union of the acting entity and all
86 | other entities that control, are controlled by, or are under common
87 | control with that entity. For the purposes of this definition,
88 | "control" means (i) the power, direct or indirect, to cause the
89 | direction or management of such entity, whether by contract or
90 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
91 | outstanding shares, or (iii) beneficial ownership of such entity.
92 |
93 | "You" (or "Your") shall mean an individual or Legal Entity
94 | exercising permissions granted by this License.
95 |
96 | "Source" form shall mean the preferred form for making modifications,
97 | including but not limited to software source code, documentation
98 | source, and configuration files.
99 |
100 | "Object" form shall mean any form resulting from mechanical
101 | transformation or translation of a Source form, including but
102 | not limited to compiled object code, generated documentation,
103 | and conversions to other media types.
104 |
105 | "Work" shall mean the work of authorship, whether in Source or
106 | Object form, made available under the License, as indicated by a
107 | copyright notice that is included in or attached to the work
108 | (an example is provided in the Appendix below).
109 |
110 | "Derivative Works" shall mean any work, whether in Source or Object
111 | form, that is based on (or derived from) the Work and for which the
112 | editorial revisions, annotations, elaborations, or other modifications
113 | represent, as a whole, an original work of authorship. For the purposes
114 | of this License, Derivative Works shall not include works that remain
115 | separable from, or merely link (or bind by name) to the interfaces of,
116 | the Work and Derivative Works thereof.
117 |
118 | "Contribution" shall mean any work of authorship, including
119 | the original version of the Work and any modifications or additions
120 | to that Work or Derivative Works thereof, that is intentionally
121 | submitted to Licensor for inclusion in the Work by the copyright owner
122 | or by an individual or Legal Entity authorized to submit on behalf of
123 | the copyright owner. For the purposes of this definition, "submitted"
124 | means any form of electronic, verbal, or written communication sent
125 | to the Licensor or its representatives, including but not limited to
126 | communication on electronic mailing lists, source code control systems,
127 | and issue tracking systems that are managed by, or on behalf of, the
128 | Licensor for the purpose of discussing and improving the Work, but
129 | excluding communication that is conspicuously marked or otherwise
130 | designated in writing by the copyright owner as "Not a Contribution."
131 |
132 | "Contributor" shall mean Licensor and any individual or Legal Entity
133 | on behalf of whom a Contribution has been received by Licensor and
134 | subsequently incorporated within the Work.
135 |
136 | 2. Grant of Copyright License. Subject to the terms and conditions of
137 | this License, each Contributor hereby grants to You a perpetual,
138 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
139 | copyright license to reproduce, prepare Derivative Works of,
140 | publicly display, publicly perform, sublicense, and distribute the
141 | Work and such Derivative Works in Source or Object form.
142 |
143 | 3. Grant of Patent License. Subject to the terms and conditions of
144 | this License, each Contributor hereby grants to You a perpetual,
145 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
146 | (except as stated in this section) patent license to make, have made,
147 | use, offer to sell, sell, import, and otherwise transfer the Work,
148 | where such license applies only to those patent claims licensable
149 | by such Contributor that are necessarily infringed by their
150 | Contribution(s) alone or by combination of their Contribution(s)
151 | with the Work to which such Contribution(s) was submitted. If You
152 | institute patent litigation against any entity (including a
153 | cross-claim or counterclaim in a lawsuit) alleging that the Work
154 | or a Contribution incorporated within the Work constitutes direct
155 | or contributory patent infringement, then any patent licenses
156 | granted to You under this License for that Work shall terminate
157 | as of the date such litigation is filed.
158 |
159 | 4. Redistribution. You may reproduce and distribute copies of the
160 | Work or Derivative Works thereof in any medium, with or without
161 | modifications, and in Source or Object form, provided that You
162 | meet the following conditions:
163 |
164 | (a) You must give any other recipients of the Work or
165 | Derivative Works a copy of this License; and
166 |
167 | (b) You must cause any modified files to carry prominent notices
168 | stating that You changed the files; and
169 |
170 | (c) You must retain, in the Source form of any Derivative Works
171 | that You distribute, all copyright, patent, trademark, and
172 | attribution notices from the Source form of the Work,
173 | excluding those notices that do not pertain to any part of
174 | the Derivative Works; and
175 |
176 | (d) If the Work includes a "NOTICE" text file as part of its
177 | distribution, then any Derivative Works that You distribute must
178 | include a readable copy of the attribution notices contained
179 | within such NOTICE file, excluding those notices that do not
180 | pertain to any part of the Derivative Works, in at least one
181 | of the following places: within a NOTICE text file distributed
182 | as part of the Derivative Works; within the Source form or
183 | documentation, if provided along with the Derivative Works; or,
184 | within a display generated by the Derivative Works, if and
185 | wherever such third-party notices normally appear. The contents
186 | of the NOTICE file are for informational purposes only and
187 | do not modify the License. You may add Your own attribution
188 | notices within Derivative Works that You distribute, alongside
189 | or as an addendum to the NOTICE text from the Work, provided
190 | that such additional attribution notices cannot be construed
191 | as modifying the License.
192 |
193 | You may add Your own copyright statement to Your modifications and
194 | may provide additional or different license terms and conditions
195 | for use, reproduction, or distribution of Your modifications, or
196 | for any such Derivative Works as a whole, provided Your use,
197 | reproduction, and distribution of the Work otherwise complies with
198 | the conditions stated in this License.
199 |
200 | 5. Submission of Contributions. Unless You explicitly state otherwise,
201 | any Contribution intentionally submitted for inclusion in the Work
202 | by You to the Licensor shall be under the terms and conditions of
203 | this License, without any additional terms or conditions.
204 | Notwithstanding the above, nothing herein shall supersede or modify
205 | the terms of any separate license agreement you may have executed
206 | with Licensor regarding such Contributions.
207 |
208 | 6. Trademarks. This License does not grant permission to use the trade
209 | names, trademarks, service marks, or product names of the Licensor,
210 | except as required for reasonable and customary use in describing the
211 | origin of the Work and reproducing the content of the NOTICE file.
212 |
213 | 7. Disclaimer of Warranty. Unless required by applicable law or
214 | agreed to in writing, Licensor provides the Work (and each
215 | Contributor provides its Contributions) on an "AS IS" BASIS,
216 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
217 | implied, including, without limitation, any warranties or conditions
218 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
219 | PARTICULAR PURPOSE. You are solely responsible for determining the
220 | appropriateness of using or redistributing the Work and assume any
221 | risks associated with Your exercise of permissions under this License.
222 |
223 | 8. Limitation of Liability. In no event and under no legal theory,
224 | whether in tort (including negligence), contract, or otherwise,
225 | unless required by applicable law (such as deliberate and grossly
226 | negligent acts) or agreed to in writing, shall any Contributor be
227 | liable to You for damages, including any direct, indirect, special,
228 | incidental, or consequential damages of any character arising as a
229 | result of this License or out of the use or inability to use the
230 | Work (including but not limited to damages for loss of goodwill,
231 | work stoppage, computer failure or malfunction, or any and all
232 | other commercial damages or losses), even if such Contributor
233 | has been advised of the possibility of such damages.
234 |
235 | 9. Accepting Warranty or Additional Liability. While redistributing
236 | the Work or Derivative Works thereof, You may choose to offer,
237 | and charge a fee for, acceptance of support, warranty, indemnity,
238 | or other liability obligations and/or rights consistent with this
239 | License. However, in accepting such obligations, You may act only
240 | on Your own behalf and on Your sole responsibility, not on behalf
241 | of any other Contributor, and only if You agree to indemnify,
242 | defend, and hold each Contributor harmless for any liability
243 | incurred by, or claims asserted against, such Contributor by reason
244 | of your accepting any such warranty or additional liability.
245 |
246 | END OF TERMS AND CONDITIONS
247 |
248 | APPENDIX: How to apply the Apache License to your work.
249 |
250 | To apply the Apache License to your work, attach the following
251 | boilerplate notice, with the fields enclosed by brackets "[]"
252 | replaced with your own identifying information. (Don't include
253 | the brackets!) The text should be enclosed in the appropriate
254 | comment syntax for the file format. We also recommend that a
255 | file or class name and description of purpose be included on the
256 | same "printed page" as the copyright notice for easier
257 | identification within third-party archives.
258 |
259 | Copyright [yyyy] [name of copyright owner]
260 |
261 | Licensed under the Apache License, Version 2.0 (the "License");
262 | you may not use this file except in compliance with the License.
263 | You may obtain a copy of the License at
264 |
265 | http://www.apache.org/licenses/LICENSE-2.0
266 |
267 | Unless required by applicable law or agreed to in writing, software
268 | distributed under the License is distributed on an "AS IS" BASIS,
269 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
270 | See the License for the specific language governing permissions and
271 | limitations under the License.
272 |
273 |
274 |
275 | ## Runtime Library Exception to the Apache 2.0 License: ##
276 |
277 |
278 | As an exception, if you use this Software to compile your source code and
279 | portions of this Software are embedded into the binary product as a result,
280 | you may redistribute such product without providing attribution as would
281 | otherwise be required by Sections 4(a), 4(b) and 4(d) of the License.
282 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Headers/BugfenderSDK.h:
--------------------------------------------------------------------------------
1 | //
2 | // BugfenderSDK.h
3 | // BugfenderSDK
4 | // Copyright (c) 2014 Bugfender GmbH. All rights reserved.
5 | //
6 |
7 | #import
8 | #import "BFLogInterceptor.h"
9 | #import "BFDefaultLogInterceptor.h"
10 |
11 | #if TARGET_OS_IOS
12 |
13 | #import "BFUserFeedbackNavigationController.h"
14 |
15 | #endif
16 |
17 | NS_ASSUME_NONNULL_BEGIN
18 |
19 | #define BFLibraryVersionNumber_0_1_0 0
20 | #define BFLibraryVersionNumber_0_2_0 1
21 | #define BFLibraryVersionNumber_0_2_1 2
22 | #define BFLibraryVersionNumber_0_3_0 3
23 | #define BFLibraryVersionNumber_0_3_1 4
24 | #define BFLibraryVersionNumber_0_3_2 5
25 | #define BFLibraryVersionNumber_0_3_3 6
26 | #define BFLibraryVersionNumber_0_3_4 7
27 | #define BFLibraryVersionNumber_0_3_5 8
28 | #define BFLibraryVersionNumber_0_3_6 9
29 | #define BFLibraryVersionNumber_0_3_7 10
30 | #define BFLibraryVersionNumber_0_3_8 11
31 | #define BFLibraryVersionNumber_0_3_9 12
32 | #define BFLibraryVersionNumber_0_3_10 13
33 | #define BFLibraryVersionNumber_0_3_11 14
34 | #define BFLibraryVersionNumber_0_3_12 15
35 | #define BFLibraryVersionNumber_0_3_13 16
36 | #define BFLibraryVersionNumber_0_3_14 17
37 | #define BFLibraryVersionNumber_0_3_15 18
38 | #define BFLibraryVersionNumber_0_3_16 19
39 | #define BFLibraryVersionNumber_0_3_17 20
40 | #define BFLibraryVersionNumber_0_3_18 21
41 | #define BFLibraryVersionNumber_0_3_19 22
42 | #define BFLibraryVersionNumber_0_3_20 23
43 | #define BFLibraryVersionNumber_0_3_21 24
44 | #define BFLibraryVersionNumber_0_3_22 25
45 | #define BFLibraryVersionNumber_0_3_23 26
46 | #define BFLibraryVersionNumber_0_3_24 27
47 | #define BFLibraryVersionNumber_0_3_25 28
48 | #define BFLibraryVersionNumber_0_3_26 29
49 | #define BFLibraryVersionNumber_0_3_27 30
50 | #define BFLibraryVersionNumber_1_4_0 31
51 | #define BFLibraryVersionNumber_1_4_1 32
52 | #define BFLibraryVersionNumber_1_4_2 33
53 | #define BFLibraryVersionNumber_1_4_3 34
54 | #define BFLibraryVersionNumber_1_4_4 34 // Mistake: We released the version without incrementing the number.
55 | #define BFLibraryVersionNumber_1_4_5 36
56 | #define BFLibraryVersionNumber_1_4_6 37
57 | #define BFLibraryVersionNumber_1_4_7 38
58 | #define BFLibraryVersionNumber_1_4_8 39
59 | #define BFLibraryVersionNumber_1_4_9 40
60 | #define BFLibraryVersionNumber_1_4_10 41
61 | #define BFLibraryVersionNumber_1_5_0 42
62 | #define BFLibraryVersionNumber_1_5_1 43
63 | #define BFLibraryVersionNumber_1_5_2 44
64 | #define BFLibraryVersionNumber_1_5_3 45
65 | #define BFLibraryVersionNumber_1_5_4 46
66 | #define BFLibraryVersionNumber_1_5_5 47
67 | #define BFLibraryVersionNumber_1_5_6 48
68 | #define BFLibraryVersionNumber_1_6_0 49
69 | #define BFLibraryVersionNumber_1_6_1 50
70 | #define BFLibraryVersionNumber_1_6_2 51
71 | #define BFLibraryVersionNumber_1_6_3 52
72 | #define BFLibraryVersionNumber_1_6_4 53
73 | #define BFLibraryVersionNumber_1_6_5 54
74 | #define BFLibraryVersionNumber_1_6_6 55
75 | #define BFLibraryVersionNumber_1_7_0 56
76 | #define BFLibraryVersionNumber_1_8_0 57
77 | #define BFLibraryVersionNumber_1_9_0 58
78 | #define BFLibraryVersionNumber_1_9_1 59
79 | #define BFLibraryVersionNumber_1_9_2 60
80 | #define BFLibraryVersionNumber_1_10_0 61
81 | #define BFLibraryVersionNumber_1_10_1 62
82 | #define BFLibraryVersionNumber_1_10_2 63
83 | #define BFLibraryVersionNumber_1_10_3 64
84 | #define BFLibraryVersionNumber_1_10_4 65
85 | #define BFLibraryVersionNumber_1_10_5 66
86 | #define BFLibraryVersionNumber_1_10_6 67
87 | #define BFLibraryVersionNumber_1_11_0 68
88 | #define BFLibraryVersionNumber_1_12_0 69
89 | #define BFLibraryVersionNumber_1_12_1 70
90 | #define BFLibraryVersionNumber_1_12_2 71
91 | #define BFLibraryVersionNumber_1_13_0 72
92 | #define BFLibraryVersionNumber_1_13_1 73
93 | #define BFLibraryVersionNumber_1_13_2 74
94 | #define BFLibraryVersionNumber_2_0_0 75
95 | #define BFLibraryVersionNumber_2_0_1 76
96 | #define BFLibraryVersionNumber_2_1_0 77
97 |
98 | /**
99 | * Current Bugfender version number.
100 | * @note This value can be compared with the defined macros BFLibraryVersionNumber_X_Y_Z.
101 | **/
102 | FOUNDATION_EXPORT double const BFLibraryVersionNumber;
103 |
104 | /** Defines the level of a log */
105 | typedef NS_ENUM(NSUInteger, BFLogLevel)
106 | {
107 | /** Default/Debug log level */
108 | BFLogLevelDefault = 0,
109 | /** Warning log level */
110 | BFLogLevelWarning = 1,
111 | /** Error log level */
112 | BFLogLevelError = 2,
113 | /** Trace log level */
114 | BFLogLevelTrace = 3,
115 | /** Info log level */
116 | BFLogLevelInfo = 4,
117 | /** Fatal log level */
118 | BFLogLevelFatal = 5
119 | };
120 |
121 | #define BFLog(args, ...) BFLog2(BFLogLevelDefault, nil, args, ##__VA_ARGS__)
122 | #define BFLogWarn(args, ...) BFLog2(BFLogLevelWarning, nil, args, ##__VA_ARGS__)
123 | #define BFLogErr(args, ...) BFLog2(BFLogLevelError, nil, args, ##__VA_ARGS__)
124 | #define BFLogTrace(args, ...) BFLog2(BFLogLevelTrace, nil, args, ##__VA_ARGS__)
125 | #define BFLogInfo(args, ...) BFLog2(BFLogLevelInfo, nil, args, ##__VA_ARGS__)
126 | #define BFLogFatal(args, ...) BFLog2(BFLogLevelFatal, nil, args, ##__VA_ARGS__)
127 |
128 | #define BFLog2(logLevel, tagName, fmt, ...) \
129 | [Bugfender logWithLineNumber:__LINE__ method:[NSString stringWithFormat:@"%s",__PRETTY_FUNCTION__] file:[[NSString stringWithFormat:@"%s",__FILE__] lastPathComponent] level:logLevel tag:tagName message:fmt == nil ? @"" : [NSString stringWithFormat:fmt, ##__VA_ARGS__]]
130 |
131 |
132 |
133 | /**
134 | * Main Bugfender interface.
135 | **/
136 | @interface Bugfender : NSObject
137 |
138 | /** ******************************************************************** **
139 | * @name Configuration
140 | ** ******************************************************************** **/
141 |
142 | /**
143 | * Sets the URL of the API
144 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
145 | * directed from technical support.
146 | * @warning This method must be called before activateLogger.
147 | * @param url URL of the API to use
148 | */
149 | + (void)setApiURL:(NSURL*)url;
150 |
151 | /**
152 | * Sets the URL of the Bugfender Dashboard
153 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
154 | * directed from technical support.
155 | * @warning This method must be called before activateLogger.
156 | * @param url base URL of the Bugfender's dashboard
157 | */
158 | + (void)setBaseURL:(NSURL*)url;
159 |
160 | /**
161 | * Activates the Bugfender logger for a specific app.
162 | * @param appKey The app key of the Bugfender application, get it in bugfender.com
163 | * @warning If Bugfender has already been initialized with a different app key `NSInvalidArgumentException` will be thrown.
164 | * @note This method needs to be called before any `BFLog` call, otherwise they will be ignored.
165 | **/
166 | + (void)activateLogger:(NSString*)appKey;
167 |
168 | /**
169 | * Returns the app key.
170 | * @return The app key, or nil if Bugfender has not been initialized.
171 | **/
172 | + (nullable NSString*)appKey;
173 |
174 | /**
175 | * Maximum space available to store local logs. This value is represented in bytes. Default value is 5242880 (1024*1024*5 = 5MB).
176 | * @note If maximumLocalStorageSize is 0 (zero), then there is no limit and everything will be stored locally.
177 | **/
178 | + (NSUInteger)maximumLocalStorageSize;
179 |
180 | /**
181 | * Set the maximum space available to store local logs. This value is represented in bytes. There's a limit of 50 MB.
182 | * @param maximumLocalStorageSize Maximum size in bytes. Range accepted is from 1 MB to 50 MB. If the value provider
183 | * is below this range it will be set to 1 MB, if is above the range it will be set to 50 MB
184 | **/
185 | + (void)setMaximumLocalStorageSize:(NSUInteger)maximumLocalStorageSize;
186 |
187 | /**
188 | * INTERNAL USE ONLY - Sets the SDK type for User-Agent header.
189 | * This method should only be called by binding SDKs (React Native, Flutter, etc.).
190 | * @param sdkType The SDK type to set (e.g., "reactnative", "flutter", etc.)
191 | */
192 | + (void)setSDKType:(NSString *)sdkType;
193 |
194 | /**
195 | * Returns the device identifier used to identify the current device in the Bugfender website.
196 | * The device identifier is constant while the application is installed in the device.
197 | * @note This string can not be changed, but can be shown to the user or sent to your server, in order to
198 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
199 | *
200 | * @return A string identifying the device.
201 | **/
202 | + (NSString*)deviceIdentifier __deprecated_msg("Use deviceIdentifierUrl instead.");
203 |
204 | /**
205 | * Returns a URL linking to the current device in bugfender.
206 | * The device identifier is constant while the application is installed in the device.
207 | * @note This url can be sent to your server and used to create integrations with other services. Also can be stored to
208 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
209 | *
210 | * @return URL linking to the device in Bugfender
211 | **/
212 | + (nullable NSURL *)deviceIdentifierUrl;
213 |
214 | /**
215 | *
216 | * The session identifier is constant while the application is running.
217 | * @return A string identifying the current session.
218 | */
219 | + (nullable NSString *)sessionIdentifier __deprecated_msg("Use sessionIdentifierUrl instead.");
220 |
221 | /**
222 | *
223 | * The session identifier url is constant while the application is running.
224 | * @note This url can be sent to your server and used to create integrations with other services.
225 | * @return A URL linking to the current session in Bugfender.
226 | */
227 | + (nullable NSURL *)sessionIdentifierUrl;
228 |
229 | /**
230 | * Synchronizes all logs with the server all the time, regardless if this device is enabled or not.
231 | * @note This method is useful when the logs should be sent to the server
232 | * regardless if the device is enabled in the Bugfender Console.
233 | *
234 | * Logs are synchronized continuously while forceEnabled is active.
235 | *
236 | * This command can be called anytime, and will take effect the next time the device is online.
237 | * @param enabled Whether logs should be sent regardless of the Bugfender Console settings.
238 | */
239 | +(void) setForceEnabled:(BOOL)enabled;
240 |
241 | /**
242 | * Gets the status of forceEnabled.
243 | * @see setForceEnabled
244 | */
245 | +(BOOL) forceEnabled;
246 |
247 | /**
248 | * Prints messages to console for debugging purposes.
249 | * @param enabled Whether printing to console is enabled or not. By default it is enabled.
250 | */
251 | +(void) setPrintToConsole:(BOOL)enabled;
252 |
253 | /**
254 | * Gets the status of printToConsole. printToConsole prints messages to console. By default it is enabled.
255 | */
256 | +(BOOL) printToConsole;
257 |
258 | #if TARGET_OS_IOS
259 | /**
260 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
261 | */
262 | +(void)enableUIEventLogging;
263 |
264 | /**
265 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
266 | * @param ignoredViewsTags Tags of views that should not be observed and logged by Bugfender
267 | */
268 | + (void)enableUIEventLoggingWithIgnoredViewsTags:(NSArray *)ignoredViewsTags;
269 |
270 | #endif
271 |
272 | /**
273 | * Enable crash reporting tool functionality.
274 | */
275 | +(void)enableCrashReporting;
276 |
277 | /** ******************************************************************** **
278 | * @name Device details
279 | ** ******************************************************************** **/
280 |
281 | /**
282 | * Sets the name for the device. If the Device Name is not set, then the iOS standard device name will be automatically sent
283 | * @note This method has to be called prior to activate logger. Otherwise, an exception will be thrown.
284 | * @param deviceName Device name that will be shown in the Dashboard.
285 | */
286 | +(void)overrideDeviceName:(NSString *)deviceName __deprecated_msg("Use setDeviceString:forKey: instead, which allows to change the name once set. This function will be removed in a future version.");
287 |
288 | /**
289 | * Sets a device detail with boolean type.
290 | * @note Similarly to an NSDictionary, where you can set key-value pairs
291 | * related to a Bugfender device.
292 | * @param b A boolean value.
293 | * @param key Key.
294 | */
295 | +(void)setDeviceBOOL:(BOOL)b forKey:(NSString*)key;
296 | /**
297 | * Sets a device detail with string type.
298 | * @note Similarly to an NSDictionary, where you can set key-value pairs
299 | * related to a Bugfender device.
300 | * @param s A string value. The maximum length allowed is 192 bytes.
301 | * @param key Key.
302 | */
303 | +(void)setDeviceString:(NSString*)s forKey:(NSString*)key;
304 | /**
305 | * Sets a device detail with integer type.
306 | * @note Similarly to an NSDictionary, where you can set key-value pairs
307 | * related to a Bugfender device.
308 | * @param i An UInt64 value.
309 | * @param key Key.
310 | */
311 | +(void)setDeviceInteger:(UInt64)i forKey:(NSString*)key;
312 | /**
313 | * Sets a device detail with double type.
314 | * @note Similarly to an NSDictionary, where you can set key-value pairs
315 | * related to a Bugfender device.
316 | * @param d A double value.
317 | * @param key Key.
318 | */
319 | +(void)setDeviceDouble:(double)d forKey:(NSString*)key;
320 | /**
321 | * Removes a device detail.
322 | * @note Similarly to an NSDictionary, where you can remove an existent key-value pair
323 | * related to a Bugfender device by indicating its key.
324 | * @param key Key.
325 | */
326 | +(void)removeDeviceKey:(NSString*)key;
327 |
328 | /** ******************************************************************** **
329 | * @name Logging
330 | ** ******************************************************************** **/
331 |
332 | /**
333 | * Bugfender extended interface for logging, which takes a simple string as log message.
334 | * @note This command can be called anytime, and will take effect the next time the device is online.
335 | * For efficiency, several log lines can be sent together to the server with some delay.
336 | * @param lineNumber The line number of the log.
337 | * @param method The method where the log has happened.
338 | * @param file The file where the log has happened.
339 | * @param level Log level.
340 | * @param tag Tag to be applied to the log line.
341 | * @param message Message to be logged. The message will be logged verbatim, no interpretation will be performed.
342 | * @note In Swift, prefer to use bfprint() in order to get file name and line number filled in automatically. In Objective-C you can use the BFLog or BFLog2 macros.
343 | **/
344 | + (void) logWithLineNumber:(NSInteger)lineNumber method:(NSString*)method file:(NSString*)file level:(BFLogLevel)level tag:(nullable NSString*)tag message:(NSString*)message NS_SWIFT_NAME(log(lineNumber:method:file:level:tag:message:));
345 |
346 | /** ******************************************************************** **
347 | * @name Commands
348 | ** ******************************************************************** **/
349 |
350 | /**
351 | * Synchronizes all logs with the server once, regardless if this device is enabled or not.
352 | * @note This method is useful when an error condition is detected and the logs should be sent to
353 | * the server for analysis, regardless if the device is enabled in the Bugfender Console.
354 | *
355 | * Logs are synchronized only once. After that, the logs are again sent according to the enabled flag
356 | * in the Bugfender Console.
357 | *
358 | * This command can be called anytime, and will take effect the next time the device is online.
359 | */
360 | + (void) forceSendOnce;
361 |
362 | #pragma mark - Issues
363 | /**
364 | * Sends an issue
365 | * @note Sending an issue forces the logs of the current session being sent
366 | * to the server, and marks the session so that it is highlighted in the web console.
367 | * @param title Short description of the issue.
368 | * @param text Full details of the issue. Markdown format is accepted.
369 | * @return the issue identifier
370 | */
371 | + (nullable NSString *)sendIssueWithTitle:(NSString *)title text:(NSString *)text __deprecated_msg("Use sendIssueReturningUrlWithTitle:text: instead.");
372 |
373 | /**
374 | * Sends an issue
375 | * @note Sending an issue forces the logs of the current session being sent
376 | * to the server, and marks the session so that it is highlighted in the web console.
377 | * @param title Short description of the issue.
378 | * @param text Full details of the issue. Markdown format is accepted.
379 | * @return an URL linking to the issue in Bugfender
380 | */
381 | + (nullable NSURL *)sendIssueReturningUrlWithTitle:(NSString *)title text:(NSString *)text;
382 |
383 | #pragma mark - Crashes
384 |
385 | /**
386 | * Sends a crash
387 | * @note This method will send immediately a crash to the server
388 | * it doesn't take into account if crash reporting is enabled or not
389 | * @param title Short description of the crash.
390 | * @param text Full details of the crarsh.
391 | * @return an URL linking to the crash in Bugfender
392 | */
393 | + (nullable NSURL *)sendCrashWithTitle:(NSString *)title text:(NSString *)text;
394 |
395 | #if TARGET_OS_IOS
396 |
397 | #pragma mark - User Feedback
398 |
399 | /**
400 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
401 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
402 |
403 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
404 |
405 | @param title Title for the navigation bar
406 | @param hint Short text at the beginning
407 | @param subjectPlaceholder placeholder in the subject textfield
408 | @param messagePlaceholder placeholder in the message textfield
409 | @param sendButtonTitle title for the send button in the navigation bar
410 | @param cancelButtonTitle title for the cancel button
411 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
412 | */
413 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
414 | hint:(NSString *)hint
415 | subjectPlaceholder:(NSString *)subjectPlaceholder
416 | messagePlaceholder:(NSString *)messagePlaceholder
417 | sendButtonTitle:(NSString *)sendButtonTitle
418 | cancelButtonTitle:(NSString *)cancelButtonTitle
419 | completion:(void (^ _Nullable )(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
420 |
421 | #endif
422 |
423 | /**
424 | Allows to create custom UI to gather user feedback and send to Bugfender.
425 |
426 | @param subject subject of the feedback
427 | @param message message of the feedback
428 | */
429 | + (void)sendUserFeedbackWithSubject:(NSString *)subject message:(NSString *)message __deprecated_msg("Use sendUserFeedbackReturningUrlWithSubject:message: instead.");
430 |
431 | /**
432 | Allows to create custom UI to gather user feedback and send to Bugfender.
433 |
434 | @param subject subject of the feedback
435 | @param message message of the feedback
436 | @return URL linking to Bugfender
437 | */
438 | + (nullable NSURL *)sendUserFeedbackReturningUrlWithSubject:(NSString *)subject message:(NSString *)message;
439 |
440 | /**
441 | * Logs all logs written via NSLog or OSLog.
442 | */
443 | + (void)enableNSLogLogging API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0));
444 |
445 | /**
446 | * Logs all logs written via NSLog or OSLog.
447 | * @param interceptor intercept the logs and allow to modify or to block them before they are sent to Bugfender
448 | */
449 | + (void)enableNSLogLoggingWithInterceptor:(id )interceptor API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0)) NS_SWIFT_NAME(enableNSLogLogging(withInterceptor:));
450 |
451 | @end
452 |
453 | NS_ASSUME_NONNULL_END
454 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Headers/BugfenderSDK.h:
--------------------------------------------------------------------------------
1 | //
2 | // BugfenderSDK.h
3 | // BugfenderSDK
4 | // Copyright (c) 2014 Bugfender GmbH. All rights reserved.
5 | //
6 |
7 | #import
8 | #import "BFLogInterceptor.h"
9 | #import "BFDefaultLogInterceptor.h"
10 |
11 | #if TARGET_OS_IOS
12 |
13 | #import "BFUserFeedbackNavigationController.h"
14 |
15 | #endif
16 |
17 | NS_ASSUME_NONNULL_BEGIN
18 |
19 | #define BFLibraryVersionNumber_0_1_0 0
20 | #define BFLibraryVersionNumber_0_2_0 1
21 | #define BFLibraryVersionNumber_0_2_1 2
22 | #define BFLibraryVersionNumber_0_3_0 3
23 | #define BFLibraryVersionNumber_0_3_1 4
24 | #define BFLibraryVersionNumber_0_3_2 5
25 | #define BFLibraryVersionNumber_0_3_3 6
26 | #define BFLibraryVersionNumber_0_3_4 7
27 | #define BFLibraryVersionNumber_0_3_5 8
28 | #define BFLibraryVersionNumber_0_3_6 9
29 | #define BFLibraryVersionNumber_0_3_7 10
30 | #define BFLibraryVersionNumber_0_3_8 11
31 | #define BFLibraryVersionNumber_0_3_9 12
32 | #define BFLibraryVersionNumber_0_3_10 13
33 | #define BFLibraryVersionNumber_0_3_11 14
34 | #define BFLibraryVersionNumber_0_3_12 15
35 | #define BFLibraryVersionNumber_0_3_13 16
36 | #define BFLibraryVersionNumber_0_3_14 17
37 | #define BFLibraryVersionNumber_0_3_15 18
38 | #define BFLibraryVersionNumber_0_3_16 19
39 | #define BFLibraryVersionNumber_0_3_17 20
40 | #define BFLibraryVersionNumber_0_3_18 21
41 | #define BFLibraryVersionNumber_0_3_19 22
42 | #define BFLibraryVersionNumber_0_3_20 23
43 | #define BFLibraryVersionNumber_0_3_21 24
44 | #define BFLibraryVersionNumber_0_3_22 25
45 | #define BFLibraryVersionNumber_0_3_23 26
46 | #define BFLibraryVersionNumber_0_3_24 27
47 | #define BFLibraryVersionNumber_0_3_25 28
48 | #define BFLibraryVersionNumber_0_3_26 29
49 | #define BFLibraryVersionNumber_0_3_27 30
50 | #define BFLibraryVersionNumber_1_4_0 31
51 | #define BFLibraryVersionNumber_1_4_1 32
52 | #define BFLibraryVersionNumber_1_4_2 33
53 | #define BFLibraryVersionNumber_1_4_3 34
54 | #define BFLibraryVersionNumber_1_4_4 34 // Mistake: We released the version without incrementing the number.
55 | #define BFLibraryVersionNumber_1_4_5 36
56 | #define BFLibraryVersionNumber_1_4_6 37
57 | #define BFLibraryVersionNumber_1_4_7 38
58 | #define BFLibraryVersionNumber_1_4_8 39
59 | #define BFLibraryVersionNumber_1_4_9 40
60 | #define BFLibraryVersionNumber_1_4_10 41
61 | #define BFLibraryVersionNumber_1_5_0 42
62 | #define BFLibraryVersionNumber_1_5_1 43
63 | #define BFLibraryVersionNumber_1_5_2 44
64 | #define BFLibraryVersionNumber_1_5_3 45
65 | #define BFLibraryVersionNumber_1_5_4 46
66 | #define BFLibraryVersionNumber_1_5_5 47
67 | #define BFLibraryVersionNumber_1_5_6 48
68 | #define BFLibraryVersionNumber_1_6_0 49
69 | #define BFLibraryVersionNumber_1_6_1 50
70 | #define BFLibraryVersionNumber_1_6_2 51
71 | #define BFLibraryVersionNumber_1_6_3 52
72 | #define BFLibraryVersionNumber_1_6_4 53
73 | #define BFLibraryVersionNumber_1_6_5 54
74 | #define BFLibraryVersionNumber_1_6_6 55
75 | #define BFLibraryVersionNumber_1_7_0 56
76 | #define BFLibraryVersionNumber_1_8_0 57
77 | #define BFLibraryVersionNumber_1_9_0 58
78 | #define BFLibraryVersionNumber_1_9_1 59
79 | #define BFLibraryVersionNumber_1_9_2 60
80 | #define BFLibraryVersionNumber_1_10_0 61
81 | #define BFLibraryVersionNumber_1_10_1 62
82 | #define BFLibraryVersionNumber_1_10_2 63
83 | #define BFLibraryVersionNumber_1_10_3 64
84 | #define BFLibraryVersionNumber_1_10_4 65
85 | #define BFLibraryVersionNumber_1_10_5 66
86 | #define BFLibraryVersionNumber_1_10_6 67
87 | #define BFLibraryVersionNumber_1_11_0 68
88 | #define BFLibraryVersionNumber_1_12_0 69
89 | #define BFLibraryVersionNumber_1_12_1 70
90 | #define BFLibraryVersionNumber_1_12_2 71
91 | #define BFLibraryVersionNumber_1_13_0 72
92 | #define BFLibraryVersionNumber_1_13_1 73
93 | #define BFLibraryVersionNumber_1_13_2 74
94 | #define BFLibraryVersionNumber_2_0_0 75
95 | #define BFLibraryVersionNumber_2_0_1 76
96 | #define BFLibraryVersionNumber_2_1_0 77
97 |
98 | /**
99 | * Current Bugfender version number.
100 | * @note This value can be compared with the defined macros BFLibraryVersionNumber_X_Y_Z.
101 | **/
102 | FOUNDATION_EXPORT double const BFLibraryVersionNumber;
103 |
104 | /** Defines the level of a log */
105 | typedef NS_ENUM(NSUInteger, BFLogLevel)
106 | {
107 | /** Default/Debug log level */
108 | BFLogLevelDefault = 0,
109 | /** Warning log level */
110 | BFLogLevelWarning = 1,
111 | /** Error log level */
112 | BFLogLevelError = 2,
113 | /** Trace log level */
114 | BFLogLevelTrace = 3,
115 | /** Info log level */
116 | BFLogLevelInfo = 4,
117 | /** Fatal log level */
118 | BFLogLevelFatal = 5
119 | };
120 |
121 | #define BFLog(args, ...) BFLog2(BFLogLevelDefault, nil, args, ##__VA_ARGS__)
122 | #define BFLogWarn(args, ...) BFLog2(BFLogLevelWarning, nil, args, ##__VA_ARGS__)
123 | #define BFLogErr(args, ...) BFLog2(BFLogLevelError, nil, args, ##__VA_ARGS__)
124 | #define BFLogTrace(args, ...) BFLog2(BFLogLevelTrace, nil, args, ##__VA_ARGS__)
125 | #define BFLogInfo(args, ...) BFLog2(BFLogLevelInfo, nil, args, ##__VA_ARGS__)
126 | #define BFLogFatal(args, ...) BFLog2(BFLogLevelFatal, nil, args, ##__VA_ARGS__)
127 |
128 | #define BFLog2(logLevel, tagName, fmt, ...) \
129 | [Bugfender logWithLineNumber:__LINE__ method:[NSString stringWithFormat:@"%s",__PRETTY_FUNCTION__] file:[[NSString stringWithFormat:@"%s",__FILE__] lastPathComponent] level:logLevel tag:tagName message:fmt == nil ? @"" : [NSString stringWithFormat:fmt, ##__VA_ARGS__]]
130 |
131 |
132 |
133 | /**
134 | * Main Bugfender interface.
135 | **/
136 | @interface Bugfender : NSObject
137 |
138 | /** ******************************************************************** **
139 | * @name Configuration
140 | ** ******************************************************************** **/
141 |
142 | /**
143 | * Sets the URL of the API
144 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
145 | * directed from technical support.
146 | * @warning This method must be called before activateLogger.
147 | * @param url URL of the API to use
148 | */
149 | + (void)setApiURL:(NSURL*)url;
150 |
151 | /**
152 | * Sets the URL of the Bugfender Dashboard
153 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
154 | * directed from technical support.
155 | * @warning This method must be called before activateLogger.
156 | * @param url base URL of the Bugfender's dashboard
157 | */
158 | + (void)setBaseURL:(NSURL*)url;
159 |
160 | /**
161 | * Activates the Bugfender logger for a specific app.
162 | * @param appKey The app key of the Bugfender application, get it in bugfender.com
163 | * @warning If Bugfender has already been initialized with a different app key `NSInvalidArgumentException` will be thrown.
164 | * @note This method needs to be called before any `BFLog` call, otherwise they will be ignored.
165 | **/
166 | + (void)activateLogger:(NSString*)appKey;
167 |
168 | /**
169 | * Returns the app key.
170 | * @return The app key, or nil if Bugfender has not been initialized.
171 | **/
172 | + (nullable NSString*)appKey;
173 |
174 | /**
175 | * Maximum space available to store local logs. This value is represented in bytes. Default value is 5242880 (1024*1024*5 = 5MB).
176 | * @note If maximumLocalStorageSize is 0 (zero), then there is no limit and everything will be stored locally.
177 | **/
178 | + (NSUInteger)maximumLocalStorageSize;
179 |
180 | /**
181 | * Set the maximum space available to store local logs. This value is represented in bytes. There's a limit of 50 MB.
182 | * @param maximumLocalStorageSize Maximum size in bytes. Range accepted is from 1 MB to 50 MB. If the value provider
183 | * is below this range it will be set to 1 MB, if is above the range it will be set to 50 MB
184 | **/
185 | + (void)setMaximumLocalStorageSize:(NSUInteger)maximumLocalStorageSize;
186 |
187 | /**
188 | * INTERNAL USE ONLY - Sets the SDK type for User-Agent header.
189 | * This method should only be called by binding SDKs (React Native, Flutter, etc.).
190 | * @param sdkType The SDK type to set (e.g., "reactnative", "flutter", etc.)
191 | */
192 | + (void)setSDKType:(NSString *)sdkType;
193 |
194 | /**
195 | * Returns the device identifier used to identify the current device in the Bugfender website.
196 | * The device identifier is constant while the application is installed in the device.
197 | * @note This string can not be changed, but can be shown to the user or sent to your server, in order to
198 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
199 | *
200 | * @return A string identifying the device.
201 | **/
202 | + (NSString*)deviceIdentifier __deprecated_msg("Use deviceIdentifierUrl instead.");
203 |
204 | /**
205 | * Returns a URL linking to the current device in bugfender.
206 | * The device identifier is constant while the application is installed in the device.
207 | * @note This url can be sent to your server and used to create integrations with other services. Also can be stored to
208 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
209 | *
210 | * @return URL linking to the device in Bugfender
211 | **/
212 | + (nullable NSURL *)deviceIdentifierUrl;
213 |
214 | /**
215 | *
216 | * The session identifier is constant while the application is running.
217 | * @return A string identifying the current session.
218 | */
219 | + (nullable NSString *)sessionIdentifier __deprecated_msg("Use sessionIdentifierUrl instead.");
220 |
221 | /**
222 | *
223 | * The session identifier url is constant while the application is running.
224 | * @note This url can be sent to your server and used to create integrations with other services.
225 | * @return A URL linking to the current session in Bugfender.
226 | */
227 | + (nullable NSURL *)sessionIdentifierUrl;
228 |
229 | /**
230 | * Synchronizes all logs with the server all the time, regardless if this device is enabled or not.
231 | * @note This method is useful when the logs should be sent to the server
232 | * regardless if the device is enabled in the Bugfender Console.
233 | *
234 | * Logs are synchronized continuously while forceEnabled is active.
235 | *
236 | * This command can be called anytime, and will take effect the next time the device is online.
237 | * @param enabled Whether logs should be sent regardless of the Bugfender Console settings.
238 | */
239 | +(void) setForceEnabled:(BOOL)enabled;
240 |
241 | /**
242 | * Gets the status of forceEnabled.
243 | * @see setForceEnabled
244 | */
245 | +(BOOL) forceEnabled;
246 |
247 | /**
248 | * Prints messages to console for debugging purposes.
249 | * @param enabled Whether printing to console is enabled or not. By default it is enabled.
250 | */
251 | +(void) setPrintToConsole:(BOOL)enabled;
252 |
253 | /**
254 | * Gets the status of printToConsole. printToConsole prints messages to console. By default it is enabled.
255 | */
256 | +(BOOL) printToConsole;
257 |
258 | #if TARGET_OS_IOS
259 | /**
260 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
261 | */
262 | +(void)enableUIEventLogging;
263 |
264 | /**
265 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
266 | * @param ignoredViewsTags Tags of views that should not be observed and logged by Bugfender
267 | */
268 | + (void)enableUIEventLoggingWithIgnoredViewsTags:(NSArray *)ignoredViewsTags;
269 |
270 | #endif
271 |
272 | /**
273 | * Enable crash reporting tool functionality.
274 | */
275 | +(void)enableCrashReporting;
276 |
277 | /** ******************************************************************** **
278 | * @name Device details
279 | ** ******************************************************************** **/
280 |
281 | /**
282 | * Sets the name for the device. If the Device Name is not set, then the iOS standard device name will be automatically sent
283 | * @note This method has to be called prior to activate logger. Otherwise, an exception will be thrown.
284 | * @param deviceName Device name that will be shown in the Dashboard.
285 | */
286 | +(void)overrideDeviceName:(NSString *)deviceName __deprecated_msg("Use setDeviceString:forKey: instead, which allows to change the name once set. This function will be removed in a future version.");
287 |
288 | /**
289 | * Sets a device detail with boolean type.
290 | * @note Similarly to an NSDictionary, where you can set key-value pairs
291 | * related to a Bugfender device.
292 | * @param b A boolean value.
293 | * @param key Key.
294 | */
295 | +(void)setDeviceBOOL:(BOOL)b forKey:(NSString*)key;
296 | /**
297 | * Sets a device detail with string type.
298 | * @note Similarly to an NSDictionary, where you can set key-value pairs
299 | * related to a Bugfender device.
300 | * @param s A string value. The maximum length allowed is 192 bytes.
301 | * @param key Key.
302 | */
303 | +(void)setDeviceString:(NSString*)s forKey:(NSString*)key;
304 | /**
305 | * Sets a device detail with integer type.
306 | * @note Similarly to an NSDictionary, where you can set key-value pairs
307 | * related to a Bugfender device.
308 | * @param i An UInt64 value.
309 | * @param key Key.
310 | */
311 | +(void)setDeviceInteger:(UInt64)i forKey:(NSString*)key;
312 | /**
313 | * Sets a device detail with double type.
314 | * @note Similarly to an NSDictionary, where you can set key-value pairs
315 | * related to a Bugfender device.
316 | * @param d A double value.
317 | * @param key Key.
318 | */
319 | +(void)setDeviceDouble:(double)d forKey:(NSString*)key;
320 | /**
321 | * Removes a device detail.
322 | * @note Similarly to an NSDictionary, where you can remove an existent key-value pair
323 | * related to a Bugfender device by indicating its key.
324 | * @param key Key.
325 | */
326 | +(void)removeDeviceKey:(NSString*)key;
327 |
328 | /** ******************************************************************** **
329 | * @name Logging
330 | ** ******************************************************************** **/
331 |
332 | /**
333 | * Bugfender extended interface for logging, which takes a simple string as log message.
334 | * @note This command can be called anytime, and will take effect the next time the device is online.
335 | * For efficiency, several log lines can be sent together to the server with some delay.
336 | * @param lineNumber The line number of the log.
337 | * @param method The method where the log has happened.
338 | * @param file The file where the log has happened.
339 | * @param level Log level.
340 | * @param tag Tag to be applied to the log line.
341 | * @param message Message to be logged. The message will be logged verbatim, no interpretation will be performed.
342 | * @note In Swift, prefer to use bfprint() in order to get file name and line number filled in automatically. In Objective-C you can use the BFLog or BFLog2 macros.
343 | **/
344 | + (void) logWithLineNumber:(NSInteger)lineNumber method:(NSString*)method file:(NSString*)file level:(BFLogLevel)level tag:(nullable NSString*)tag message:(NSString*)message NS_SWIFT_NAME(log(lineNumber:method:file:level:tag:message:));
345 |
346 | /** ******************************************************************** **
347 | * @name Commands
348 | ** ******************************************************************** **/
349 |
350 | /**
351 | * Synchronizes all logs with the server once, regardless if this device is enabled or not.
352 | * @note This method is useful when an error condition is detected and the logs should be sent to
353 | * the server for analysis, regardless if the device is enabled in the Bugfender Console.
354 | *
355 | * Logs are synchronized only once. After that, the logs are again sent according to the enabled flag
356 | * in the Bugfender Console.
357 | *
358 | * This command can be called anytime, and will take effect the next time the device is online.
359 | */
360 | + (void) forceSendOnce;
361 |
362 | #pragma mark - Issues
363 | /**
364 | * Sends an issue
365 | * @note Sending an issue forces the logs of the current session being sent
366 | * to the server, and marks the session so that it is highlighted in the web console.
367 | * @param title Short description of the issue.
368 | * @param text Full details of the issue. Markdown format is accepted.
369 | * @return the issue identifier
370 | */
371 | + (nullable NSString *)sendIssueWithTitle:(NSString *)title text:(NSString *)text __deprecated_msg("Use sendIssueReturningUrlWithTitle:text: instead.");
372 |
373 | /**
374 | * Sends an issue
375 | * @note Sending an issue forces the logs of the current session being sent
376 | * to the server, and marks the session so that it is highlighted in the web console.
377 | * @param title Short description of the issue.
378 | * @param text Full details of the issue. Markdown format is accepted.
379 | * @return an URL linking to the issue in Bugfender
380 | */
381 | + (nullable NSURL *)sendIssueReturningUrlWithTitle:(NSString *)title text:(NSString *)text;
382 |
383 | #pragma mark - Crashes
384 |
385 | /**
386 | * Sends a crash
387 | * @note This method will send immediately a crash to the server
388 | * it doesn't take into account if crash reporting is enabled or not
389 | * @param title Short description of the crash.
390 | * @param text Full details of the crarsh.
391 | * @return an URL linking to the crash in Bugfender
392 | */
393 | + (nullable NSURL *)sendCrashWithTitle:(NSString *)title text:(NSString *)text;
394 |
395 | #if TARGET_OS_IOS
396 |
397 | #pragma mark - User Feedback
398 |
399 | /**
400 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
401 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
402 |
403 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
404 |
405 | @param title Title for the navigation bar
406 | @param hint Short text at the beginning
407 | @param subjectPlaceholder placeholder in the subject textfield
408 | @param messagePlaceholder placeholder in the message textfield
409 | @param sendButtonTitle title for the send button in the navigation bar
410 | @param cancelButtonTitle title for the cancel button
411 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
412 | */
413 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
414 | hint:(NSString *)hint
415 | subjectPlaceholder:(NSString *)subjectPlaceholder
416 | messagePlaceholder:(NSString *)messagePlaceholder
417 | sendButtonTitle:(NSString *)sendButtonTitle
418 | cancelButtonTitle:(NSString *)cancelButtonTitle
419 | completion:(void (^ _Nullable )(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
420 |
421 | #endif
422 |
423 | /**
424 | Allows to create custom UI to gather user feedback and send to Bugfender.
425 |
426 | @param subject subject of the feedback
427 | @param message message of the feedback
428 | */
429 | + (void)sendUserFeedbackWithSubject:(NSString *)subject message:(NSString *)message __deprecated_msg("Use sendUserFeedbackReturningUrlWithSubject:message: instead.");
430 |
431 | /**
432 | Allows to create custom UI to gather user feedback and send to Bugfender.
433 |
434 | @param subject subject of the feedback
435 | @param message message of the feedback
436 | @return URL linking to Bugfender
437 | */
438 | + (nullable NSURL *)sendUserFeedbackReturningUrlWithSubject:(NSString *)subject message:(NSString *)message;
439 |
440 | /**
441 | * Logs all logs written via NSLog or OSLog.
442 | */
443 | + (void)enableNSLogLogging API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0));
444 |
445 | /**
446 | * Logs all logs written via NSLog or OSLog.
447 | * @param interceptor intercept the logs and allow to modify or to block them before they are sent to Bugfender
448 | */
449 | + (void)enableNSLogLoggingWithInterceptor:(id )interceptor API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0)) NS_SWIFT_NAME(enableNSLogLogging(withInterceptor:));
450 |
451 | @end
452 |
453 | NS_ASSUME_NONNULL_END
454 |
--------------------------------------------------------------------------------