pindo 4.6.9 → 4.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +75 -0
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +35 -18
  5. data/lib/pindo/base/plaininformative.rb +3 -0
  6. data/lib/pindo/base/standarderror.rb +1 -0
  7. data/lib/pindo/base/xcodeconst.rb +251 -0
  8. data/lib/pindo/client/applovinclient.rb +6 -3
  9. data/lib/pindo/client/aws3sclient.rb +33 -46
  10. data/lib/pindo/client/bossclient.rb +1 -1
  11. data/lib/pindo/client/bossconfigclient.rb +3 -3
  12. data/lib/pindo/client/pgyerclient.rb +159 -100
  13. data/lib/pindo/command/appstore/iap.rb +43 -0
  14. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  15. data/lib/pindo/command/appstore/metadata.rb +43 -0
  16. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  17. data/lib/pindo/command/appstore/upload.rb +40 -0
  18. data/lib/pindo/command/appstore.rb +17 -0
  19. data/lib/pindo/command/deploy/build.rb +109 -0
  20. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  21. data/lib/pindo/command/deploy/cert.rb +183 -0
  22. data/lib/pindo/command/deploy/configproj.rb +105 -0
  23. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  24. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  25. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  26. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  27. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  28. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  29. data/lib/pindo/command/deploy.rb +44 -0
  30. data/lib/pindo/{dev → command/dev}/autobuild.rb +28 -76
  31. data/lib/pindo/{dev → command/dev}/autoresign.rb +21 -64
  32. data/lib/pindo/command/dev/build.rb +94 -0
  33. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  34. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  35. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  36. data/lib/pindo/command/dev.rb +26 -0
  37. data/lib/pindo/command/env.rb +17 -0
  38. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +22 -70
  39. data/lib/pindo/{ipa → command/ipa}/import.rb +48 -103
  40. data/lib/pindo/{ipa → command/ipa}/output.rb +43 -135
  41. data/lib/pindo/command/ipa.rb +16 -0
  42. data/lib/pindo/{lib → command/lib}/update.rb +23 -14
  43. data/lib/pindo/command/lib.rb +16 -0
  44. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  45. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  46. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  47. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  48. data/lib/pindo/command/pgyer/resign.rb +111 -0
  49. data/lib/pindo/command/pgyer/upload.rb +123 -0
  50. data/lib/pindo/command/pgyer.rb +18 -0
  51. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  52. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  53. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  54. data/lib/pindo/command/utils/icon.rb +81 -0
  55. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  56. data/lib/pindo/command/utils.rb +26 -0
  57. data/lib/pindo/command.rb +23 -26
  58. data/lib/pindo/config/pindoconfig.rb +27 -0
  59. data/lib/pindo/module/appselect.rb +9 -8
  60. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  61. data/lib/pindo/module/cert/certhelper.rb +187 -0
  62. data/lib/pindo/module/cert/keychainhelper.rb +150 -0
  63. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  64. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  65. data/lib/pindo/module/cert/xcodecerthelper.rb +326 -0
  66. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -36
  67. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  68. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  69. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  70. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  71. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  72. data/lib/pindo/module/xcode/xcodereshelper.rb +119 -0
  73. data/lib/pindo/options/appconfigoptions.rb +1 -0
  74. data/lib/pindo/options/deployoptions.rb +38 -42
  75. data/lib/pindo/version.rb +1 -1
  76. metadata +110 -97
  77. data/lib/pindo/deploy/Fastfile +0 -233
  78. data/lib/pindo/deploy/build.rb +0 -167
  79. data/lib/pindo/deploy/cert.rb +0 -508
  80. data/lib/pindo/deploy/configproj.rb +0 -89
  81. data/lib/pindo/deploy.rb +0 -44
  82. data/lib/pindo/dev.rb +0 -23
  83. data/lib/pindo/env/flutter.rb +0 -59
  84. data/lib/pindo/env/flutter.sh +0 -116
  85. data/lib/pindo/env.rb +0 -17
  86. data/lib/pindo/ipa.rb +0 -22
  87. data/lib/pindo/lib.rb +0 -18
  88. data/lib/pindo/module/buildconfighelper.rb +0 -13
  89. data/lib/pindo/module/buildhelper.rb +0 -76
  90. data/lib/pindo/module/config_project.sh +0 -143
  91. data/lib/pindo/module/configprojhelper.rb +0 -631
  92. data/lib/pindo/module/icon_contents.json +0 -116
  93. data/lib/pindo/module/imessage_icon.json +0 -91
  94. data/lib/pindo/module/imgset_contents.json +0 -21
  95. data/lib/pindo/module/launchimg_contents.json +0 -21
  96. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  97. data/lib/pindo/pgyer/upload.rb +0 -234
  98. data/lib/pindo/pgyer.rb +0 -17
  99. data/lib/pindo/utils/icon.rb +0 -91
  100. data/lib/pindo/utils/icon.sh +0 -133
  101. data/lib/pindo/utils/podindex.rb +0 -56
  102. data/lib/pindo/utils/podindex.sh +0 -30
  103. data/lib/pindo/utils.rb +0 -29
  104. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  113. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  114. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  115. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  116. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  117. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  118. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  119. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  120. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  121. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  122. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  123. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  124. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  125. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  126. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  127. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  128. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  129. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  130. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  131. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  132. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  133. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  134. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  135. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  136. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  137. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  138. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  139. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  140. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  141. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  142. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  143. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  144. /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,119 @@
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_ori_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
+ new_imessage_icon_dir = File.join(new_icon_dir, "imessage")
87
+
88
+ if File.exist?(imessage_icon)
89
+ begin
90
+ FileUtils.mkdir_p(new_imessage_icon_dir)
91
+ rescue => e
92
+ puts e
93
+ end
94
+ create_imessage_icon(icon_name: icon_name, image_icon_name:imessage_icon, new_icon_dir: new_imessage_icon_dir, xcode_icon_json: XcodoeResConst.xcode_ios_imessage_icon_json)
95
+ end
96
+ end
97
+
98
+ def self.install_icon(proj_dir:nil, new_icon_dir:nil)
99
+ xcodeproj_file_name = Dir.glob(File.join(proj_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
100
+ xcodereshandler = XcodeResHandler.new(proj_fullname: xcodeproj_file_name)
101
+ xcodereshandler.install_icon_res(new_icon_dir: new_icon_dir)
102
+ xcodereshandler.validate_icon_res
103
+
104
+ new_imessage_icon_dir = File.join(new_icon_dir, "imessage")
105
+ if File.exist?(new_imessage_icon_dir)
106
+ xcodereshandler.install_imessage_icon_res(new_icon_dir: new_imessage_icon_dir)
107
+ xcodereshandler.validate_imessage_icon_res
108
+ end
109
+ end
110
+
111
+ def self.install_launchimg(proj_dir:nil, launchimg_filename:nil)
112
+ xcodeproj_file_name = Dir.glob(File.join(proj_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
113
+ xcodereshandler = XcodeResHandler.new(proj_fullname: xcodeproj_file_name)
114
+ xcodereshandler.install_launchimg(launchimg_file:launchimg_filename)
115
+ end
116
+
117
+ end
118
+
119
+ end
@@ -1,4 +1,5 @@
1
1
 
2
+
2
3
  module Pindo
3
4
  module AppConfigOptions
4
5
 
@@ -105,7 +105,6 @@ module Pindo
105
105
 
106
106
  def validate!
107
107
  super
108
-
109
108
  if !@args_appconfig.empty? && File::file?(@args_appconfig)
110
109
  @args_appconfig_dir=File::expand_path(File::dirname(@args_appconfig))
111
110
  @args_appconfig_fullname=File::join(@args_appconfig_dir, File::basename(@args_appconfig))
@@ -128,7 +127,7 @@ module Pindo
128
127
 
129
128
  help! 'Need input a bundle id, you may input with --a options' if @args_bundle_id.nil? && @deploy_identifier.nil?
130
129
 
131
- print_params_info()
130
+ # print_params_info()
132
131
 
133
132
  end
134
133
 
@@ -145,31 +144,6 @@ module Pindo
145
144
  args_temp << mode_flag
146
145
  end
147
146
 
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
147
  def get_confuse_type_args()
174
148
  args_temp = []
175
149
  confuse_flag = "--newconfuse"
@@ -179,6 +153,28 @@ module Pindo
179
153
  args_temp << mode_flag
180
154
  end
181
155
 
156
+ def get_bundle_id_map
157
+
158
+ dic = {
159
+ "bundle_id": @deploy_identifier.nil? ? nil : @bundle_id,
160
+ "bundle_id_pushcontent": @deploy_identifier_pushcontent.nil? ? nil : @bundle_id_pushcontent,
161
+ "bundle_id_pushservice": @deploy_identifier_pushservice.nil? ? nil : @bundle_id_pushservice,
162
+ "bundle_id_keyboard": @deploy_identifier_keyboard.nil? ? nil : @bundle_id_keyboard,
163
+ "bundle_id_imessage": @deploy_identifier_imessage.nil? ? nil : @bundle_id_imessage,
164
+ "bundle_id_extension": @deploy_identifier_extension.nil? ? nil : @bundle_id_extension,
165
+ "bundle_id_siri": @deploy_identifier_siri.nil? ? nil : @bundle_id_siri,
166
+ "bundle_id_siriui": @deploy_identifier_siriui.nil? ? nil : @bundle_id_siriui,
167
+ "bundle_id_widget": @deploy_identifier_widget.nil? ? nil : @bundle_id_widget,
168
+ "bundle_id_extensionad": @deploy_identifier_extensionad.nil? ? nil : @bundle_id_extensionad,
169
+ "bundle_id_extensionporn": @deploy_identifier_extensionporn.nil? ? nil : @bundle_id_extensionporn,
170
+ "bundle_id_watchapp": @deploy_identifier_watchapp.nil? ? nil : @bundle_id_watchapp,
171
+ "bundle_id_watchapp_extension": @deploy_identifier_watchapp_extension.nil? ? nil : @bundle_id_watchapp_extension
172
+ }
173
+ # puts dic.compact
174
+
175
+ return dic.compact
176
+ end
177
+
182
178
  def init_deploy_params()
183
179
 
184
180
  if !@config_json.nil?
@@ -276,21 +272,21 @@ module Pindo
276
272
  end
277
273
 
278
274
  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 + '.content'
283
- @bundle_id_pushservice = @bundle_id + '.service'
284
- @bundle_id_keyboard = @bundle_id + '.keyboard'
285
- @bundle_id_imessage = @bundle_id + '.imessage'
286
- @bundle_id_siri = @bundle_id + '.siri'
287
- @bundle_id_siriui = @bundle_id + '.siriui'
288
- @bundle_id_widget = @bundle_id + '.widget'
289
- @bundle_id_extension = @bundle_id + '.extension'
290
- @bundle_id_extensionad = @bundle_id + '.extensionad'
291
- @bundle_id_extensionporn = @bundle_id + '.extensionporn'
292
- @bundle_id_watchapp = @bundle_id + '.watchapp'
293
- @bundle_id_watchapp_extension = @bundle_id + '.watchapp.extension'
275
+ @bundle_id = @args_bundle_id.nil? ? @deploy_identifier : @args_bundle_id
276
+ @group_id = @deploy_group_id.nil? ? @deploy_group_id : ("group." + @bundle_id)
277
+ @icloud_id = @deploy_icloud_id.nil? ? @deploy_icloud_id : ("iCloud." + @bundle_id)
278
+ @bundle_id_pushcontent = @deploy_identifier_pushcontent.nil? ? @deploy_identifier_pushcontent : (@bundle_id+".content")
279
+ @bundle_id_pushservice = @deploy_identifier_pushservice.nil? ? @deploy_identifier_pushservice : (@bundle_id+".service")
280
+ @bundle_id_keyboard = @deploy_identifier_keyboard.nil? ? @deploy_identifier_keyboard : (@bundle_id+".keyboard")
281
+ @bundle_id_imessage = @deploy_identifier_imessage.nil? ? @deploy_identifier_imessage : (@bundle_id+".imessage")
282
+ @bundle_id_siri = @deploy_identifier_siri.nil? ? @deploy_identifier_siri : (@bundle_id+".siri")
283
+ @bundle_id_siriui = @deploy_identifier_siriui.nil? ? @deploy_identifier_siriui : (@bundle_id+".siriui")
284
+ @bundle_id_widget = @deploy_identifier_widget.nil? ? @deploy_identifier_widget : (@bundle_id+".widget")
285
+ @bundle_id_extension = @deploy_identifier_extension.nil? ? @deploy_identifier_extension : (@bundle_id+".extension")
286
+ @bundle_id_extensionad = @deploy_identifier_extensionad.nil? ? @deploy_identifier_extensionad : (@bundle_id+".extensionad")
287
+ @bundle_id_extensionporn = @deploy_identifier_extensionporn.nil? ? @deploy_identifier_extensionporn : (@bundle_id+".extensionporn")
288
+ @bundle_id_watchapp = @deploy_identifier_watchapp.nil? ? @deploy_identifier_watchapp : (@bundle_id+".watchapp")
289
+ @bundle_id_watchapp_extension = @deploy_identifier_watchapp_extension.nil? ? @deploy_identifier_watchapp_extension : (@bundle_id+".watchapp.extension")
294
290
  end
295
291
  end
296
292
 
data/lib/pindo/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Pindo
2
2
 
3
- VERSION = "4.6.9"
3
+ VERSION = "4.7.1"
4
4
 
5
5
  class VersionCheck
6
6