├── .github
└── issue_template.md
├── .gitignore
├── .jazzy.yaml
├── .swiftpm
└── xcode
│ └── package.xcworkspace
│ └── contents.xcworkspacedata
├── BugfenderSDK-XCFramework.json
├── BugfenderSDK.json
├── BugfenderSDK.podspec
├── BugfenderSDK.xcframework
├── Info.plist
├── _CodeSignature
│ ├── CodeDirectory
│ ├── CodeRequirements
│ ├── CodeRequirements-1
│ ├── CodeResources
│ └── CodeSignature
├── ios-arm64
│ └── BugfenderSDK.framework
│ │ ├── BugfenderSDK
│ │ ├── Headers
│ │ ├── BFDefaultLogInterceptor.h
│ │ ├── BFInterceptedLog.h
│ │ ├── BFLogInterceptor.h
│ │ ├── BFUserFeedbackNavigationController.h
│ │ ├── BFUserFeedbackViewController.h
│ │ ├── BugfenderSDK-Swift.h
│ │ └── BugfenderSDK.h
│ │ ├── Info.plist
│ │ ├── Modules
│ │ ├── BugfenderSDK.swiftmodule
│ │ │ ├── arm64-apple-ios.abi.json
│ │ │ ├── arm64-apple-ios.private.swiftinterface
│ │ │ ├── arm64-apple-ios.swiftdoc
│ │ │ └── arm64-apple-ios.swiftinterface
│ │ └── module.modulemap
│ │ └── PrivacyInfo.xcprivacy
├── ios-arm64_x86_64-maccatalyst
│ └── BugfenderSDK.framework
│ │ ├── BugfenderSDK
│ │ ├── Headers
│ │ ├── Modules
│ │ ├── Resources
│ │ └── Versions
│ │ ├── A
│ │ ├── BugfenderSDK
│ │ ├── Headers
│ │ │ ├── BFDefaultLogInterceptor.h
│ │ │ ├── BFInterceptedLog.h
│ │ │ ├── BFLogInterceptor.h
│ │ │ ├── BFUserFeedbackNavigationController.h
│ │ │ ├── BFUserFeedbackViewController.h
│ │ │ ├── BugfenderSDK-Swift.h
│ │ │ └── BugfenderSDK.h
│ │ ├── Modules
│ │ │ ├── BugfenderSDK.swiftmodule
│ │ │ │ ├── arm64-apple-ios-macabi.abi.json
│ │ │ │ ├── arm64-apple-ios-macabi.private.swiftinterface
│ │ │ │ ├── arm64-apple-ios-macabi.swiftdoc
│ │ │ │ ├── arm64-apple-ios-macabi.swiftinterface
│ │ │ │ ├── x86_64-apple-ios-macabi.abi.json
│ │ │ │ ├── x86_64-apple-ios-macabi.private.swiftinterface
│ │ │ │ ├── x86_64-apple-ios-macabi.swiftdoc
│ │ │ │ └── x86_64-apple-ios-macabi.swiftinterface
│ │ │ └── module.modulemap
│ │ └── Resources
│ │ │ ├── Info.plist
│ │ │ └── PrivacyInfo.xcprivacy
│ │ └── Current
└── ios-arm64_x86_64-simulator
│ └── BugfenderSDK.framework
│ ├── BugfenderSDK
│ ├── Headers
│ ├── BFDefaultLogInterceptor.h
│ ├── BFInterceptedLog.h
│ ├── BFLogInterceptor.h
│ ├── BFUserFeedbackNavigationController.h
│ ├── BFUserFeedbackViewController.h
│ ├── BugfenderSDK-Swift.h
│ └── BugfenderSDK.h
│ ├── Info.plist
│ ├── Modules
│ ├── BugfenderSDK.swiftmodule
│ │ ├── arm64-apple-ios-simulator.abi.json
│ │ ├── arm64-apple-ios-simulator.private.swiftinterface
│ │ ├── arm64-apple-ios-simulator.swiftdoc
│ │ ├── arm64-apple-ios-simulator.swiftinterface
│ │ ├── x86_64-apple-ios-simulator.abi.json
│ │ ├── x86_64-apple-ios-simulator.private.swiftinterface
│ │ ├── x86_64-apple-ios-simulator.swiftdoc
│ │ └── x86_64-apple-ios-simulator.swiftinterface
│ └── module.modulemap
│ ├── PrivacyInfo.xcprivacy
│ └── _CodeSignature
│ └── CodeResources
├── CHANGELOG.md
├── Example
├── BugfenderExample.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata
│ │ │ └── IDEWorkspaceChecks.plist
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── BugfenderExample.xcscheme
├── BugfenderExample.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
├── BugfenderExample
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj
│ │ ├── LaunchScreen.xib
│ │ └── Main.storyboard
│ ├── FirstViewController.h
│ ├── FirstViewController.m
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ ├── first.imageset
│ │ │ ├── Contents.json
│ │ │ └── first.pdf
│ │ └── second.imageset
│ │ │ ├── Contents.json
│ │ │ └── second.pdf
│ ├── Info.plist
│ ├── SecondViewController.h
│ ├── SecondViewController.m
│ └── main.m
├── BugfenderExampleUITests
│ ├── BugfenderExampleUITests.m
│ └── Info.plist
├── Podfile
└── Podfile.lock
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── Package.swift
├── README.md
├── docs
├── User-feedback-custom.png
└── User-feedback-default.png
├── generate-docs
├── readme-images
├── User-feedback-custom.png
└── spm
│ ├── spm1.png
│ ├── spm2.png
│ ├── spm3.png
│ ├── spm4.png
│ └── spm5.png
├── upload-symbols.sh
└── xcode-upload-symbols
├── README.md
├── upload-symbols.sh
└── xcode.png
/.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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.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 |
--------------------------------------------------------------------------------
/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/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.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'BugfenderSDK'
3 | s.version = '2.0.1'
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/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | AvailableLibraries
6 |
7 |
8 | BinaryPath
9 | BugfenderSDK.framework/Versions/A/BugfenderSDK
10 | LibraryIdentifier
11 | ios-arm64_x86_64-maccatalyst
12 | LibraryPath
13 | BugfenderSDK.framework
14 | SupportedArchitectures
15 |
16 | arm64
17 | x86_64
18 |
19 | SupportedPlatform
20 | ios
21 | SupportedPlatformVariant
22 | maccatalyst
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/BugfenderSDK
41 | LibraryIdentifier
42 | ios-arm64_x86_64-simulator
43 | LibraryPath
44 | BugfenderSDK.framework
45 | SupportedArchitectures
46 |
47 | arm64
48 | x86_64
49 |
50 | SupportedPlatform
51 | ios
52 | SupportedPlatformVariant
53 | simulator
54 |
55 |
56 | CFBundlePackageType
57 | XFWK
58 | XCFrameworkFormatVersion
59 | 1.0
60 |
61 |
62 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeDirectory:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/_CodeSignature/CodeDirectory
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements-1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/_CodeSignature/CodeRequirements-1
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/_CodeSignature/CodeSignature:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/_CodeSignature/CodeSignature
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/BugfenderSDK
--------------------------------------------------------------------------------
/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/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/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/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/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/BugfenderSDK.framework/Headers/BugfenderSDK-Swift.h:
--------------------------------------------------------------------------------
1 | #if 0
2 | #elif defined(__arm64__) && __arm64__
3 | // Generated by Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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 uint_least16_t char16_t;
69 | typedef uint_least32_t char32_t;
70 | # endif
71 | typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
72 | typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
73 | typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
74 | typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
75 | typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
76 | typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
77 | typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
78 | typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
79 | typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
80 | typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
81 | typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
82 | typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
83 | #endif
84 |
85 | #if !defined(SWIFT_PASTE)
86 | # define SWIFT_PASTE_HELPER(x, y) x##y
87 | # define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
88 | #endif
89 | #if !defined(SWIFT_METATYPE)
90 | # define SWIFT_METATYPE(X) Class
91 | #endif
92 | #if !defined(SWIFT_CLASS_PROPERTY)
93 | # if __has_feature(objc_class_property)
94 | # define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
95 | # else
96 | # define SWIFT_CLASS_PROPERTY(...)
97 | # endif
98 | #endif
99 | #if !defined(SWIFT_RUNTIME_NAME)
100 | # if __has_attribute(objc_runtime_name)
101 | # define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
102 | # else
103 | # define SWIFT_RUNTIME_NAME(X)
104 | # endif
105 | #endif
106 | #if !defined(SWIFT_COMPILE_NAME)
107 | # if __has_attribute(swift_name)
108 | # define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
109 | # else
110 | # define SWIFT_COMPILE_NAME(X)
111 | # endif
112 | #endif
113 | #if !defined(SWIFT_METHOD_FAMILY)
114 | # if __has_attribute(objc_method_family)
115 | # define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
116 | # else
117 | # define SWIFT_METHOD_FAMILY(X)
118 | # endif
119 | #endif
120 | #if !defined(SWIFT_NOESCAPE)
121 | # if __has_attribute(noescape)
122 | # define SWIFT_NOESCAPE __attribute__((noescape))
123 | # else
124 | # define SWIFT_NOESCAPE
125 | # endif
126 | #endif
127 | #if !defined(SWIFT_RELEASES_ARGUMENT)
128 | # if __has_attribute(ns_consumed)
129 | # define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed))
130 | # else
131 | # define SWIFT_RELEASES_ARGUMENT
132 | # endif
133 | #endif
134 | #if !defined(SWIFT_WARN_UNUSED_RESULT)
135 | # if __has_attribute(warn_unused_result)
136 | # define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
137 | # else
138 | # define SWIFT_WARN_UNUSED_RESULT
139 | # endif
140 | #endif
141 | #if !defined(SWIFT_NORETURN)
142 | # if __has_attribute(noreturn)
143 | # define SWIFT_NORETURN __attribute__((noreturn))
144 | # else
145 | # define SWIFT_NORETURN
146 | # endif
147 | #endif
148 | #if !defined(SWIFT_CLASS_EXTRA)
149 | # define SWIFT_CLASS_EXTRA
150 | #endif
151 | #if !defined(SWIFT_PROTOCOL_EXTRA)
152 | # define SWIFT_PROTOCOL_EXTRA
153 | #endif
154 | #if !defined(SWIFT_ENUM_EXTRA)
155 | # define SWIFT_ENUM_EXTRA
156 | #endif
157 | #if !defined(SWIFT_CLASS)
158 | # if __has_attribute(objc_subclassing_restricted)
159 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
160 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
161 | # else
162 | # define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
163 | # define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
164 | # endif
165 | #endif
166 | #if !defined(SWIFT_RESILIENT_CLASS)
167 | # if __has_attribute(objc_class_stub)
168 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub))
169 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME)
170 | # else
171 | # define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME)
172 | # define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME)
173 | # endif
174 | #endif
175 | #if !defined(SWIFT_PROTOCOL)
176 | # define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
177 | # define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
178 | #endif
179 | #if !defined(SWIFT_EXTENSION)
180 | # define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
181 | #endif
182 | #if !defined(OBJC_DESIGNATED_INITIALIZER)
183 | # if __has_attribute(objc_designated_initializer)
184 | # define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
185 | # else
186 | # define OBJC_DESIGNATED_INITIALIZER
187 | # endif
188 | #endif
189 | #if !defined(SWIFT_ENUM_ATTR)
190 | # if __has_attribute(enum_extensibility)
191 | # define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility)))
192 | # else
193 | # define SWIFT_ENUM_ATTR(_extensibility)
194 | # endif
195 | #endif
196 | #if !defined(SWIFT_ENUM)
197 | # define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type
198 | # if __has_feature(generalized_swift_name)
199 | # 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
200 | # else
201 | # define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility)
202 | # endif
203 | #endif
204 | #if !defined(SWIFT_UNAVAILABLE)
205 | # define SWIFT_UNAVAILABLE __attribute__((unavailable))
206 | #endif
207 | #if !defined(SWIFT_UNAVAILABLE_MSG)
208 | # define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg)))
209 | #endif
210 | #if !defined(SWIFT_AVAILABILITY)
211 | # define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__)))
212 | #endif
213 | #if !defined(SWIFT_WEAK_IMPORT)
214 | # define SWIFT_WEAK_IMPORT __attribute__((weak_import))
215 | #endif
216 | #if !defined(SWIFT_DEPRECATED)
217 | # define SWIFT_DEPRECATED __attribute__((deprecated))
218 | #endif
219 | #if !defined(SWIFT_DEPRECATED_MSG)
220 | # define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__)))
221 | #endif
222 | #if !defined(SWIFT_DEPRECATED_OBJC)
223 | # if __has_feature(attribute_diagnose_if_objc)
224 | # define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning")))
225 | # else
226 | # define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg)
227 | # endif
228 | #endif
229 | #if defined(__OBJC__)
230 | #if !defined(IBSegueAction)
231 | # define IBSegueAction
232 | #endif
233 | #endif
234 | #if !defined(SWIFT_EXTERN)
235 | # if defined(__cplusplus)
236 | # define SWIFT_EXTERN extern "C"
237 | # else
238 | # define SWIFT_EXTERN extern
239 | # endif
240 | #endif
241 | #if !defined(SWIFT_CALL)
242 | # define SWIFT_CALL __attribute__((swiftcall))
243 | #endif
244 | #if !defined(SWIFT_INDIRECT_RESULT)
245 | # define SWIFT_INDIRECT_RESULT __attribute__((swift_indirect_result))
246 | #endif
247 | #if !defined(SWIFT_CONTEXT)
248 | # define SWIFT_CONTEXT __attribute__((swift_context))
249 | #endif
250 | #if !defined(SWIFT_ERROR_RESULT)
251 | # define SWIFT_ERROR_RESULT __attribute__((swift_error_result))
252 | #endif
253 | #if defined(__cplusplus)
254 | # define SWIFT_NOEXCEPT noexcept
255 | #else
256 | # define SWIFT_NOEXCEPT
257 | #endif
258 | #if !defined(SWIFT_C_INLINE_THUNK)
259 | # if __has_attribute(always_inline)
260 | # if __has_attribute(nodebug)
261 | # define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline)) __attribute__((nodebug))
262 | # else
263 | # define SWIFT_C_INLINE_THUNK inline __attribute__((always_inline))
264 | # endif
265 | # else
266 | # define SWIFT_C_INLINE_THUNK inline
267 | # endif
268 | #endif
269 | #if defined(_WIN32)
270 | #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
271 | # define SWIFT_IMPORT_STDLIB_SYMBOL __declspec(dllimport)
272 | #endif
273 | #else
274 | #if !defined(SWIFT_IMPORT_STDLIB_SYMBOL)
275 | # define SWIFT_IMPORT_STDLIB_SYMBOL
276 | #endif
277 | #endif
278 | #if defined(__OBJC__)
279 | #if __has_feature(objc_modules)
280 | #if __has_warning("-Watimport-in-framework-header")
281 | #pragma clang diagnostic ignored "-Watimport-in-framework-header"
282 | #endif
283 | #endif
284 |
285 | #endif
286 | #pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
287 | #pragma clang diagnostic ignored "-Wduplicate-method-arg"
288 | #if __has_warning("-Wpragma-clang-attribute")
289 | # pragma clang diagnostic ignored "-Wpragma-clang-attribute"
290 | #endif
291 | #pragma clang diagnostic ignored "-Wunknown-pragmas"
292 | #pragma clang diagnostic ignored "-Wnullability"
293 | #pragma clang diagnostic ignored "-Wdollar-in-identifier-extension"
294 | #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
295 |
296 | #if __has_attribute(external_source_symbol)
297 | # pragma push_macro("any")
298 | # undef any
299 | # 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))
300 | # pragma pop_macro("any")
301 | #endif
302 |
303 | #if defined(__OBJC__)
304 |
305 | #endif
306 | #if __has_attribute(external_source_symbol)
307 | # pragma clang attribute pop
308 | #endif
309 | #if defined(__cplusplus)
310 | #endif
311 | #pragma clang diagnostic pop
312 | #endif
313 |
314 | #else
315 | #error unsupported Swift architecture
316 | #endif
317 |
--------------------------------------------------------------------------------
/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 |
97 | /**
98 | * Current Bugfender version number.
99 | * @note This value can be compared with the defined macros BFLibraryVersionNumber_X_Y_Z.
100 | **/
101 | FOUNDATION_EXPORT double const BFLibraryVersionNumber;
102 |
103 | /** Defines the level of a log */
104 | typedef NS_ENUM(NSUInteger, BFLogLevel)
105 | {
106 | /** Default/Debug log level */
107 | BFLogLevelDefault = 0,
108 | /** Warning log level */
109 | BFLogLevelWarning = 1,
110 | /** Error log level */
111 | BFLogLevelError = 2,
112 | /** Trace log level */
113 | BFLogLevelTrace = 3,
114 | /** Info log level */
115 | BFLogLevelInfo = 4,
116 | /** Fatal log level */
117 | BFLogLevelFatal = 5
118 | };
119 |
120 | #define BFLog(args, ...) BFLog2(BFLogLevelDefault, nil, args, ##__VA_ARGS__)
121 | #define BFLogWarn(args, ...) BFLog2(BFLogLevelWarning, nil, args, ##__VA_ARGS__)
122 | #define BFLogErr(args, ...) BFLog2(BFLogLevelError, nil, args, ##__VA_ARGS__)
123 | #define BFLogTrace(args, ...) BFLog2(BFLogLevelTrace, nil, args, ##__VA_ARGS__)
124 | #define BFLogInfo(args, ...) BFLog2(BFLogLevelInfo, nil, args, ##__VA_ARGS__)
125 | #define BFLogFatal(args, ...) BFLog2(BFLogLevelFatal, nil, args, ##__VA_ARGS__)
126 |
127 | #define BFLog2(logLevel, tagName, fmt, ...) \
128 | [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__]]
129 |
130 |
131 |
132 | /**
133 | * Main Bugfender interface.
134 | **/
135 | @interface Bugfender : NSObject
136 |
137 | /** ******************************************************************** **
138 | * @name Configuration
139 | ** ******************************************************************** **/
140 |
141 | /**
142 | * Sets the URL of the API
143 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
144 | * directed from technical support.
145 | * @warning This method must be called before activateLogger.
146 | * @param url URL of the API to use
147 | */
148 | + (void)setApiURL:(NSURL*)url;
149 |
150 | /**
151 | * Sets the URL of the Bugfender Dashboard
152 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
153 | * directed from technical support.
154 | * @warning This method must be called before activateLogger.
155 | * @param url base URL of the Bugfender's dashboard
156 | */
157 | + (void)setBaseURL:(NSURL*)url;
158 |
159 | /**
160 | * Activates the Bugfender logger for a specific app.
161 | * @param appKey The app key of the Bugfender application, get it in bugfender.com
162 | * @warning If Bugfender has already been initialized with a different app key `NSInvalidArgumentException` will be thrown.
163 | * @note This method needs to be called before any `BFLog` call, otherwise they will be ignored.
164 | **/
165 | + (void)activateLogger:(NSString*)appKey;
166 |
167 | /**
168 | * Returns the app key.
169 | * @return The app key, or nil if Bugfender has not been initialized.
170 | **/
171 | + (nullable NSString*)appKey;
172 |
173 | /**
174 | * Maximum space available to store local logs. This value is represented in bytes. Default value is 5242880 (1024*1024*5 = 5MB).
175 | * @note If maximumLocalStorageSize is 0 (zero), then there is no limit and everything will be stored locally.
176 | **/
177 | + (NSUInteger)maximumLocalStorageSize;
178 |
179 | /**
180 | * Set the maximum space available to store local logs. This value is represented in bytes. There's a limit of 50 MB.
181 | * @param maximumLocalStorageSize Maximum size in bytes. Range accepted is from 1 MB to 50 MB. If the value provider
182 | * is below this range it will be set to 1 MB, if is above the range it will be set to 50 MB
183 | **/
184 | + (void)setMaximumLocalStorageSize:(NSUInteger)maximumLocalStorageSize;
185 |
186 | /**
187 | * Returns the device identifier used to identify the current device in the Bugfender website.
188 | * The device identifier is constant while the application is installed in the device.
189 | * @note This string can not be changed, but can be shown to the user or sent to your server, in order to
190 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
191 | *
192 | * @return A string identifying the device.
193 | **/
194 | + (NSString*)deviceIdentifier __deprecated_msg("Use deviceIdentifierUrl instead.");
195 |
196 | /**
197 | * Returns a URL linking to the current device in bugfender.
198 | * The device identifier is constant while the application is installed in the device.
199 | * @note This url can be sent to your server and used to create integrations with other services. Also can be stored to
200 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
201 | *
202 | * @return URL linking to the device in Bugfender
203 | **/
204 | + (nullable NSURL *)deviceIdentifierUrl;
205 |
206 | /**
207 | *
208 | * The session identifier is constant while the application is running.
209 | * @return A string identifying the current session.
210 | */
211 | + (nullable NSString *)sessionIdentifier __deprecated_msg("Use sessionIdentifierUrl instead.");
212 |
213 | /**
214 | *
215 | * The session identifier url is constant while the application is running.
216 | * @note This url can be sent to your server and used to create integrations with other services.
217 | * @return A URL linking to the current session in Bugfender.
218 | */
219 | + (nullable NSURL *)sessionIdentifierUrl;
220 |
221 | /**
222 | * Synchronizes all logs with the server all the time, regardless if this device is enabled or not.
223 | * @note This method is useful when the logs should be sent to the server
224 | * regardless if the device is enabled in the Bugfender Console.
225 | *
226 | * Logs are synchronized continuously while forceEnabled is active.
227 | *
228 | * This command can be called anytime, and will take effect the next time the device is online.
229 | * @param enabled Whether logs should be sent regardless of the Bugfender Console settings.
230 | */
231 | +(void) setForceEnabled:(BOOL)enabled;
232 |
233 | /**
234 | * Gets the status of forceEnabled.
235 | * @see setForceEnabled
236 | */
237 | +(BOOL) forceEnabled;
238 |
239 | /**
240 | * Prints messages to console for debugging purposes.
241 | * @param enabled Whether printing to console is enabled or not. By default it is enabled.
242 | */
243 | +(void) setPrintToConsole:(BOOL)enabled;
244 |
245 | /**
246 | * Gets the status of printToConsole. printToConsole prints messages to console. By default it is enabled.
247 | */
248 | +(BOOL) printToConsole;
249 |
250 | #if TARGET_OS_IOS
251 | /**
252 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
253 | */
254 | +(void)enableUIEventLogging;
255 |
256 | /**
257 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
258 | * @param ignoredViewsTags Tags of views that should not be observed and logged by Bugfender
259 | */
260 | + (void)enableUIEventLoggingWithIgnoredViewsTags:(NSArray *)ignoredViewsTags;
261 |
262 | #endif
263 |
264 | /**
265 | * Enable crash reporting tool functionality.
266 | */
267 | +(void)enableCrashReporting;
268 |
269 | /** ******************************************************************** **
270 | * @name Device details
271 | ** ******************************************************************** **/
272 |
273 | /**
274 | * Sets the name for the device. If the Device Name is not set, then the iOS standard device name will be automatically sent
275 | * @note This method has to be called prior to activate logger. Otherwise, an exception will be thrown.
276 | * @param deviceName Device name that will be shown in the Dashboard.
277 | */
278 | +(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.");
279 |
280 | /**
281 | * Sets a device detail with boolean type.
282 | * @note Similarly to an NSDictionary, where you can set key-value pairs
283 | * related to a Bugfender device.
284 | * @param b A boolean value.
285 | * @param key Key.
286 | */
287 | +(void)setDeviceBOOL:(BOOL)b forKey:(NSString*)key;
288 | /**
289 | * Sets a device detail with string type.
290 | * @note Similarly to an NSDictionary, where you can set key-value pairs
291 | * related to a Bugfender device.
292 | * @param s A string value. The maximum length allowed is 192 bytes.
293 | * @param key Key.
294 | */
295 | +(void)setDeviceString:(NSString*)s forKey:(NSString*)key;
296 | /**
297 | * Sets a device detail with integer type.
298 | * @note Similarly to an NSDictionary, where you can set key-value pairs
299 | * related to a Bugfender device.
300 | * @param i An UInt64 value.
301 | * @param key Key.
302 | */
303 | +(void)setDeviceInteger:(UInt64)i forKey:(NSString*)key;
304 | /**
305 | * Sets a device detail with double type.
306 | * @note Similarly to an NSDictionary, where you can set key-value pairs
307 | * related to a Bugfender device.
308 | * @param d A double value.
309 | * @param key Key.
310 | */
311 | +(void)setDeviceDouble:(double)d forKey:(NSString*)key;
312 | /**
313 | * Removes a device detail.
314 | * @note Similarly to an NSDictionary, where you can remove an existent key-value pair
315 | * related to a Bugfender device by indicating its key.
316 | * @param key Key.
317 | */
318 | +(void)removeDeviceKey:(NSString*)key;
319 |
320 | /** ******************************************************************** **
321 | * @name Logging
322 | ** ******************************************************************** **/
323 |
324 | /**
325 | * Bugfender extended interface for logging, which takes a simple string as log message.
326 | * @note This command can be called anytime, and will take effect the next time the device is online.
327 | * For efficiency, several log lines can be sent together to the server with some delay.
328 | * @param lineNumber The line number of the log.
329 | * @param method The method where the log has happened.
330 | * @param file The file where the log has happened.
331 | * @param level Log level.
332 | * @param tag Tag to be applied to the log line.
333 | * @param message Message to be logged. The message will be logged verbatim, no interpretation will be performed.
334 | * @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.
335 | **/
336 | + (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:));
337 |
338 | /** ******************************************************************** **
339 | * @name Commands
340 | ** ******************************************************************** **/
341 |
342 | /**
343 | * Synchronizes all logs with the server once, regardless if this device is enabled or not.
344 | * @note This method is useful when an error condition is detected and the logs should be sent to
345 | * the server for analysis, regardless if the device is enabled in the Bugfender Console.
346 | *
347 | * Logs are synchronized only once. After that, the logs are again sent according to the enabled flag
348 | * in the Bugfender Console.
349 | *
350 | * This command can be called anytime, and will take effect the next time the device is online.
351 | */
352 | + (void) forceSendOnce;
353 |
354 | #pragma mark - Issues
355 | /**
356 | * Sends an issue
357 | * @note Sending an issue forces the logs of the current session being sent
358 | * to the server, and marks the session so that it is highlighted in the web console.
359 | * @param title Short description of the issue.
360 | * @param text Full details of the issue. Markdown format is accepted.
361 | * @return the issue identifier
362 | */
363 | + (nullable NSString *)sendIssueWithTitle:(NSString *)title text:(NSString *)text __deprecated_msg("Use sendIssueReturningUrlWithTitle:text: instead.");
364 |
365 | /**
366 | * Sends an issue
367 | * @note Sending an issue forces the logs of the current session being sent
368 | * to the server, and marks the session so that it is highlighted in the web console.
369 | * @param title Short description of the issue.
370 | * @param text Full details of the issue. Markdown format is accepted.
371 | * @return an URL linking to the issue in Bugfender
372 | */
373 | + (nullable NSURL *)sendIssueReturningUrlWithTitle:(NSString *)title text:(NSString *)text;
374 |
375 | #pragma mark - Crashes
376 |
377 | /**
378 | * Sends a crash
379 | * @note This method will send immediately a crash to the server
380 | * it doesn't take into account if crash reporting is enabled or not
381 | * @param title Short description of the crash.
382 | * @param text Full details of the crarsh.
383 | * @return an URL linking to the crash in Bugfender
384 | */
385 | + (nullable NSURL *)sendCrashWithTitle:(NSString *)title text:(NSString *)text;
386 |
387 | #if TARGET_OS_IOS
388 |
389 | #pragma mark - User Feedback
390 |
391 | /**
392 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
393 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
394 |
395 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
396 |
397 | @param title Title for the navigation bar
398 | @param hint Short text at the beginning
399 | @param subjectPlaceholder placeholder in the subject textfield
400 | @param messagePlaceholder placeholder in the message textfield
401 | @param sendButtonTitle title for the send button in the navigation bar
402 | @param cancelButtonTitle title for the cancel button
403 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
404 | */
405 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
406 | hint:(NSString *)hint
407 | subjectPlaceholder:(NSString *)subjectPlaceholder
408 | messagePlaceholder:(NSString *)messagePlaceholder
409 | sendButtonTitle:(NSString *)sendButtonTitle
410 | cancelButtonTitle:(NSString *)cancelButtonTitle
411 | completion:(void (^ _Nullable )(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
412 |
413 | #endif
414 |
415 | /**
416 | Allows to create custom UI to gather user feedback and send to Bugfender.
417 |
418 | @param subject subject of the feedback
419 | @param message message of the feedback
420 | */
421 | + (void)sendUserFeedbackWithSubject:(NSString *)subject message:(NSString *)message __deprecated_msg("Use sendUserFeedbackReturningUrlWithSubject:message: instead.");
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 | @return URL linking to Bugfender
429 | */
430 | + (nullable NSURL *)sendUserFeedbackReturningUrlWithSubject:(NSString *)subject message:(NSString *)message;
431 |
432 | /**
433 | * Logs all logs written via NSLog or OSLog.
434 | */
435 | + (void)enableNSLogLogging API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0));
436 |
437 | /**
438 | * Logs all logs written via NSLog or OSLog.
439 | * @param interceptor intercept the logs and allow to modify or to block them before they are sent to Bugfender
440 | */
441 | + (void)enableNSLogLoggingWithInterceptor:(id )interceptor API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0)) NS_SWIFT_NAME(enableNSLogLogging(withInterceptor:));
442 |
443 | @end
444 |
445 | NS_ASSUME_NONNULL_END
446 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Info.plist
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios.swiftdoc
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
3 | // swift-module-flags: -target arm64-apple-ios12.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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/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-maccatalyst/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
1 | Versions/Current/BugfenderSDK
--------------------------------------------------------------------------------
/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/Versions/A/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/BugfenderSDK
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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_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.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 |
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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/2e92940c702c9182352fa5a213e472da62ad69c1/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/arm64-apple-ios-macabi.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-macabi.swiftdoc
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/A/Resources/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | BuildMachineOSBuild
6 | 23G93
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 | 24C94
31 | DTPlatformName
32 | macosx
33 | DTPlatformVersion
34 | 15.2
35 | DTSDKBuild
36 | 24C94
37 | DTSDKName
38 | macosx15.2
39 | DTXcode
40 | 1620
41 | DTXcodeBuild
42 | 16C5032a
43 | LSMinimumSystemVersion
44 | 10.15
45 | UIDeviceFamily
46 |
47 | 2
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-maccatalyst/BugfenderSDK.framework/Versions/Current:
--------------------------------------------------------------------------------
1 | A
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/BugfenderSDK:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/BugfenderSDK
--------------------------------------------------------------------------------
/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-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-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-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-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-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 |
97 | /**
98 | * Current Bugfender version number.
99 | * @note This value can be compared with the defined macros BFLibraryVersionNumber_X_Y_Z.
100 | **/
101 | FOUNDATION_EXPORT double const BFLibraryVersionNumber;
102 |
103 | /** Defines the level of a log */
104 | typedef NS_ENUM(NSUInteger, BFLogLevel)
105 | {
106 | /** Default/Debug log level */
107 | BFLogLevelDefault = 0,
108 | /** Warning log level */
109 | BFLogLevelWarning = 1,
110 | /** Error log level */
111 | BFLogLevelError = 2,
112 | /** Trace log level */
113 | BFLogLevelTrace = 3,
114 | /** Info log level */
115 | BFLogLevelInfo = 4,
116 | /** Fatal log level */
117 | BFLogLevelFatal = 5
118 | };
119 |
120 | #define BFLog(args, ...) BFLog2(BFLogLevelDefault, nil, args, ##__VA_ARGS__)
121 | #define BFLogWarn(args, ...) BFLog2(BFLogLevelWarning, nil, args, ##__VA_ARGS__)
122 | #define BFLogErr(args, ...) BFLog2(BFLogLevelError, nil, args, ##__VA_ARGS__)
123 | #define BFLogTrace(args, ...) BFLog2(BFLogLevelTrace, nil, args, ##__VA_ARGS__)
124 | #define BFLogInfo(args, ...) BFLog2(BFLogLevelInfo, nil, args, ##__VA_ARGS__)
125 | #define BFLogFatal(args, ...) BFLog2(BFLogLevelFatal, nil, args, ##__VA_ARGS__)
126 |
127 | #define BFLog2(logLevel, tagName, fmt, ...) \
128 | [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__]]
129 |
130 |
131 |
132 | /**
133 | * Main Bugfender interface.
134 | **/
135 | @interface Bugfender : NSObject
136 |
137 | /** ******************************************************************** **
138 | * @name Configuration
139 | ** ******************************************************************** **/
140 |
141 | /**
142 | * Sets the URL of the API
143 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
144 | * directed from technical support.
145 | * @warning This method must be called before activateLogger.
146 | * @param url URL of the API to use
147 | */
148 | + (void)setApiURL:(NSURL*)url;
149 |
150 | /**
151 | * Sets the URL of the Bugfender Dashboard
152 | * @note Usage of this function is not necessary in the general use case. Please use exclusively when
153 | * directed from technical support.
154 | * @warning This method must be called before activateLogger.
155 | * @param url base URL of the Bugfender's dashboard
156 | */
157 | + (void)setBaseURL:(NSURL*)url;
158 |
159 | /**
160 | * Activates the Bugfender logger for a specific app.
161 | * @param appKey The app key of the Bugfender application, get it in bugfender.com
162 | * @warning If Bugfender has already been initialized with a different app key `NSInvalidArgumentException` will be thrown.
163 | * @note This method needs to be called before any `BFLog` call, otherwise they will be ignored.
164 | **/
165 | + (void)activateLogger:(NSString*)appKey;
166 |
167 | /**
168 | * Returns the app key.
169 | * @return The app key, or nil if Bugfender has not been initialized.
170 | **/
171 | + (nullable NSString*)appKey;
172 |
173 | /**
174 | * Maximum space available to store local logs. This value is represented in bytes. Default value is 5242880 (1024*1024*5 = 5MB).
175 | * @note If maximumLocalStorageSize is 0 (zero), then there is no limit and everything will be stored locally.
176 | **/
177 | + (NSUInteger)maximumLocalStorageSize;
178 |
179 | /**
180 | * Set the maximum space available to store local logs. This value is represented in bytes. There's a limit of 50 MB.
181 | * @param maximumLocalStorageSize Maximum size in bytes. Range accepted is from 1 MB to 50 MB. If the value provider
182 | * is below this range it will be set to 1 MB, if is above the range it will be set to 50 MB
183 | **/
184 | + (void)setMaximumLocalStorageSize:(NSUInteger)maximumLocalStorageSize;
185 |
186 | /**
187 | * Returns the device identifier used to identify the current device in the Bugfender website.
188 | * The device identifier is constant while the application is installed in the device.
189 | * @note This string can not be changed, but can be shown to the user or sent to your server, in order to
190 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
191 | *
192 | * @return A string identifying the device.
193 | **/
194 | + (NSString*)deviceIdentifier __deprecated_msg("Use deviceIdentifierUrl instead.");
195 |
196 | /**
197 | * Returns a URL linking to the current device in bugfender.
198 | * The device identifier is constant while the application is installed in the device.
199 | * @note This url can be sent to your server and used to create integrations with other services. Also can be stored to
200 | * keep a relationship between a Bugfender device and a user or some other important event in your application.
201 | *
202 | * @return URL linking to the device in Bugfender
203 | **/
204 | + (nullable NSURL *)deviceIdentifierUrl;
205 |
206 | /**
207 | *
208 | * The session identifier is constant while the application is running.
209 | * @return A string identifying the current session.
210 | */
211 | + (nullable NSString *)sessionIdentifier __deprecated_msg("Use sessionIdentifierUrl instead.");
212 |
213 | /**
214 | *
215 | * The session identifier url is constant while the application is running.
216 | * @note This url can be sent to your server and used to create integrations with other services.
217 | * @return A URL linking to the current session in Bugfender.
218 | */
219 | + (nullable NSURL *)sessionIdentifierUrl;
220 |
221 | /**
222 | * Synchronizes all logs with the server all the time, regardless if this device is enabled or not.
223 | * @note This method is useful when the logs should be sent to the server
224 | * regardless if the device is enabled in the Bugfender Console.
225 | *
226 | * Logs are synchronized continuously while forceEnabled is active.
227 | *
228 | * This command can be called anytime, and will take effect the next time the device is online.
229 | * @param enabled Whether logs should be sent regardless of the Bugfender Console settings.
230 | */
231 | +(void) setForceEnabled:(BOOL)enabled;
232 |
233 | /**
234 | * Gets the status of forceEnabled.
235 | * @see setForceEnabled
236 | */
237 | +(BOOL) forceEnabled;
238 |
239 | /**
240 | * Prints messages to console for debugging purposes.
241 | * @param enabled Whether printing to console is enabled or not. By default it is enabled.
242 | */
243 | +(void) setPrintToConsole:(BOOL)enabled;
244 |
245 | /**
246 | * Gets the status of printToConsole. printToConsole prints messages to console. By default it is enabled.
247 | */
248 | +(BOOL) printToConsole;
249 |
250 | #if TARGET_OS_IOS
251 | /**
252 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
253 | */
254 | +(void)enableUIEventLogging;
255 |
256 | /**
257 | * Logs all actions performed and screen changes in the application, such as button touches, swipes and gestures.
258 | * @param ignoredViewsTags Tags of views that should not be observed and logged by Bugfender
259 | */
260 | + (void)enableUIEventLoggingWithIgnoredViewsTags:(NSArray *)ignoredViewsTags;
261 |
262 | #endif
263 |
264 | /**
265 | * Enable crash reporting tool functionality.
266 | */
267 | +(void)enableCrashReporting;
268 |
269 | /** ******************************************************************** **
270 | * @name Device details
271 | ** ******************************************************************** **/
272 |
273 | /**
274 | * Sets the name for the device. If the Device Name is not set, then the iOS standard device name will be automatically sent
275 | * @note This method has to be called prior to activate logger. Otherwise, an exception will be thrown.
276 | * @param deviceName Device name that will be shown in the Dashboard.
277 | */
278 | +(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.");
279 |
280 | /**
281 | * Sets a device detail with boolean type.
282 | * @note Similarly to an NSDictionary, where you can set key-value pairs
283 | * related to a Bugfender device.
284 | * @param b A boolean value.
285 | * @param key Key.
286 | */
287 | +(void)setDeviceBOOL:(BOOL)b forKey:(NSString*)key;
288 | /**
289 | * Sets a device detail with string type.
290 | * @note Similarly to an NSDictionary, where you can set key-value pairs
291 | * related to a Bugfender device.
292 | * @param s A string value. The maximum length allowed is 192 bytes.
293 | * @param key Key.
294 | */
295 | +(void)setDeviceString:(NSString*)s forKey:(NSString*)key;
296 | /**
297 | * Sets a device detail with integer type.
298 | * @note Similarly to an NSDictionary, where you can set key-value pairs
299 | * related to a Bugfender device.
300 | * @param i An UInt64 value.
301 | * @param key Key.
302 | */
303 | +(void)setDeviceInteger:(UInt64)i forKey:(NSString*)key;
304 | /**
305 | * Sets a device detail with double type.
306 | * @note Similarly to an NSDictionary, where you can set key-value pairs
307 | * related to a Bugfender device.
308 | * @param d A double value.
309 | * @param key Key.
310 | */
311 | +(void)setDeviceDouble:(double)d forKey:(NSString*)key;
312 | /**
313 | * Removes a device detail.
314 | * @note Similarly to an NSDictionary, where you can remove an existent key-value pair
315 | * related to a Bugfender device by indicating its key.
316 | * @param key Key.
317 | */
318 | +(void)removeDeviceKey:(NSString*)key;
319 |
320 | /** ******************************************************************** **
321 | * @name Logging
322 | ** ******************************************************************** **/
323 |
324 | /**
325 | * Bugfender extended interface for logging, which takes a simple string as log message.
326 | * @note This command can be called anytime, and will take effect the next time the device is online.
327 | * For efficiency, several log lines can be sent together to the server with some delay.
328 | * @param lineNumber The line number of the log.
329 | * @param method The method where the log has happened.
330 | * @param file The file where the log has happened.
331 | * @param level Log level.
332 | * @param tag Tag to be applied to the log line.
333 | * @param message Message to be logged. The message will be logged verbatim, no interpretation will be performed.
334 | * @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.
335 | **/
336 | + (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:));
337 |
338 | /** ******************************************************************** **
339 | * @name Commands
340 | ** ******************************************************************** **/
341 |
342 | /**
343 | * Synchronizes all logs with the server once, regardless if this device is enabled or not.
344 | * @note This method is useful when an error condition is detected and the logs should be sent to
345 | * the server for analysis, regardless if the device is enabled in the Bugfender Console.
346 | *
347 | * Logs are synchronized only once. After that, the logs are again sent according to the enabled flag
348 | * in the Bugfender Console.
349 | *
350 | * This command can be called anytime, and will take effect the next time the device is online.
351 | */
352 | + (void) forceSendOnce;
353 |
354 | #pragma mark - Issues
355 | /**
356 | * Sends an issue
357 | * @note Sending an issue forces the logs of the current session being sent
358 | * to the server, and marks the session so that it is highlighted in the web console.
359 | * @param title Short description of the issue.
360 | * @param text Full details of the issue. Markdown format is accepted.
361 | * @return the issue identifier
362 | */
363 | + (nullable NSString *)sendIssueWithTitle:(NSString *)title text:(NSString *)text __deprecated_msg("Use sendIssueReturningUrlWithTitle:text: instead.");
364 |
365 | /**
366 | * Sends an issue
367 | * @note Sending an issue forces the logs of the current session being sent
368 | * to the server, and marks the session so that it is highlighted in the web console.
369 | * @param title Short description of the issue.
370 | * @param text Full details of the issue. Markdown format is accepted.
371 | * @return an URL linking to the issue in Bugfender
372 | */
373 | + (nullable NSURL *)sendIssueReturningUrlWithTitle:(NSString *)title text:(NSString *)text;
374 |
375 | #pragma mark - Crashes
376 |
377 | /**
378 | * Sends a crash
379 | * @note This method will send immediately a crash to the server
380 | * it doesn't take into account if crash reporting is enabled or not
381 | * @param title Short description of the crash.
382 | * @param text Full details of the crarsh.
383 | * @return an URL linking to the crash in Bugfender
384 | */
385 | + (nullable NSURL *)sendCrashWithTitle:(NSString *)title text:(NSString *)text;
386 |
387 | #if TARGET_OS_IOS
388 |
389 | #pragma mark - User Feedback
390 |
391 | /**
392 | Provides a View Controller to gather the feedback of the users and sent it to Bugfender.
393 | The returning BFUserFeedbackNavigationController has to be presented modally and it has it's own Send and Cancel buttons
394 |
395 | Additionally, it is possible to customize the aspect of the screen accessing BFUserFeedbackNavigationController.feedbackViewController
396 |
397 | @param title Title for the navigation bar
398 | @param hint Short text at the beginning
399 | @param subjectPlaceholder placeholder in the subject textfield
400 | @param messagePlaceholder placeholder in the message textfield
401 | @param sendButtonTitle title for the send button in the navigation bar
402 | @param cancelButtonTitle title for the cancel button
403 | @return BFUserFeedbackNavigationController containing a BFUserFeedbackViewController as root view controller
404 | */
405 | + (BFUserFeedbackNavigationController *)userFeedbackViewControllerWithTitle:(NSString *)title
406 | hint:(NSString *)hint
407 | subjectPlaceholder:(NSString *)subjectPlaceholder
408 | messagePlaceholder:(NSString *)messagePlaceholder
409 | sendButtonTitle:(NSString *)sendButtonTitle
410 | cancelButtonTitle:(NSString *)cancelButtonTitle
411 | completion:(void (^ _Nullable )(BOOL feedbackSent, NSURL * _Nullable url))completionBlock;
412 |
413 | #endif
414 |
415 | /**
416 | Allows to create custom UI to gather user feedback and send to Bugfender.
417 |
418 | @param subject subject of the feedback
419 | @param message message of the feedback
420 | */
421 | + (void)sendUserFeedbackWithSubject:(NSString *)subject message:(NSString *)message __deprecated_msg("Use sendUserFeedbackReturningUrlWithSubject:message: instead.");
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 | @return URL linking to Bugfender
429 | */
430 | + (nullable NSURL *)sendUserFeedbackReturningUrlWithSubject:(NSString *)subject message:(NSString *)message;
431 |
432 | /**
433 | * Logs all logs written via NSLog or OSLog.
434 | */
435 | + (void)enableNSLogLogging API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0));
436 |
437 | /**
438 | * Logs all logs written via NSLog or OSLog.
439 | * @param interceptor intercept the logs and allow to modify or to block them before they are sent to Bugfender
440 | */
441 | + (void)enableNSLogLoggingWithInterceptor:(id )interceptor API_AVAILABLE(macos(10.15), ios(15.0), tvos(15.0), watchos(8.0)) NS_SWIFT_NAME(enableNSLogLogging(withInterceptor:));
442 |
443 | @end
444 |
445 | NS_ASSUME_NONNULL_END
446 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Info.plist:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Info.plist
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/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/arm64-apple-ios-simulator.swiftinterface:
--------------------------------------------------------------------------------
1 | // swift-interface-format-version: 1.0
2 | // swift-compiler-version: Apple Swift version 6.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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/2e92940c702c9182352fa5a213e472da62ad69c1/BugfenderSDK.xcframework/ios-arm64_x86_64-simulator/BugfenderSDK.framework/Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
--------------------------------------------------------------------------------
/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.0.3 effective-5.10 (swiftlang-6.0.3.1.10 clang-1600.0.30.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-bare-slash-regex -module-name BugfenderSDK
4 | // swift-module-flags-ignorable: -no-verify-emitted-module-interface
5 | @_exported import BugfenderSDK
6 | import Foundation
7 | import Swift
8 | import _Concurrency
9 | import _StringProcessing
10 | import _SwiftConcurrencyShims
11 | extension BugfenderSDK.Bugfender {
12 | 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)
13 | 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)
14 | 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)
15 | }
16 | 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)
17 | 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)
18 | 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)
19 | 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)
20 | 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)
21 | 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)
22 | 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)
23 |
--------------------------------------------------------------------------------
/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/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/_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 | KbwJWq454IA33njR8ZKb6NexDC8=
30 |
31 | Headers/BugfenderSDK.h
32 |
33 | l8Bc9RCS6cazY7eHvdop4Ra16n4=
34 |
35 | Info.plist
36 |
37 | UUEXOi22Zsg+oC7auIqhrCC+u+E=
38 |
39 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.abi.json
40 |
41 | qipEtgmYcoA5cpkJiumhC7oOpaw=
42 |
43 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
44 |
45 | +7ktzI9zY7XOzlkJhM/qGu/7xe0=
46 |
47 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc
48 |
49 | Jl6dHtJa2ShcyFnUU+tkYURZXZ8=
50 |
51 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface
52 |
53 | +7ktzI9zY7XOzlkJhM/qGu/7xe0=
54 |
55 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule
56 |
57 | tdQ7Kd9iAIy7BPD+IbrwDMvxyT8=
58 |
59 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json
60 |
61 | qipEtgmYcoA5cpkJiumhC7oOpaw=
62 |
63 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
64 |
65 | +NnEFpK6LA9C+cXKq1jll6upaTg=
66 |
67 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
68 |
69 | N5ZWJZ1aR+JQWaqYT1Oslhnwsjo=
70 |
71 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
72 |
73 | +NnEFpK6LA9C+cXKq1jll6upaTg=
74 |
75 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
76 |
77 | on5d+FcotaovhA6pJkbObMIK8B0=
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 | C1qSdDlitmoGouvKG1XXNowvxZ2YCAuzhNWtWD1zH7U=
130 |
131 |
132 | Headers/BugfenderSDK.h
133 |
134 | hash2
135 |
136 | +DFjUYuW5metNfpNBjZgjyxOHSjch2xdR6aMUVzsYjM=
137 |
138 |
139 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.abi.json
140 |
141 | hash2
142 |
143 | dtwrepbJ77ILrKfX2hgcPiMQJ1N4sgEPuCgUYQn4Vm4=
144 |
145 |
146 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface
147 |
148 | hash2
149 |
150 | Mm03XMe0zTyDJjlbHyiJ9gedTmy63yKxUSDY2e2EtBM=
151 |
152 |
153 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc
154 |
155 | hash2
156 |
157 | gJeTsw3qSYP8IFfCCuAS/WVSjmoMVvorp2y194mkf9M=
158 |
159 |
160 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface
161 |
162 | hash2
163 |
164 | Mm03XMe0zTyDJjlbHyiJ9gedTmy63yKxUSDY2e2EtBM=
165 |
166 |
167 | Modules/BugfenderSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule
168 |
169 | hash2
170 |
171 | XaHp/T7MrYwvtDcTOV31zDGUsPtVUoiHeJ/OC3vNibE=
172 |
173 |
174 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.abi.json
175 |
176 | hash2
177 |
178 | dtwrepbJ77ILrKfX2hgcPiMQJ1N4sgEPuCgUYQn4Vm4=
179 |
180 |
181 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface
182 |
183 | hash2
184 |
185 | BUdCR0jGgq0czY/im65Vb2d6efv9wsWc3tzo/Bvtdqk=
186 |
187 |
188 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc
189 |
190 | hash2
191 |
192 | yHv6STZPDGipCG34LjpmsVR2W8U0+S8dL+mxsWiyY0k=
193 |
194 |
195 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface
196 |
197 | hash2
198 |
199 | BUdCR0jGgq0czY/im65Vb2d6efv9wsWc3tzo/Bvtdqk=
200 |
201 |
202 | Modules/BugfenderSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
203 |
204 | hash2
205 |
206 | EYx3VLgSEQ05iyWZ0056GSMKM35EJrsQglgkl6txo8o=
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.0.1
2 | - Breaking update: built with Xcode 16, which means you will need Xcode 16 or newer to build your application.
3 |
4 | # 2.0.0
5 | - New: the xcframework is now digitally signed.
6 | - Breaking update: removed Bitcode, since now Apple rejects builds with Bitcode.
7 | - Breaking update: built with Xcode 15, which means you will need Xcode 15 or newer to build your application.
8 | - Breaking update: supports iOS version 12.0 and newer (iOS deployment target)
9 | - Breaking update: drop static library and dynamic framework builds.
10 | - Note there’s no functionality change vs prior version (1.13.2)
11 |
12 | # 1.13.2
13 | - Update: remove KSCrash logs to console output (there are benign error messages)
14 | - Bugfix: replace ID generation function that lead to sporadically missing logs when processing a high volume in a short time
15 |
16 | # 1.13.1
17 | - Bugfix: bfsdk_ksfu_readEntireFile reimplementation regression introduced in 1.13.0
18 |
19 | # 1.13.0
20 | - Update: add PrivacyInfo.xcprivacy to automatically recognize "other diagnostic data" is being collected, with no tracking and no association with the user identity
21 | - Update: declare accepted usage of NSUserDefaults in PrivacyInfo.xcprivacy
22 | - 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
23 |
24 | # 1.12.2
25 | - Bugfix: race condition when setting device key-values that may lead to a crash
26 |
27 | # 1.12.1
28 | - This release fixes problems with Cocoapods and static library in the previous release.
29 |
30 | # 1.12.0
31 | - Feature: Add `enableNSLogLogging` & `enableNSLogLoggingWithInterceptor` method that allows to automatically capture logs written via NSLog or OSLog.
32 | - Internal: Changes on library initialization.
33 |
34 | # 1.11.0
35 | - Feature: Add `enableUIEventLoggingWithIgnoredViewTags` method that allows to avoid generating logs for some views
36 | - Changed `setMaximumLocalStorageSize` to not throw an Exception if the value provided is out of range.
37 |
38 | # 1.10.6
39 | - Fix: Possible crash due to corrupted crash log
40 | - Feature: iOS device name is not gathered anymore, it has been replaced by the device model.
41 |
42 | # 1.10.5
43 | - Fix: upload symbols script was not working properly
44 |
45 | # 1.10.4
46 | - Add upload symbols script to Bugfender Pod
47 |
48 | # 1.10.3
49 | - Bugfix: user feedback dialog navigation bar sometimes not styling properly
50 | - Bugfix: crashes sometimes reported in the wrong session when the application crashes multiple times in a row
51 |
52 | # 1.10.2
53 | - Bugfix: fixed potential crash when setting custom device data
54 |
55 | # 1.10.1
56 | - Bugfix: fixed potential crash or missing logs when app is in background mode in combination with protected data classes
57 | - More efficient API calls
58 |
59 | # 1.10.0
60 | - Bugfender was compiled with Xcode 12 and is SPM compatible now
61 | - Additionally dynamic framework and static libraries without simulator arm slice are provided for retrocompatiblity but they should be avoided
62 |
63 | # 1.9.2
64 | - Feature: added a new overrideDeviceName(String) that allows to customize the name of the device.
65 |
66 | # 1.9.1
67 | - Fix: returning URLs from device/issue/session missing path segment
68 |
69 | # 1.9.0
70 | - Support for CocoaPods 1.9.0 and xcframework
71 |
72 | # 1.8.0
73 | - Added xcframework to support Project Catalyst
74 | - Bugfender is now a dynamic library and swift files are included inside. No need to manually add the swift bridge anymore
75 | - Bugfender will return a specific -1004 error when trying to send logs to an app that was deleted in the server
76 |
77 | # 1.7.0
78 | - 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
79 | - Changed pulic api so URL dependant identifiers are nullable properties now
80 |
81 | # 1.6.6
82 | - Added new log levels
83 |
84 | # 1.6.5
85 | - 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
86 | - Fixed race condition that may prevent some crashes to be correctly displayed in the Bugfender's Dashboard
87 | - Added new method allowing developers to manually send crash reports to Bugfender
88 |
89 | # 1.6.4
90 | - Fixed an async task that may block a background thread
91 | - Improved how user defined key-values synchronize with the server
92 | - Fixed race condition that may lead to a heap corruption in low connectivity conditions
93 |
94 | # 1.6.3
95 | - Fixed threading issue that may lead to a crash under stress conditions
96 |
97 | # 1.6.2
98 | - Improved the memory footprint of BugfenderSDK. The SDK, in general, will need less memory to perform normal operations
99 | - Improved the behaviour of the SDK heartbeat for apps which are never fully closed
100 | - Fixed crash when a device was trying to send an abnormally big amount of logs to the server
101 | - Logs have been limited to 32000 characters in order to avoid memory issues in devices with low resources available
102 | - Updated docs regarding to the ussage of the tags
103 | - Other minor performance issues
104 |
105 | # 1.6.1
106 | - Fixed crash when using the Bugfender User Feedback in Swift
107 | - Improved return key type in the User Feedback textfields
108 |
109 | # 1.6.0
110 | - Featuring the new Bugfender User Feedback. A fast and easy way to gather feedback from the users
111 | - Fixed swift bridges sending the full path of the files instead the filename
112 |
113 | # 1.5.6
114 | - Fixed an issue in which gap logs were reporting wrong begin/end dates
115 |
116 | # 1.5.5
117 | - Addressing an issue in which access to the iOS keychain in the background may cause a crash
118 | - Fixed SDK sending wrong timestamp in crash
119 |
120 | # 1.5.4
121 | - 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.
122 |
123 | # 1.5.3
124 | - Fixed issue with some crashes was not sent.
125 |
126 | # 1.5.2
127 | - Implement refresh device status
128 | - Fixed issue with the device key-values
129 |
130 | # 1.5.1
131 | - Improved efficiency of background cleanup process
132 |
133 | # 1.5.0
134 | - Added crash reporting
135 | - Added information when deleting logs unsent to the server
136 | - Added exponential back off if the server is not reachable
137 |
138 | # 1.4.10
139 | - Added method for setting API endpoint
140 |
141 | # 1.4.9
142 | - Fixed crash when sendIssues is called with nil parameters.
143 | - Adding some other parameter validations.
144 |
145 | # 1.4.8
146 | - Fixed minor issues.
147 |
148 | # 1.4.7
149 | - Fixed minor issues.
150 |
151 | # 1.4.6
152 | - Added method to get the session identifier.
153 | - Now send issue method returns the issue identifier.
154 |
155 | # 1.4.5
156 | - Fixed issue with the latest release.
157 |
158 | # 1.4.4
159 | - Improvements with the CPU consumption.
160 |
161 | # 1.4.3
162 | - Stability update: fixed crash in very rare circumstances.
163 | - Improvements when the sdk is deleting the old logs because the max storage size is reached.
164 |
165 | # 1.4.2
166 | - Fixing CocoaPods when using static libraries in Objective-C
167 | - Now compatible with Swift 2.3, 3.0 and 3.1
168 | - Fixing appledoc, fixToConsole default setting wrongly documented
169 | - Fixing appledoc, some argument names were wrong
170 | - Printing an empty line on BFLog(nil);
171 |
172 | # 1.4.0
173 | - Declared the framework as a Clang module, so that the framework can be used in Swift without bridging headers
174 | - Removed redundant and outdated method calls to make the SDK docs/API cleaner
175 | - Published helper file for Swift projects
176 |
177 | # 0.3.27
178 | - Stability update: fixed crash in very rare circumstances.
179 |
180 | # 0.3.26
181 | - Improved networking code, smaller and more efficient
182 | - Fixed conflict with AFNetworking library
183 |
184 | # 0.3.25
185 | - enableNSLogLogging is now marked as deprecated, not working since iOS 10
186 | - Dropping support for iOS 7
187 | - Improvements on the networking code
188 |
189 | # 0.3.24
190 | - Better formatting of the automated user interaction logging
191 |
192 | # 0.3.23
193 | - Fixing missing some NSLogs at the beginning and end of the session, especially on iOS 10
194 | - Fixing documentation warnings raised by Xcode 8
195 | - Fixing duplicated logs from NSLog when DEBUG macro is defined when using BFLog
196 |
197 | # 0.3.22
198 | - Fixing bug that sends empty sessions to the server
199 | - Fixing a bug that reports wrong app version information when the build number contains the dot character
200 |
201 | # 0.3.21
202 | - Fixing wake lock to avoid applications dying faster in the background
203 |
204 | # 0.3.20
205 | - Bug fix: date formatting in devices in Arabic
206 | - Improves: format for UI events
207 |
208 | # 0.3.18
209 | - fixing nil dereference exceptions (rarely seen)
210 |
211 | # 0.3.17
212 | - Fixes synchronization of device details set with setDevice*
213 | - Allows the change of the API endpoint via environment variable for Bugfender preproduction tests
214 |
215 | # 0.3.16
216 | - Fixes #11, crash when using Bugfender with CocoaLumberjack and empty log message
217 |
218 | # 0.3.15
219 | - Fixes timestamp estimation and some UIEvents without timestamp.
220 | - Better description for topmost view controller and UIEvents
221 |
222 | # 0.3.14
223 | - Recompiled with Xcode 7, supports Bitcode
224 |
225 | # 0.3.10
226 | - Fixed crash on iOS7 when NSLog logging is enabled
227 | - Added documentation about issues
228 |
229 | # 0.3.9
230 | - Added issues
231 | - Option to send logs from the app
232 |
233 | # 0.3.8
234 | - Added device detail key-value storage
235 | - Fixed a crash when device disk was full
236 |
237 | # 0.3.7
238 | - Efficiency and stability improvements
239 |
240 | # 0.3.6
241 | - Automated logging of NSLog
242 | - Automated UIEvent logging
243 | - Efficiency and stability improvements
244 |
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Example/BugfenderExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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:@"s5VCpT6z9HaSEe0T8re6nsIk7tXsk23b"]; // 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/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/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 |
--------------------------------------------------------------------------------
/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/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/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 | }
--------------------------------------------------------------------------------
/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/first.imageset/first.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/Example/BugfenderExample/Images.xcassets/first.imageset/first.pdf
--------------------------------------------------------------------------------
/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 | }
--------------------------------------------------------------------------------
/Example/BugfenderExample/Images.xcassets/second.imageset/second.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/Example/BugfenderExample/Images.xcassets/second.imageset/second.pdf
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/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/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 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/Example/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '11.0'
2 | target "BugfenderExample" do
3 | # For local testing
4 | #pod 'BugfenderSDK', :path => '..'
5 | pod 'BugfenderSDK', '~> 2.0.1'
6 | end
7 |
--------------------------------------------------------------------------------
/Example/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - BugfenderSDK (2.0.0)
3 |
4 | DEPENDENCIES:
5 | - BugfenderSDK (from `..`)
6 |
7 | EXTERNAL SOURCES:
8 | BugfenderSDK:
9 | :path: ".."
10 |
11 | SPEC CHECKSUMS:
12 | BugfenderSDK: 290a6c6163c2212c819e63c49d192c8625046602
13 |
14 | PODFILE CHECKSUM: 2e1725143d6abb5ae5dff55c68f7eb5d54445740
15 |
16 | COCOAPODS: 1.16.2
17 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | gem 'jazzy'
3 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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.0.1/BugfenderSDK.xcframework.zip",
19 | checksum: "08f8d986e21601cadea8568fcee60955efa02d3697e57683b3e741072a65659b"
20 | )
21 | ]
22 | )
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Bugfender SDK for iOS [](https://bugfender.github.io/BugfenderSDK-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 |
--------------------------------------------------------------------------------
/docs/User-feedback-custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/docs/User-feedback-custom.png
--------------------------------------------------------------------------------
/docs/User-feedback-default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/docs/User-feedback-default.png
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/readme-images/User-feedback-custom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/User-feedback-custom.png
--------------------------------------------------------------------------------
/readme-images/spm/spm1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/spm/spm1.png
--------------------------------------------------------------------------------
/readme-images/spm/spm2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/spm/spm2.png
--------------------------------------------------------------------------------
/readme-images/spm/spm3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/spm/spm3.png
--------------------------------------------------------------------------------
/readme-images/spm/spm4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/spm/spm4.png
--------------------------------------------------------------------------------
/readme-images/spm/spm5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/readme-images/spm/spm5.png
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/xcode-upload-symbols/xcode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bugfender/BugfenderSDK-iOS/2e92940c702c9182352fa5a213e472da62ad69c1/xcode-upload-symbols/xcode.png
--------------------------------------------------------------------------------