pindo 4.6.9 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pindo/base/aeshelper.rb +48 -2
- data/lib/pindo/base/funlog.rb +89 -0
- data/lib/pindo/base/githelper.rb +30 -12
- data/lib/pindo/base/plaininformative.rb +3 -0
- data/lib/pindo/base/standarderror.rb +1 -0
- data/lib/pindo/base/xcodeconst.rb +251 -0
- data/lib/pindo/client/applovinclient.rb +6 -3
- data/lib/pindo/client/aws3sclient.rb +33 -46
- data/lib/pindo/client/bossclient.rb +1 -1
- data/lib/pindo/client/pgyerclient.rb +78 -14
- data/lib/pindo/command/appstore/iap.rb +43 -0
- data/lib/pindo/command/appstore/itcapp.rb +41 -0
- data/lib/pindo/command/appstore/metadata.rb +43 -0
- data/lib/pindo/command/appstore/screenshots.rb +43 -0
- data/lib/pindo/command/appstore/upload.rb +40 -0
- data/lib/pindo/command/appstore.rb +17 -0
- data/lib/pindo/command/deploy/build.rb +109 -0
- data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
- data/lib/pindo/command/deploy/cert.rb +179 -0
- data/lib/pindo/command/deploy/configproj.rb +105 -0
- data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
- data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
- data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
- data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
- data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
- data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
- data/lib/pindo/command/deploy.rb +44 -0
- data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
- data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
- data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
- data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
- data/lib/pindo/command/dev/pgyercert.rb +75 -0
- data/lib/pindo/command/dev.rb +25 -0
- data/lib/pindo/command/env.rb +17 -0
- data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
- data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
- data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
- data/lib/pindo/command/ipa.rb +16 -0
- data/lib/pindo/{lib → command/lib}/update.rb +19 -10
- data/lib/pindo/command/lib.rb +16 -0
- data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
- data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
- data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
- data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
- data/lib/pindo/command/pgyer/resign.rb +111 -0
- data/lib/pindo/command/pgyer/upload.rb +123 -0
- data/lib/pindo/command/pgyer.rb +18 -0
- data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
- data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
- data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
- data/lib/pindo/command/utils/icon.rb +81 -0
- data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
- data/lib/pindo/command/utils.rb +26 -0
- data/lib/pindo/command.rb +23 -26
- data/lib/pindo/module/build/swarkhelper.rb +95 -0
- data/lib/pindo/module/cert/certhelper.rb +176 -0
- data/lib/pindo/module/cert/keychainhelper.rb +138 -0
- data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
- data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
- data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
- data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
- data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
- data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
- data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
- data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
- data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
- data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
- data/lib/pindo/options/appconfigoptions.rb +1 -0
- data/lib/pindo/options/deployoptions.rb +38 -41
- data/lib/pindo/version.rb +1 -1
- metadata +109 -97
- data/lib/pindo/deploy/Fastfile +0 -233
- data/lib/pindo/deploy/build.rb +0 -167
- data/lib/pindo/deploy/cert.rb +0 -508
- data/lib/pindo/deploy/configproj.rb +0 -89
- data/lib/pindo/deploy.rb +0 -44
- data/lib/pindo/dev.rb +0 -23
- data/lib/pindo/env/flutter.rb +0 -59
- data/lib/pindo/env/flutter.sh +0 -116
- data/lib/pindo/env.rb +0 -17
- data/lib/pindo/ipa.rb +0 -22
- data/lib/pindo/lib.rb +0 -18
- data/lib/pindo/module/buildconfighelper.rb +0 -13
- data/lib/pindo/module/buildhelper.rb +0 -76
- data/lib/pindo/module/config_project.sh +0 -143
- data/lib/pindo/module/configprojhelper.rb +0 -631
- data/lib/pindo/module/icon_contents.json +0 -116
- data/lib/pindo/module/imessage_icon.json +0 -91
- data/lib/pindo/module/imgset_contents.json +0 -21
- data/lib/pindo/module/launchimg_contents.json +0 -21
- data/lib/pindo/module/xcodebuildpre.rb +0 -258
- data/lib/pindo/pgyer/upload.rb +0 -234
- data/lib/pindo/pgyer.rb +0 -17
- data/lib/pindo/utils/icon.rb +0 -91
- data/lib/pindo/utils/icon.sh +0 -133
- data/lib/pindo/utils/podindex.rb +0 -56
- data/lib/pindo/utils/podindex.sh +0 -30
- data/lib/pindo/utils.rb +0 -29
- /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
- /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
- /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
- /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
- /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
- /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
- /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
- /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
- /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
- /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
- /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
- /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
- /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
- /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
- /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
- /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
- /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'xcodeproj'
|
3
|
+
require 'json'
|
4
|
+
require 'pindo/module/xcode/xcoderesconstant'
|
5
|
+
|
6
|
+
module Pindo
|
7
|
+
|
8
|
+
class XcodeResHandler
|
9
|
+
|
10
|
+
|
11
|
+
def self.create_icon(icon_name:nil, new_icon_dir:nil, xcode_icon_json:nil)
|
12
|
+
xcode_icon_json["images"].each do |image_data|
|
13
|
+
width,height = image_data["size"].split("x")
|
14
|
+
image_name = image_data["filename"]
|
15
|
+
iNum = image_name.split("@").last.chomp(".png").chomp("x").to_f
|
16
|
+
width = width.to_f * iNum
|
17
|
+
height = height.to_f * iNum
|
18
|
+
|
19
|
+
width = width.to_i
|
20
|
+
height = height.to_i
|
21
|
+
|
22
|
+
command = [
|
23
|
+
'sips',
|
24
|
+
'--matchTo', '/System/Library/ColorSync/Profiles/sRGB Profile.icc',
|
25
|
+
'-z', width.to_s, height.to_s,
|
26
|
+
icon_name,
|
27
|
+
'--out', File.join(new_icon_dir, image_name)
|
28
|
+
]
|
29
|
+
Executable.capture_command('sips', command, capture: :out)
|
30
|
+
|
31
|
+
# if !File.exist?(File.join(new_icon_dir, image_name))
|
32
|
+
# raise Informative, "生成icon失败!"
|
33
|
+
# end
|
34
|
+
# system("sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z #{width} #{height} #{icon_name} --out #{new_icon_dir}/#{image_name}")
|
35
|
+
end
|
36
|
+
File.open(File.join(new_icon_dir, "Contents.json"), "w") do |f|
|
37
|
+
f.write(JSON.pretty_generate(xcode_icon_json))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def self.create_imessage_icon(icon_name:nil, image_icon_name:nil, new_icon_dir:nil, xcode_icon_json:nil)
|
43
|
+
xcode_icon_json["images"].each do |image_data|
|
44
|
+
|
45
|
+
height, width = image_data["size"].split("x")
|
46
|
+
image_name = image_data["filename"]
|
47
|
+
iNum = image_name.split("@").last.chomp(".png").chomp("x").to_f
|
48
|
+
width = width.to_f * iNum
|
49
|
+
height = height.to_f * iNum
|
50
|
+
width = width.to_i
|
51
|
+
height = height.to_i
|
52
|
+
|
53
|
+
icon_ori_name = image_icon_name
|
54
|
+
if width.to_s.eql?(height.to_s)
|
55
|
+
icon_ori_name = icon_name
|
56
|
+
end
|
57
|
+
|
58
|
+
command = [
|
59
|
+
'sips',
|
60
|
+
'--matchTo', '/System/Library/ColorSync/Profiles/sRGB Profile.icc',
|
61
|
+
'-z', width.to_s, height.to_s,
|
62
|
+
icon_name,
|
63
|
+
'--out', File.join(new_icon_dir, image_name)
|
64
|
+
]
|
65
|
+
Executable.capture_command('sips', command, capture: :out)
|
66
|
+
end
|
67
|
+
|
68
|
+
File.open(File.join(new_icon_dir, "Contents.json"), "w") do |f|
|
69
|
+
f.write(JSON.pretty_generate(xcode_icon_json))
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def initialize(proj_fullname:nil)
|
74
|
+
@proj_fullname = proj_fullname
|
75
|
+
@project_obj = Xcodeproj::Project.open(proj_fullname)
|
76
|
+
end
|
77
|
+
|
78
|
+
def get_xcodeproj_icon_path
|
79
|
+
select_target = @project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application]) }.first
|
80
|
+
file_ref = select_target.resources_build_phase.files_references.select { |file| file.display_name.include?("Assets.xcassets") }.first
|
81
|
+
icon_path = File.join(file_ref.real_path,"AppIcon.appiconset")
|
82
|
+
return icon_path
|
83
|
+
end
|
84
|
+
|
85
|
+
def install_icon_res(new_icon_dir:nil)
|
86
|
+
icon_path = get_xcodeproj_icon_path
|
87
|
+
begin
|
88
|
+
FileUtils.rm_rf(icon_path)
|
89
|
+
FileUtils.mkdir_p(icon_path)
|
90
|
+
rescue StandardError => e
|
91
|
+
end
|
92
|
+
files = Dir.glob("#{new_icon_dir}/*").select { |file| File.file?(file) }
|
93
|
+
files.each do |file|
|
94
|
+
FileUtils.cp(file, icon_path)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def validate_icon_res()
|
99
|
+
icon_path = get_xcodeproj_icon_path
|
100
|
+
xcode_ios_icon_json = XcodoeResConst.xcode_ios_icon_json
|
101
|
+
xcode_ios_icon_json["images"].each do |image_data|
|
102
|
+
image_name = image_data["filename"]
|
103
|
+
if !File.exist?(File.join(icon_path, image_name))
|
104
|
+
raise Informative, "Xcode生成icon 有缺失文件:#{File.join(icon_path, image_name)}"
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def get_xcodeproj_imessage_icon_path
|
110
|
+
icon_path = nil
|
111
|
+
select_target = @project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:messages_extension]) }.first
|
112
|
+
if select_target.nil?
|
113
|
+
file_ref = select_target.resources_build_phase.files_references.select { |file| file.display_name.include?("Assets.xcassets") }.first
|
114
|
+
icon_path = File.join(file_ref.real_path,"iMessage App Icon.stickersiconset")
|
115
|
+
end
|
116
|
+
return icon_path
|
117
|
+
end
|
118
|
+
|
119
|
+
def install_imessage_icon_res(new_icon_dir:nil)
|
120
|
+
icon_path = get_xcodeproj_imessage_icon_path
|
121
|
+
begin
|
122
|
+
FileUtils.rm_rf(icon_path)
|
123
|
+
FileUtils.mkdir_p(icon_path)
|
124
|
+
rescue StandardError => e
|
125
|
+
end
|
126
|
+
|
127
|
+
files = Dir.glob("#{new_icon_dir}/*").select { |file| File.file?(file) }
|
128
|
+
files.each do |file|
|
129
|
+
FileUtils.cp(file, icon_path)
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
|
134
|
+
def validate_imessage_icon_res()
|
135
|
+
icon_path = get_xcodeproj_imessage_icon_path
|
136
|
+
xcode_ios_icon_json = XcodoeResConst.xcode_ios_imessage_icon_json
|
137
|
+
xcode_ios_icon_json["images"].each do |image_data|
|
138
|
+
image_name = image_data["filename"]
|
139
|
+
if !File.exist?(File.join(icon_path, image_name))
|
140
|
+
raise Informative, "Xcode生成icon 有缺失文件:#{File.join(icon_path, image_name)}"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
def get_xcodeproj_launchimg_path
|
146
|
+
|
147
|
+
launchimg_path = nil
|
148
|
+
select_target = @project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application]) }.first
|
149
|
+
file_ref = select_target.resources_build_phase.files_references.select { |file| file.display_name.include?("Assets.xcassets") }.first
|
150
|
+
|
151
|
+
assets_path = file_ref.real_path
|
152
|
+
if File.exist?(File.join(assets_path, "LaunchImage.imageset"))
|
153
|
+
launchimg_path = File.join(assets_path, "LaunchImage.imageset")
|
154
|
+
else
|
155
|
+
launchimg_path = File.join(assets_path, "LaunchImage.launchimage")
|
156
|
+
end
|
157
|
+
|
158
|
+
return launchimg_path
|
159
|
+
end
|
160
|
+
|
161
|
+
def install_launchimg(launchimg_file:nil)
|
162
|
+
|
163
|
+
|
164
|
+
xcodeproj_launchimg_path = get_xcodeproj_launchimg_path
|
165
|
+
if xcodeproj_launchimg_path.nil? || !File.exist?(xcodeproj_launchimg_path)
|
166
|
+
return
|
167
|
+
end
|
168
|
+
|
169
|
+
project_origin_launchimg = Dir.glob(File.join(xcodeproj_launchimg_path, "/*.png")).max_by {|f| File.mtime(f)}
|
170
|
+
|
171
|
+
if project_origin_launchimg.nil? || !File.exist?(project_origin_launchimg)
|
172
|
+
return
|
173
|
+
end
|
174
|
+
|
175
|
+
if File.exist?(project_origin_launchimg) && !File.exist?(launchimg_file)
|
176
|
+
raise Informative, "缺少启动文件:#{launchimg_file}"
|
177
|
+
end
|
178
|
+
|
179
|
+
begin
|
180
|
+
FileUtils.rm_rf(xcodeproj_launchimg_path)
|
181
|
+
FileUtils.mkdir_p(xcodeproj_launchimg_path)
|
182
|
+
rescue StandardError => e
|
183
|
+
end
|
184
|
+
|
185
|
+
launch_json = XcodoeResConst.xcode_ios_launchimg_json
|
186
|
+
file_name = launch_json["images"].select { |image| image["scale"].include?("2x") }.first["filename"]
|
187
|
+
xcode_launchimg_name = File.join(xcodeproj_launchimg_path, file_name)
|
188
|
+
FileUtils.cp(launchimg_file, xcode_launchimg_name)
|
189
|
+
|
190
|
+
File.open(File.join(xcodeproj_launchimg_path, "Contents.json"), "w") do |f|
|
191
|
+
f.write(JSON.pretty_generate(launch_json))
|
192
|
+
end
|
193
|
+
|
194
|
+
end
|
195
|
+
|
196
|
+
end
|
197
|
+
|
198
|
+
end
|
@@ -0,0 +1,120 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'xcodeproj'
|
3
|
+
require 'json'
|
4
|
+
require 'pindo/module/xcode/xcodereshandler'
|
5
|
+
|
6
|
+
module Pindo
|
7
|
+
|
8
|
+
module XcodeResHelper
|
9
|
+
def self.create_icon(icon_name:nil, new_icon_dir:nil, xcode_icon_json:nil)
|
10
|
+
if !File.exist?(icon_name)
|
11
|
+
raise Informative, "文件不存在:#{icon_name}"
|
12
|
+
end
|
13
|
+
xcode_icon_json["images"].each do |image_data|
|
14
|
+
width,height = image_data["size"].split("x")
|
15
|
+
image_name = image_data["filename"]
|
16
|
+
iNum = image_name.split("@").last.chomp(".png").chomp("x").to_f
|
17
|
+
width = width.to_f * iNum
|
18
|
+
height = height.to_f * iNum
|
19
|
+
|
20
|
+
width = width.to_i
|
21
|
+
height = height.to_i
|
22
|
+
|
23
|
+
command = [
|
24
|
+
'sips',
|
25
|
+
'--matchTo', '/System/Library/ColorSync/Profiles/sRGB Profile.icc',
|
26
|
+
'-z', width.to_s, height.to_s,
|
27
|
+
icon_name,
|
28
|
+
'--out', File.join(new_icon_dir, image_name)
|
29
|
+
]
|
30
|
+
Executable.capture_command('sips', command, capture: :out)
|
31
|
+
|
32
|
+
# if !File.exist?(File.join(new_icon_dir, image_name))
|
33
|
+
# raise Informative, "生成icon失败!"
|
34
|
+
# end
|
35
|
+
# system("sips --matchTo '/System/Library/ColorSync/Profiles/sRGB Profile.icc' -z #{width} #{height} #{icon_name} --out #{new_icon_dir}/#{image_name}")
|
36
|
+
end
|
37
|
+
File.open(File.join(new_icon_dir, "Contents.json"), "w") do |f|
|
38
|
+
f.write(JSON.pretty_generate(xcode_icon_json))
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
def self.create_imessage_icon(icon_name:nil, image_icon_name:nil, new_icon_dir:nil, xcode_icon_json:nil)
|
44
|
+
if !File.exist?(icon_name) || !File.exist?(image_icon_name)
|
45
|
+
raise Informative, "文件不存在:#{image_icon_name} or #{icon_name}"
|
46
|
+
end
|
47
|
+
xcode_icon_json["images"].each do |image_data|
|
48
|
+
|
49
|
+
height, width = image_data["size"].split("x")
|
50
|
+
image_name = image_data["filename"]
|
51
|
+
iNum = image_name.split("@").last.chomp(".png").chomp("x").to_f
|
52
|
+
width = width.to_f * iNum
|
53
|
+
height = height.to_f * iNum
|
54
|
+
width = width.to_i
|
55
|
+
height = height.to_i
|
56
|
+
|
57
|
+
icon_ori_name = image_icon_name
|
58
|
+
if width.to_s.eql?(height.to_s)
|
59
|
+
icon_ori_name = icon_name
|
60
|
+
end
|
61
|
+
|
62
|
+
command = [
|
63
|
+
'sips',
|
64
|
+
'--matchTo', '/System/Library/ColorSync/Profiles/sRGB Profile.icc',
|
65
|
+
'-z', width.to_s, height.to_s,
|
66
|
+
icon_name,
|
67
|
+
'--out', File.join(new_icon_dir, image_name)
|
68
|
+
]
|
69
|
+
Executable.capture_command('sips', command, capture: :out)
|
70
|
+
end
|
71
|
+
|
72
|
+
File.open(File.join(new_icon_dir, "Contents.json"), "w") do |f|
|
73
|
+
f.write(JSON.pretty_generate(xcode_icon_json))
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def self.create_icons(icon_name:nil, new_icon_dir:nil)
|
78
|
+
begin
|
79
|
+
FileUtils.mkdir_p(new_icon_dir)
|
80
|
+
rescue => e
|
81
|
+
puts e
|
82
|
+
end
|
83
|
+
create_icon(icon_name: icon_name, new_icon_dir: new_icon_dir, xcode_icon_json: XcodoeResConst.xcode_ios_icon_json)
|
84
|
+
icon_dir = File.dirname(icon_name)
|
85
|
+
imessage_icon = File.join(icon_dir, "icon1024_768.png")
|
86
|
+
|
87
|
+
new_imessage_icon_dir = File.join(new_icon_dir, "imessage")
|
88
|
+
|
89
|
+
if File.exist?(imessage_icon)
|
90
|
+
begin
|
91
|
+
FileUtils.mkdir_p(new_imessage_icon_dir)
|
92
|
+
rescue => e
|
93
|
+
puts e
|
94
|
+
end
|
95
|
+
create_imessage_icon(icon_name: imessage_icon, image_icon_name:imessage_icon, new_icon_dir: new_imessage_icon_dir, xcode_icon_json: XcodoeResConst.xcode_ios_imessage_icon_json)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def self.install_icon(proj_dir:nil, new_icon_dir:nil)
|
100
|
+
xcodeproj_file_name = Dir.glob(File.join(proj_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
101
|
+
xcodereshandler = XcodeResHandler.new(proj_fullname: xcodeproj_file_name)
|
102
|
+
xcodereshandler.install_icon_res(new_icon_dir: new_icon_dir)
|
103
|
+
xcodereshandler.validate_icon_res
|
104
|
+
|
105
|
+
new_imessage_icon_dir = File.join(new_icon_dir, "imessage")
|
106
|
+
if File.exist?(new_imessage_icon_dir)
|
107
|
+
xcodereshandler.install_imessage_icon_res(new_icon_dir: new_imessage_icon_dir)
|
108
|
+
xcodereshandler.validate_imessage_icon_res
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def self.install_launchimg(proj_dir:nil, launchimg_filename:nil)
|
113
|
+
xcodeproj_file_name = Dir.glob(File.join(proj_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
114
|
+
xcodereshandler = XcodeResHandler.new(proj_fullname: xcodeproj_file_name)
|
115
|
+
xcodereshandler.install_launchimg(launchimg_file:launchimg_filename)
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
@@ -128,7 +128,7 @@ module Pindo
|
|
128
128
|
|
129
129
|
help! 'Need input a bundle id, you may input with --a options' if @args_bundle_id.nil? && @deploy_identifier.nil?
|
130
130
|
|
131
|
-
print_params_info()
|
131
|
+
# print_params_info()
|
132
132
|
|
133
133
|
end
|
134
134
|
|
@@ -145,31 +145,6 @@ module Pindo
|
|
145
145
|
args_temp << mode_flag
|
146
146
|
end
|
147
147
|
|
148
|
-
def get_modify_bundleid_args()
|
149
|
-
|
150
|
-
args_temp = []
|
151
|
-
|
152
|
-
unless @apple_id.eql?(pindo_single_config.demo_apple_id)
|
153
|
-
@args_apple_id = pindo_single_config.demo_apple_id
|
154
|
-
args_temp << "--u=#{@args_apple_id}"
|
155
|
-
end
|
156
|
-
|
157
|
-
unless @apple_id.eql?(pindo_single_config.demo_apple_id) && @apple_id.eql?(@deploy_acount_id)
|
158
|
-
if @args_bundle_id.nil? || @args_bundle_id.empty?
|
159
|
-
@args_bundle_id = pindo_single_config.demo_bundle_id
|
160
|
-
args_temp << "--a=#{@args_bundle_id}"
|
161
|
-
else
|
162
|
-
args_temp << "--a=#{@args_bundle_id}"
|
163
|
-
end
|
164
|
-
end
|
165
|
-
|
166
|
-
unless @deploy_repo_name.nil?
|
167
|
-
args_temp << "--repo=#{@deploy_repo_name}"
|
168
|
-
end
|
169
|
-
|
170
|
-
return args_temp
|
171
|
-
end
|
172
|
-
|
173
148
|
def get_confuse_type_args()
|
174
149
|
args_temp = []
|
175
150
|
confuse_flag = "--newconfuse"
|
@@ -179,6 +154,28 @@ module Pindo
|
|
179
154
|
args_temp << mode_flag
|
180
155
|
end
|
181
156
|
|
157
|
+
def get_bundle_id_map
|
158
|
+
|
159
|
+
dic = {
|
160
|
+
"bundle_id": @deploy_identifier.nil? ? nil : @bundle_id,
|
161
|
+
"bundle_id_pushcontent": @deploy_identifier_pushcontent.nil? ? nil : @bundle_id_pushcontent,
|
162
|
+
"bundle_id_pushservice": @deploy_identifier_pushservice.nil? ? nil : @bundle_id_pushservice,
|
163
|
+
"bundle_id_keyboard": @deploy_identifier_keyboard.nil? ? nil : @bundle_id_keyboard,
|
164
|
+
"bundle_id_imessage": @deploy_identifier_imessage.nil? ? nil : @bundle_id_imessage,
|
165
|
+
"bundle_id_extension": @deploy_identifier_extension.nil? ? nil : @bundle_id_extension,
|
166
|
+
"bundle_id_siri": @deploy_identifier_siri.nil? ? nil : @bundle_id_siri,
|
167
|
+
"bundle_id_siriui": @deploy_identifier_siriui.nil? ? nil : @bundle_id_siriui,
|
168
|
+
"bundle_id_widget": @deploy_identifier_widget.nil? ? nil : @bundle_id_widget,
|
169
|
+
"bundle_id_extensionad": @deploy_identifier_extensionad.nil? ? nil : @bundle_id_extensionad,
|
170
|
+
"bundle_id_extensionporn": @deploy_identifier_extensionporn.nil? ? nil : @bundle_id_extensionporn,
|
171
|
+
"bundle_id_watchapp": @deploy_identifier_watchapp.nil? ? nil : @bundle_id_watchapp,
|
172
|
+
"bundle_id_watchapp_extension": @deploy_identifier_watchapp_extension.nil? ? nil : @bundle_id_watchapp_extension
|
173
|
+
}
|
174
|
+
# puts dic.compact
|
175
|
+
|
176
|
+
return dic.compact
|
177
|
+
end
|
178
|
+
|
182
179
|
def init_deploy_params()
|
183
180
|
|
184
181
|
if !@config_json.nil?
|
@@ -276,21 +273,21 @@ module Pindo
|
|
276
273
|
end
|
277
274
|
|
278
275
|
unless @args_bundle_id.nil?
|
279
|
-
@bundle_id = @args_bundle_id
|
280
|
-
@group_id = "group." + @bundle_id
|
281
|
-
@icloud_id = "iCloud." + @bundle_id
|
282
|
-
@bundle_id_pushcontent = @bundle_id
|
283
|
-
@bundle_id_pushservice = @bundle_id
|
284
|
-
@bundle_id_keyboard = @bundle_id
|
285
|
-
@bundle_id_imessage = @bundle_id
|
286
|
-
@bundle_id_siri = @bundle_id
|
287
|
-
@bundle_id_siriui = @bundle_id
|
288
|
-
@bundle_id_widget = @bundle_id
|
289
|
-
@bundle_id_extension = @bundle_id
|
290
|
-
@bundle_id_extensionad = @bundle_id
|
291
|
-
@bundle_id_extensionporn = @bundle_id
|
292
|
-
@bundle_id_watchapp = @bundle_id
|
293
|
-
@bundle_id_watchapp_extension = @bundle_id
|
276
|
+
@bundle_id = @args_bundle_id.nil? ? @deploy_identifier : @args_bundle_id
|
277
|
+
@group_id = @deploy_group_id.nil? ? @deploy_group_idnil : ("group." + @bundle_id)
|
278
|
+
@icloud_id = @deploy_icloud_id.nil? ? @deploy_icloud_id : ("iCloud." + @bundle_id)
|
279
|
+
@bundle_id_pushcontent = @deploy_identifier_pushcontent.nil? ? @deploy_identifier_pushcontent : (@bundle_id+".content")
|
280
|
+
@bundle_id_pushservice = @deploy_identifier_pushservice.nil? ? @deploy_identifier_pushservice : (@bundle_id+".service")
|
281
|
+
@bundle_id_keyboard = @deploy_identifier_keyboard.nil? ? @deploy_identifier_keyboard : (@bundle_id+".keyboard")
|
282
|
+
@bundle_id_imessage = @deploy_identifier_imessage.nil? ? @deploy_identifier_imessage : (@bundle_id+".imessage")
|
283
|
+
@bundle_id_siri = @deploy_identifier_siri.nil? ? @deploy_identifier_siri : (@bundle_id+".siri")
|
284
|
+
@bundle_id_siriui = @deploy_identifier_siriui.nil? ? @deploy_identifier_siriui : (@bundle_id+".siriui")
|
285
|
+
@bundle_id_widget = @deploy_identifier_widget.nil? ? @deploy_identifier_widget : (@bundle_id+".widget")
|
286
|
+
@bundle_id_extension = @deploy_identifier_extension.nil? ? @deploy_identifier_extension : (@bundle_id+".extension")
|
287
|
+
@bundle_id_extensionad = @deploy_identifier_extensionad.nil? ? @deploy_identifier_extensionad : (@bundle_id+".extensionad")
|
288
|
+
@bundle_id_extensionporn = @deploy_identifier_extensionporn.nil? ? @deploy_identifier_extensionporn : (@bundle_id+".extensionporn")
|
289
|
+
@bundle_id_watchapp = @deploy_identifier_watchapp.nil? ? @deploy_identifier_watchapp : (@bundle_id+".watchapp")
|
290
|
+
@bundle_id_watchapp_extension = @deploy_identifier_watchapp_extension.nil? ? @deploy_identifier_watchapp_extension : (@bundle_id+".watchapp.extension")
|
294
291
|
end
|
295
292
|
end
|
296
293
|
|