pindo 4.6.9 → 4.7.0

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +48 -2
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +30 -12
  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/pgyerclient.rb +78 -14
  12. data/lib/pindo/command/appstore/iap.rb +43 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  14. data/lib/pindo/command/appstore/metadata.rb +43 -0
  15. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  16. data/lib/pindo/command/appstore/upload.rb +40 -0
  17. data/lib/pindo/command/appstore.rb +17 -0
  18. data/lib/pindo/command/deploy/build.rb +109 -0
  19. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  20. data/lib/pindo/command/deploy/cert.rb +179 -0
  21. data/lib/pindo/command/deploy/configproj.rb +105 -0
  22. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  23. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  24. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  25. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  26. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  27. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  28. data/lib/pindo/command/deploy.rb +44 -0
  29. data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
  30. data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
  31. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  32. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  33. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  34. data/lib/pindo/command/dev.rb +25 -0
  35. data/lib/pindo/command/env.rb +17 -0
  36. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
  37. data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
  38. data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
  39. data/lib/pindo/command/ipa.rb +16 -0
  40. data/lib/pindo/{lib → command/lib}/update.rb +19 -10
  41. data/lib/pindo/command/lib.rb +16 -0
  42. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  43. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  44. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  45. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  46. data/lib/pindo/command/pgyer/resign.rb +111 -0
  47. data/lib/pindo/command/pgyer/upload.rb +123 -0
  48. data/lib/pindo/command/pgyer.rb +18 -0
  49. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  50. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  51. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  52. data/lib/pindo/command/utils/icon.rb +81 -0
  53. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  54. data/lib/pindo/command/utils.rb +26 -0
  55. data/lib/pindo/command.rb +23 -26
  56. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  57. data/lib/pindo/module/cert/certhelper.rb +176 -0
  58. data/lib/pindo/module/cert/keychainhelper.rb +138 -0
  59. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  60. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  61. data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
  62. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
  63. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  64. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  65. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  66. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  67. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  68. data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
  69. data/lib/pindo/options/appconfigoptions.rb +1 -0
  70. data/lib/pindo/options/deployoptions.rb +38 -41
  71. data/lib/pindo/version.rb +1 -1
  72. metadata +109 -97
  73. data/lib/pindo/deploy/Fastfile +0 -233
  74. data/lib/pindo/deploy/build.rb +0 -167
  75. data/lib/pindo/deploy/cert.rb +0 -508
  76. data/lib/pindo/deploy/configproj.rb +0 -89
  77. data/lib/pindo/deploy.rb +0 -44
  78. data/lib/pindo/dev.rb +0 -23
  79. data/lib/pindo/env/flutter.rb +0 -59
  80. data/lib/pindo/env/flutter.sh +0 -116
  81. data/lib/pindo/env.rb +0 -17
  82. data/lib/pindo/ipa.rb +0 -22
  83. data/lib/pindo/lib.rb +0 -18
  84. data/lib/pindo/module/buildconfighelper.rb +0 -13
  85. data/lib/pindo/module/buildhelper.rb +0 -76
  86. data/lib/pindo/module/config_project.sh +0 -143
  87. data/lib/pindo/module/configprojhelper.rb +0 -631
  88. data/lib/pindo/module/icon_contents.json +0 -116
  89. data/lib/pindo/module/imessage_icon.json +0 -91
  90. data/lib/pindo/module/imgset_contents.json +0 -21
  91. data/lib/pindo/module/launchimg_contents.json +0 -21
  92. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  93. data/lib/pindo/pgyer/upload.rb +0 -234
  94. data/lib/pindo/pgyer.rb +0 -17
  95. data/lib/pindo/utils/icon.rb +0 -91
  96. data/lib/pindo/utils/icon.sh +0 -133
  97. data/lib/pindo/utils/podindex.rb +0 -56
  98. data/lib/pindo/utils/podindex.sh +0 -30
  99. data/lib/pindo/utils.rb +0 -29
  100. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  101. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  102. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  103. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  104. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  113. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  114. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  115. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  116. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  117. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  118. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  119. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  120. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  121. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  122. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  123. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  124. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  125. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  126. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  127. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  128. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  129. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  130. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  131. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  132. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  133. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  134. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  135. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  136. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  137. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  138. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  139. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  140. /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
@@ -1,4 +1,5 @@
1
1
 
2
+
2
3
  module Pindo
3
4
  module AppConfigOptions
4
5
 
@@ -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 + '.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'
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
 
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.0"
4
4
 
5
5
  class VersionCheck
6
6