cocoapods-bugsnag 1.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +48 -0
- data/README.md +52 -0
- data/cocoapods-bugsnag.gemspec +22 -0
- data/lib/cocoapods_bugsnag.rb +27 -5
- metadata +37 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 482f70c66ea52e9633b644d594c1c8ef9bdddbe5
|
4
|
+
data.tar.gz: f4a0810109c18cf8edd07bcbda48d2d84ec37d9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17a00ed6b43c406eba7390a722cf06930b32780c030efc2218b4d856a8a71981994fbc3925c87d4185b1ff988c7a2631c6445e1f45328e725b71dfa69a11e5ad
|
7
|
+
data.tar.gz: 8432e08a32cf59006b02fbe56fc846221544aaea895eea9c5eb3ae76d6e9d7a01dd3dd0c729028ef2b5899f8c25cbc276914ffca24bea94a34d722587d9c4e57
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## 2.2.0 (30 Sept 2020)
|
4
|
+
|
5
|
+
### Enhancements
|
6
|
+
|
7
|
+
* This plugin now finds `Info.plist` using Xcode environment variables, rather than a `glob` operation for robustness.
|
8
|
+
| [#15](https://github.com/bugsnag/cocoapods-bugsnag/pull/15)
|
9
|
+
|
10
|
+
* This plugin will now only add itself to your Xcode project if it is explicitly added as a plugin in your `Podfile`. Previously it would install if `Bugsnag` was detected in your `Podfile`.
|
11
|
+
| [#16](https://github.com/bugsnag/cocoapods-bugsnag/pull/16)
|
12
|
+
|
13
|
+
## 2.1.0 (14 Aug 2020)
|
14
|
+
|
15
|
+
### Enhancements
|
16
|
+
|
17
|
+
* Added new location for API key in `Info.plist` from [bugsnag-cocoa v6.x](https://github.com/bugsnag/bugsnag-cocoa/releases/tag/v6.0.0).
|
18
|
+
| [#9](https://github.com/bugsnag/cocoapods-bugsnag/pull/9)
|
19
|
+
|
20
|
+
* Process now fails if no API key can be found before the upload begins
|
21
|
+
| [b624b58](https://github.com/bugsnag/cocoapods-bugsnag/commit/b624b58079a45cff55fed297bcf2ebc6073069a5) fixes [#5](https://github.com/bugsnag/cocoapods-bugsnag/issues/5)
|
22
|
+
|
23
|
+
### Bug fixes
|
24
|
+
|
25
|
+
* Added the --http1.1 option to the curl command to force use of HTTP/1.1 to prevent the uploads of larger files from failing.
|
26
|
+
| [#8](https://github.com/bugsnag/cocoapods-bugsnag/pull/8)
|
27
|
+
|
28
|
+
## 2.0.1 (04 Dec 2018)
|
29
|
+
|
30
|
+
### Enhancements
|
31
|
+
|
32
|
+
* Added API key to generated upload command
|
33
|
+
| [#4](https://github.com/bugsnag/cocoapods-bugsnag/pull/4)
|
34
|
+
|
35
|
+
## 2.0.0 (30 Jun 2016)
|
36
|
+
|
37
|
+
Version update to support CocoaPods 1.0
|
38
|
+
|
39
|
+
## 1.0.1 (23 Dec 2015)
|
40
|
+
|
41
|
+
### Bug Fixes
|
42
|
+
|
43
|
+
* Fix for missing specification warning during `pod install`
|
44
|
+
| [7d70389](https://github.com/bugsnag/cocoapods-bugsnag/commit/7d70389af31b2b8807195aca3dae0e62140ff176)
|
45
|
+
|
46
|
+
## 1.0.0 (19 Dec 2015)
|
47
|
+
|
48
|
+
Initial Release
|
data/README.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# cocoapods-bugsnag
|
2
|
+
|
3
|
+
A [CocoaPods](https://cocoapods.org) plugin for integrating Cocoa projects with
|
4
|
+
[Bugsnag](https://bugsnag.com), an error tracking and resolution tool. When
|
5
|
+
installed, the plugin will add a Run Script build phase to your project workspace
|
6
|
+
to upload your
|
7
|
+
[dSYM](http://noverse.com/blog/2010/03/how-to-deal-with-an-iphone-crash-report/)
|
8
|
+
files so the Bugsnag service can provide you with symbolicated stack traces.
|
9
|
+
|
10
|
+
## Installation
|
11
|
+
|
12
|
+
`cocoapods-bugsnag` is available via [RubyGems](https://rubygems.org). To
|
13
|
+
install, run:
|
14
|
+
|
15
|
+
gem install cocoapods-bugsnag
|
16
|
+
|
17
|
+
### Installing from Source
|
18
|
+
|
19
|
+
1. Clone this repository
|
20
|
+
2. Run `bundle install` from the root of the repository (installing
|
21
|
+
[bundler](http://bundler.io) if needed)
|
22
|
+
3. Build the gem using `gem build cocoapods-bugsnag.gemspec`
|
23
|
+
4. Install the gem using `gem install cocoapods-bugsnag-<version>.gem`
|
24
|
+
|
25
|
+
## Usage
|
26
|
+
|
27
|
+
To add the build phase to your project, add `pod 'Bugsnag'`, and `plugin 'cocoapods-bugsnag'` to your `Podfile`:
|
28
|
+
|
29
|
+
```ruby
|
30
|
+
pod 'Bugsnag'
|
31
|
+
plugin 'cocoapods-bugsnag'
|
32
|
+
```
|
33
|
+
|
34
|
+
Then, install with:
|
35
|
+
|
36
|
+
```bash
|
37
|
+
pod install
|
38
|
+
```
|
39
|
+
|
40
|
+
Once added, uploading your dSYM files to Bugsnag will occur automatically.
|
41
|
+
|
42
|
+
By default, your Bugsnag API key will either be read from the `BUGSNAG_API_KEY`
|
43
|
+
environment variable or from the `:bugsnag:apiKey` (or `BugsnagAPIKey`) value in your
|
44
|
+
`Info.plist`. Alternatively edit the script in the new "Upload Bugsnag dSYM" build
|
45
|
+
phase in Xcode.
|
46
|
+
|
47
|
+
## Support
|
48
|
+
|
49
|
+
* [Symbolication guide](https://docs.bugsnag.com/platforms/ios/symbolication-guide/)
|
50
|
+
* [Search open and closed issues](https://github.com/bugsnag/cocoapods-bugsnag/issues?utf8=✓&q=is%3Aissue)
|
51
|
+
for similar problems
|
52
|
+
* [Open an issue](https://github.com/bugsnag/cocoapods-bugsnag/issues/new)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Gem::Specification.new do |spec|
|
2
|
+
spec.name = "cocoapods-bugsnag"
|
3
|
+
spec.version = "2.2.0"
|
4
|
+
spec.homepage = "https://bugsnag.com"
|
5
|
+
spec.description = "Configures the dSYM upload phase of your project when integrated with bugsnag."
|
6
|
+
spec.summary = "To get meaningful stacktraces from your crashes, the Bugsnag service needs your dSYM file for your build. This plugin adds an upload phase to your project where needed."
|
7
|
+
spec.authors = [ "Delisa Mason" ]
|
8
|
+
spec.email = [ "delisa@bugsnag.com" ]
|
9
|
+
spec.files = [
|
10
|
+
"lib/cocoapods_bugsnag.rb",
|
11
|
+
"lib/cocoapods_plugin.rb",
|
12
|
+
"cocoapods-bugsnag.gemspec"
|
13
|
+
]
|
14
|
+
spec.extra_rdoc_files = [ "README.md", "CHANGELOG.md" ]
|
15
|
+
spec.test_files = [ "spec/cocoapods_bugsnag_spec.rb" ]
|
16
|
+
spec.require_paths = [ "lib" ]
|
17
|
+
spec.license = "MIT"
|
18
|
+
|
19
|
+
spec.add_dependency "cocoapods", "~> 1.0"
|
20
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
21
|
+
spec.add_development_dependency "bacon", "~> 1.0"
|
22
|
+
end
|
data/lib/cocoapods_bugsnag.rb
CHANGED
@@ -3,6 +3,23 @@ module Pod
|
|
3
3
|
|
4
4
|
BUGSNAG_PHASE_NAME = "Upload Bugsnag dSYM"
|
5
5
|
BUGSNAG_PHASE_SCRIPT = <<'RUBY'
|
6
|
+
api_key = nil # Insert your key here to use it directly from this script
|
7
|
+
|
8
|
+
# Attempt to get the API key from an environment variable
|
9
|
+
unless api_key
|
10
|
+
api_key = ENV["BUGSNAG_API_KEY"]
|
11
|
+
|
12
|
+
# If not present, attempt to lookup the value from the Info.plist
|
13
|
+
unless api_key
|
14
|
+
info_plist_path = "#{ENV["BUILT_PRODUCTS_DIR"]}/#{ENV["INFOPLIST_PATH"]}"
|
15
|
+
plist_buddy_response = `/usr/libexec/PlistBuddy -c "print :bugsnag:apiKey" "#{info_plist_path}"`
|
16
|
+
plist_buddy_response = `/usr/libexec/PlistBuddy -c "print :BugsnagAPIKey" "#{info_plist_path}"` if !$?.success?
|
17
|
+
api_key = plist_buddy_response if $?.success?
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
fail("No Bugsnag API key detected - add your key to your Info.plist, BUGSNAG_API_KEY environment variable or this Run Script phase") unless api_key
|
22
|
+
|
6
23
|
fork do
|
7
24
|
Process.setsid
|
8
25
|
STDIN.reopen("/dev/null")
|
@@ -12,7 +29,10 @@ fork do
|
|
12
29
|
require 'shellwords'
|
13
30
|
|
14
31
|
Dir["#{ENV["DWARF_DSYM_FOLDER_PATH"]}/*/Contents/Resources/DWARF/*"].each do |dsym|
|
15
|
-
|
32
|
+
curl_command = "curl --http1.1 -F dsym=@#{Shellwords.escape(dsym)} -F projectRoot=#{Shellwords.escape(ENV["PROJECT_DIR"])} "
|
33
|
+
curl_command += "-F apiKey=#{Shellwords.escape(api_key)} "
|
34
|
+
curl_command += "https://upload.bugsnag.com/"
|
35
|
+
system(curl_command)
|
16
36
|
end
|
17
37
|
end
|
18
38
|
RUBY
|
@@ -20,7 +40,7 @@ RUBY
|
|
20
40
|
alias_method :integrate_without_bugsnag!, :integrate!
|
21
41
|
def integrate!
|
22
42
|
integrate_without_bugsnag!
|
23
|
-
return unless
|
43
|
+
return unless should_add_build_phase?
|
24
44
|
return if bugsnag_native_targets.empty?
|
25
45
|
UI.section("Integrating with Bugsnag") do
|
26
46
|
add_bugsnag_upload_script_phase
|
@@ -42,10 +62,12 @@ RUBY
|
|
42
62
|
end
|
43
63
|
end
|
44
64
|
|
45
|
-
def
|
46
|
-
target.target_definition.dependencies.
|
65
|
+
def should_add_build_phase?
|
66
|
+
has_bugsnag_dep = target.target_definition.dependencies.any? do |dep|
|
47
67
|
dep.name.include?('Bugsnag')
|
48
|
-
end
|
68
|
+
end
|
69
|
+
uses_bugsnag_plugin = target.target_definition.podfile.plugins.key?('cocoapods-bugsnag')
|
70
|
+
return has_bugsnag_dep && uses_bugsnag_plugin
|
49
71
|
end
|
50
72
|
|
51
73
|
def bugsnag_native_targets
|
metadata
CHANGED
@@ -1,51 +1,70 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-bugsnag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delisa Mason
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cocoapods
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rake
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
|
-
- -
|
31
|
+
- - ">="
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
33
|
+
version: 12.3.3
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- -
|
38
|
+
- - ">="
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
40
|
+
version: 12.3.3
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bacon
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
45
|
+
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
47
|
+
version: '1.0'
|
34
48
|
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
|
-
- -
|
52
|
+
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
54
|
+
version: '1.0'
|
41
55
|
description: Configures the dSYM upload phase of your project when integrated with
|
42
56
|
bugsnag.
|
43
57
|
email:
|
44
58
|
- delisa@bugsnag.com
|
45
59
|
executables: []
|
46
60
|
extensions: []
|
47
|
-
extra_rdoc_files:
|
61
|
+
extra_rdoc_files:
|
62
|
+
- README.md
|
63
|
+
- CHANGELOG.md
|
48
64
|
files:
|
65
|
+
- CHANGELOG.md
|
66
|
+
- README.md
|
67
|
+
- cocoapods-bugsnag.gemspec
|
49
68
|
- lib/cocoapods_bugsnag.rb
|
50
69
|
- lib/cocoapods_plugin.rb
|
51
70
|
- spec/cocoapods_bugsnag_spec.rb
|
@@ -53,24 +72,24 @@ homepage: https://bugsnag.com
|
|
53
72
|
licenses:
|
54
73
|
- MIT
|
55
74
|
metadata: {}
|
56
|
-
post_install_message:
|
75
|
+
post_install_message:
|
57
76
|
rdoc_options: []
|
58
77
|
require_paths:
|
59
78
|
- lib
|
60
79
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
80
|
requirements:
|
62
|
-
- -
|
81
|
+
- - ">="
|
63
82
|
- !ruby/object:Gem::Version
|
64
83
|
version: '0'
|
65
84
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
85
|
requirements:
|
67
|
-
- -
|
86
|
+
- - ">="
|
68
87
|
- !ruby/object:Gem::Version
|
69
88
|
version: '0'
|
70
89
|
requirements: []
|
71
|
-
rubyforge_project:
|
72
|
-
rubygems_version: 2.
|
73
|
-
signing_key:
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.6.14
|
92
|
+
signing_key:
|
74
93
|
specification_version: 4
|
75
94
|
summary: To get meaningful stacktraces from your crashes, the Bugsnag service needs
|
76
95
|
your dSYM file for your build. This plugin adds an upload phase to your project
|