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