unigunkan 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -36,6 +36,14 @@ Add folder references,
36
36
  $ unigunkan /path/to/project/Unity-iPhone.xcodeproj --integrate-testflight-sdk\
37
37
  --testflight-sdk ~/Downloads/testflight --testflight-application-token 12345-abc-123
38
38
  ````
39
+
40
+ To enable remote logging, specify `--testflight-enable-remote-logging`
41
+
42
+ ````
43
+ $ unigunkan /path/to/project/Unity-iPhone.xcodeproj --integrate-testflight-sdk\
44
+ --testflight-sdk ~/Downloads/testflight --testflight-application-token 12345-abc-123\
45
+ --testflight-enable-remote-logging
46
+ ````
39
47
 
40
48
  ## Contributing
41
49
 
data/bin/unigunkan CHANGED
@@ -14,6 +14,9 @@ opt.on('--testflight-sdk VAL') {|v| OPTS[:testflight_sdk] = v}
14
14
  opt.on('--testflight-application-token VAL') {|v| OPTS[:testflight_application_token] = v}
15
15
  opt.on('--testflight-enable-remote-logging') {|v| OPTS[:testflight_enable_remote_logging] = v}
16
16
  opt.on('--enable-objc-exceptions') {|v| OPTS[:enable_objc_exceptions] = v}
17
+ opt.on('--integrate-crashlytics-sdk') {|v| OPTS[:integrate_crashlytics_sdk] = v}
18
+ opt.on('--crashlytics-sdk VAL') {|v| OPTS[:crashlytics_sdk] = v}
19
+ opt.on('--crashlytics-token VAL') {|v| OPTS[:crashlytics_token] = v}
17
20
  opt.parse!(ARGV)
18
21
 
19
22
  input = ARGV[0]
@@ -41,6 +44,16 @@ if backup_confirmed != true
41
44
  exit false
42
45
  end
43
46
 
47
+
48
+ if OPTS[:integrate_crashlytics_sdk] == true
49
+ if OPTS[:crashlytics_sdk] == nil || OPTS[:crashlytics_token] == nil
50
+ STDERR.puts "To integrate Crashlytics sdk, please set params below."
51
+ STDERR.puts "--crashlytics-sdk /path/to/sdk"
52
+ STDERR.puts "--crashlytics-token 123456"
53
+ exit false
54
+ end
55
+ end
56
+
44
57
  if OPTS[:integrate_testflight_sdk] == true
45
58
  if OPTS[:testflight_sdk] == nil || OPTS[:testflight_application_token] == nil
46
59
  STDERR.puts "To integrate testflight sdk, please set params below."
@@ -56,6 +69,10 @@ processor.disable_retina_4inch_support if disable_retina_4inch_support
56
69
  processor.enable_objc_exceptions if OPTS[:enable_objc_exceptions]
57
70
  processor.add_folder_refs
58
71
 
72
+ if OPTS[:integrate_crashlytics_sdk] == true
73
+ processor.integrate_crashlytics_sdk OPTS[:crashlytics_sdk], OPTS[:crashlytics_token]
74
+ end
75
+
59
76
  if OPTS[:integrate_testflight_sdk] == true
60
77
  processor.integrate_testflight_sdk OPTS[:testflight_sdk], OPTS[:testflight_application_token], OPTS[:testflight_enable_remote_logging]
61
78
  end
@@ -31,4 +31,15 @@ class Modifier
31
31
  def self.add_block_after(src, line, block)
32
32
  src.gsub(line, line + "\n" + block)
33
33
  end
34
+
35
+ def self.add_shell_script(src, script, uuid)
36
+ target = "/* Begin PBXShellScriptBuildPhase section */\n"
37
+ shell_script = uuid + " /* ShellScript */ = {\nisa = PBXShellScriptBuildPhase;\nbuildActionMask = 2147483647;\nfiles = (\n);\ninputPaths = (\n);\noutputPaths = (\n);\n
38
+ runOnlyForDeploymentPostprocessing = 0;\nshellPath = /bin/sh;\nshellScript = \"" + script + "\";\n};\n"
39
+ src.gsub!(target, target + shell_script)
40
+
41
+ target = " /* Frameworks */,\n\t\t\t);"
42
+ build_phases = " /* Frameworks */,\n\t\t\t" + uuid + " /* ShellScript */,\n\t\t\t);"
43
+ src.gsub!(target, build_phases)
44
+ end
34
45
  end
@@ -118,6 +118,13 @@ class Unigunkan::Processor
118
118
  @src = Modifier.add_framework_build_phase(@src, fileref.build_file.key)
119
119
  @src = Modifier.add_library_search_paths(@src, "\"\\\"#{path}\\\"\",")
120
120
  @src = Modifier.add_file_to_tree(@src, fileref.key + ",")
121
+ when "framework"
122
+ fileref = FileRef.new({name: library, last_known_type: "wrapper.framework", path: "#{path}/#{library}", source_tree: "\"<group>\""})
123
+ @src = Modifier.add_build_files(@src, fileref.build_file.to_s)
124
+ @src = Modifier.add_file_ref(@src, fileref.to_s)
125
+ @src = Modifier.add_framework_build_phase(@src, fileref.build_file.key)
126
+ @src = Modifier.add_library_search_paths(@src, "\"\\\"#{path}\\\"\",")
127
+ @src = Modifier.add_file_to_tree(@src, fileref.key + ",")
121
128
  else
122
129
  puts "Unsupported: #{library}"
123
130
  end
@@ -152,6 +159,35 @@ class Unigunkan::Processor
152
159
  File.write(app_controller_file, app_controller)
153
160
  end
154
161
 
162
+ def integrate_crashlytics_sdk(sdk_path, token)
163
+ puts "Integrate Crashlytics SDK #{sdk_path}, #{token}"
164
+ link_library "Crashlytics.framework", sdk_path
165
+
166
+ # Insert header in AppController
167
+ app_controller_file = File.expand_path(@proj_file + "/../../Classes/AppController.mm")
168
+ app_controller = File.read(app_controller_file)
169
+
170
+ target = "#import \"AppController.h\""
171
+ app_controller.gsub!(target, target + "\n#import <Crashlytics/Crashlytics.h>")
172
+
173
+ # Insert some codes in AppController
174
+ target = "- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions\n{"
175
+ app_controller.gsub!(target, target + "\n[Crashlytics startWithAPIKey:@\"#{token}\"];\n")
176
+
177
+ File.write(app_controller_file, app_controller)
178
+
179
+ # Insert build script
180
+ shell_script = "#{sdk_path}/Crashlytics.framework/run #{token}"
181
+
182
+ Modifier.add_shell_script(@src, shell_script, new_uuid)
183
+
184
+ # Insert framework search path
185
+ add_block_after "buildSettings = {", "FRAMEWORK_SEARCH_PATHS = #{sdk_path};"
186
+
187
+ # Modify debug infomation format
188
+ @src.gsub!("DEBUG_INFORMATION_FORMAT = dwarf;", "DEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";")
189
+ end
190
+
155
191
  def enable_objc_exceptions
156
192
  add_block_after "buildSettings = {", "GCC_ENABLE_OBJC_EXCEPTIONS = YES;"
157
193
  end
@@ -1,3 +1,3 @@
1
1
  module Unigunkan
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unigunkan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-09 00:00:00.000000000 Z
12
+ date: 2013-01-16 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Designed for Unity based projects.
15
15
  email: