unigunkan 0.0.11 → 0.0.12

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.
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: