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 +8 -0
- data/bin/unigunkan +17 -0
- data/lib/unigunkan/modifier.rb +11 -0
- data/lib/unigunkan/processor.rb +36 -0
- data/lib/unigunkan/version.rb +1 -1
- metadata +2 -2
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
|
data/lib/unigunkan/modifier.rb
CHANGED
@@ -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
|
data/lib/unigunkan/processor.rb
CHANGED
@@ -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
|
data/lib/unigunkan/version.rb
CHANGED
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.
|
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-
|
12
|
+
date: 2013-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Designed for Unity based projects.
|
15
15
|
email:
|