Module: Crittercism

Defined in:
lib/crittercism.rb,
lib/crittercism/rubymotion_extensions.rb

Defined Under Namespace

Modules: BuilderExtensions

Class Method Summary collapse

Class Method Details

.platform(value = nil) ⇒ Object



2
3
4
5
6
# File 'lib/crittercism.rb', line 2

def self.platform(value = nil)
  @platform = value if value
  @platform ||= 'iPhoneOS'
  @platform
end

.upload_dsymObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/crittercism.rb', line 8

def self.upload_dsym
  app_id = App.config.crittercism_app_id
  api_key = App.config.crittercism_api_key

  unless app_id && api_key
    App.warn 'Missing Crittercism keys, skipping dSYM upload.'
    return
  end

  if platform =~ /Simulator/ && App.config.crittercism_disable_on_simulator_builds
    App.info 'Crittercism', 'Skipping dSYM upload on simulator build.'
    return
  end

  zip_dsym!

  app_dsym = App.config.app_bundle_dsym(platform)
  upload_uri = "https://api.crittercism.com/api_beta/dsym/#{app_id}"
  command = "/usr/bin/curl #{upload_uri}"\
               " --silent --output /dev/null -w '%{http_code}'"\
               " -F dsym=@'#{app_dsym}.zip'"\
               " -F key='#{api_key}'"

  App.info 'Crittercism', 'Uploading dSYM to Crittercism...'
  output = %x[#{command}]
  if output =~ /^2\d+/
    App.info 'Crittercism', 'Successfully uploaded dSYM to Crittercism.'
  else
    p output
    App.fail 'Failed to upload dSYM to Crittercism.'
  end
end

.zip_dsym!Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/crittercism.rb', line 41

def self.zip_dsym!
  app_dsym = App.config.app_bundle_dsym(platform)
  App.info 'Crittercism', 'Zipping dSYM file...'
  App.fail "Could not find dSYM file at #{app_dsym}" unless File.exist?(app_dsym)

  app_dsym_zip = app_dsym + '.zip'
  if !File.exist?(app_dsym_zip) or File.mtime(app_dsym) > File.mtime(app_dsym_zip)
    Dir.chdir(File.dirname(app_dsym)) do
      %x[/usr/bin/zip -q -r '#{File.basename(app_dsym)}.zip' '#{File.basename(app_dsym)}']
    end
  end
end