crittercism 0.1.1 → 0.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/README.md +7 -8
- data/crittercism.gemspec +1 -1
- data/lib/crittercism.rb +49 -11
- data/lib/crittercism/rake_tasks.rb +3 -41
- data/lib/crittercism/rubymotion_extensions.rb +34 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 784d6a16e59ddf0d79eba5a2f48c52810395636d
|
4
|
+
data.tar.gz: f8e6dea3fcc279336e01b8226040fa4fef7dd06e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f029423b3c6b92ebab56c912a17719ede869b1a971cd83c48b600b40d6fe1da66bbd34499d163aab6a877fd0d3ca710d33b34173d76c23ae5b0028fe477257d3
|
7
|
+
data.tar.gz: b7b52966c0ef200b24f2180ceda3e3bb044922d4b7201922e09f1c31637d40f2938d02623893917677f56a3ce3d15fdc39852d40c7a3e4a106108f94481184ff
|
data/README.md
CHANGED
@@ -49,18 +49,17 @@ end
|
|
49
49
|
Refer to the [Crittercism docs](http://docs.crittercism.com/ios/ios.html) for
|
50
50
|
information on how to use Crittercism's other features.
|
51
51
|
|
52
|
-
###
|
52
|
+
### Uploading dSYM
|
53
53
|
|
54
|
-
|
54
|
+
This gem automatically uploads your dSYM file to Crittercism on every build. To
|
55
|
+
disable dSYM upload on simulator builds, add this configuration to your Rakefile:
|
55
56
|
|
56
|
-
|
57
|
+
app.crittercism_disable_on_simulator_builds = true
|
57
58
|
|
58
|
-
|
59
|
-
|
59
|
+
If you want to manually upload your app's dSYM to Crittercism for symbolication,
|
60
|
+
you can use the following Rake task:
|
60
61
|
|
61
|
-
|
62
|
-
task :my_custom_deploy_task => ['archive:distribution', 'crittercism:upload_dsym']
|
63
|
-
```
|
62
|
+
$ rake crittercism:upload_dsym
|
64
63
|
|
65
64
|
<!--
|
66
65
|
## Development
|
data/crittercism.gemspec
CHANGED
data/lib/crittercism.rb
CHANGED
@@ -1,18 +1,56 @@
|
|
1
|
-
module
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
1
|
+
module Crittercism
|
2
|
+
def self.platform(value = nil)
|
3
|
+
@platform = value if value
|
4
|
+
@platform ||= 'iPhoneOS'
|
5
|
+
@platform
|
6
6
|
end
|
7
|
-
end
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
8
|
+
def self.upload_dsym
|
9
|
+
app_id = App.config.crittercism_app_id
|
10
|
+
api_key = App.config.crittercism_api_key
|
11
|
+
|
12
|
+
unless app_id && api_key
|
13
|
+
App.warn 'Missing Crittercism keys, skipping dSYM upload.'
|
14
|
+
return
|
15
|
+
end
|
16
|
+
|
17
|
+
if platform =~ /Simulator/ && App.config.crittercism_disable_on_simulator_builds
|
18
|
+
App.info 'Crittercism', 'Skipping dSYM upload on simulator build.'
|
19
|
+
return
|
20
|
+
end
|
21
|
+
|
22
|
+
zip_dsym!
|
23
|
+
|
24
|
+
app_dsym = App.config.app_bundle_dsym(platform)
|
25
|
+
upload_uri = "https://api.crittercism.com/api_beta/dsym/#{app_id}"
|
26
|
+
command = "/usr/bin/curl #{upload_uri}"\
|
27
|
+
" --silent --output /dev/null -w '%{http_code}'"\
|
28
|
+
" -F dsym=@'#{app_dsym}.zip'"\
|
29
|
+
" -F key='#{api_key}'"
|
30
|
+
|
31
|
+
App.info 'Crittercism', 'Uploading dSYM to Crittercism...'
|
32
|
+
output = %x[#{command}]
|
33
|
+
if output =~ /^2\d+/
|
34
|
+
App.info 'Crittercism', 'Successfully uploaded dSYM to Crittercism.'
|
35
|
+
else
|
36
|
+
p output
|
37
|
+
App.fail 'Failed to upload dSYM to Crittercism.'
|
38
|
+
end
|
12
39
|
end
|
13
40
|
|
14
|
-
|
15
|
-
|
41
|
+
def self.zip_dsym!
|
42
|
+
app_dsym = App.config.app_bundle_dsym(platform)
|
43
|
+
App.info 'Crittercism', 'Zipping dSYM file...'
|
44
|
+
App.fail "Could not find dSYM file at #{app_dsym}" unless File.exist?(app_dsym)
|
45
|
+
|
46
|
+
app_dsym_zip = app_dsym + '.zip'
|
47
|
+
if !File.exist?(app_dsym_zip) or File.mtime(app_dsym) > File.mtime(app_dsym_zip)
|
48
|
+
Dir.chdir(File.dirname(app_dsym)) do
|
49
|
+
%x[/usr/bin/zip -q -r '#{File.basename(app_dsym)}.zip' '#{File.basename(app_dsym)}']
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
16
53
|
end
|
17
54
|
|
55
|
+
require "crittercism/rubymotion_extensions"
|
18
56
|
require "crittercism/rake_tasks"
|
@@ -1,44 +1,6 @@
|
|
1
1
|
namespace :crittercism do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
'iPhoneOS'
|
6
|
-
end
|
7
|
-
|
8
|
-
def app_dsym
|
9
|
-
App.config.app_bundle(platform) + '.dSYM'
|
10
|
-
end
|
11
|
-
|
12
|
-
desc 'Zip .dSYM file'
|
13
|
-
task :zip_dsym do
|
14
|
-
puts 'Zipping dSYM file...'
|
15
|
-
raise "Could not find dSYM file at #{app_dsym}" unless File.exist?(app_dsym)
|
16
|
-
|
17
|
-
app_dsym_zip = app_dsym + '.zip'
|
18
|
-
if !File.exist?(app_dsym_zip) or File.mtime(app_dsym) > File.mtime(app_dsym_zip)
|
19
|
-
Dir.chdir(File.dirname(app_dsym)) do
|
20
|
-
sh "/usr/bin/zip -q -r '#{File.basename(app_dsym)}.zip' '#{File.basename(app_dsym)}'"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
desc 'Submit .dSYM to Crittercism'
|
26
|
-
task :upload_dsym => :zip_dsym do
|
27
|
-
puts 'Submitting dSYM to Crittercism...'
|
28
|
-
|
29
|
-
upload_uri = "https://api.crittercism.com/api_beta/dsym/#{App.config.crittercism_app_id}"
|
30
|
-
command = "/usr/bin/curl #{upload_uri}"\
|
31
|
-
" --silent --output /dev/null -w '%{http_code}'"\
|
32
|
-
" -F dsym=@'#{app_dsym}.zip'"\
|
33
|
-
" -F key='#{App.config.crittercism_api_key}'"
|
34
|
-
|
35
|
-
output = %x[#{command}]
|
36
|
-
if output =~ /^2\d+/
|
37
|
-
puts 'Successfully uploaded dSYM to Crittercism.'
|
38
|
-
else
|
39
|
-
puts 'Failed to upload dSYM to Crittercism.'
|
40
|
-
p output
|
41
|
-
exit 1
|
42
|
-
end
|
2
|
+
desc 'Upload dSYM file to Crittercism'
|
3
|
+
task :upload_dsym do
|
4
|
+
Crittercism.upload_dsym
|
43
5
|
end
|
44
6
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Crittercism
|
2
|
+
module BuilderExtensions
|
3
|
+
def build(config, platform, opts)
|
4
|
+
super
|
5
|
+
Crittercism.platform(platform)
|
6
|
+
Crittercism.upload_dsym
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module Motion
|
12
|
+
module Project
|
13
|
+
class Builder
|
14
|
+
prepend Crittercism::BuilderExtensions
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Motion
|
20
|
+
module Project
|
21
|
+
class Config
|
22
|
+
variable :crittercism_app_id, :crittercism_api_key, :crittercism_disable_on_simulator_builds
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
Motion::Project::App.setup do |app|
|
28
|
+
app.pods do
|
29
|
+
pod 'CrittercismSDK', '~> 5.4.0'
|
30
|
+
end
|
31
|
+
|
32
|
+
# TODO: add runtime support for fetching configured App ID
|
33
|
+
# app.files << 'rubymotion_lib/crittercism.rb'
|
34
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crittercism
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Havens
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: motion-cocoapods
|
@@ -85,6 +85,7 @@ files:
|
|
85
85
|
- crittercism.gemspec
|
86
86
|
- lib/crittercism.rb
|
87
87
|
- lib/crittercism/rake_tasks.rb
|
88
|
+
- lib/crittercism/rubymotion_extensions.rb
|
88
89
|
- rubymotion_lib/crittercism.rb
|
89
90
|
homepage: https://github.com/andrewhavens/crittercism
|
90
91
|
licenses:
|