pindo 4.7.1 → 4.7.3
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 +4 -5
- data/lib/pindo/base/githelper.rb +0 -1
- data/lib/pindo/client/aws3sclient.rb +2 -2
- data/lib/pindo/client/giteeclient.rb +2 -2
- data/lib/pindo/command/appstore/iap.rb +1 -1
- data/lib/pindo/command/deploy/build.rb +70 -4
- data/lib/pindo/command/deploy/cert.rb +48 -51
- data/lib/pindo/command/deploy/iap.rb +2 -4
- data/lib/pindo/command/{utils → dev}/applovin.rb +2 -2
- data/lib/pindo/command/dev/autobuild.rb +6 -9
- data/lib/pindo/command/dev/autoresign.rb +10 -10
- data/lib/pindo/command/dev/build.rb +5 -5
- data/lib/pindo/command/dev.rb +2 -6
- data/lib/pindo/command/ipa/autoresign.rb +0 -1
- data/lib/pindo/command/ipa/import.rb +44 -8
- data/lib/pindo/command/ipa/output.rb +2 -2
- data/lib/pindo/command/pgyer/download.rb +2 -2
- data/lib/pindo/command/pgyer/resign.rb +21 -19
- data/lib/pindo/command/pgyer/upload.rb +34 -6
- data/lib/pindo/command/utils/renewcert.rb +158 -0
- data/lib/pindo/command/utils.rb +1 -1
- data/lib/pindo/module/appstore/appstore_in_app_purchase.rb +239 -169
- data/lib/pindo/module/cert/certhelper.rb +18 -23
- data/lib/pindo/module/cert/xcodecerthelper.rb +37 -3
- data/lib/pindo/module/pgyer/pgyerhelper.rb +36 -11
- data/lib/pindo/module/xcode/xcodeappconfig.rb +5 -4
- data/lib/pindo/module/xcode/xcodebuildhelper.rb +40 -37
- data/lib/pindo/module/xcode/xcodereshandler.rb +40 -12
- data/lib/pindo/version.rb +1 -1
- metadata +6 -6
- data/lib/pindo/command/dev/renewcert.rb +0 -142
@@ -13,7 +13,7 @@ module Pindo
|
|
13
13
|
self.summary = '获取pgyer中指定app的测试链接和二维码'
|
14
14
|
|
15
15
|
self.description = <<-DESC
|
16
|
-
获取pgyer中指定app的测试链接和二维码,终端运行:pindo pgyer
|
16
|
+
获取pgyer中指定app的测试链接和二维码,终端运行:pindo pgyer resign
|
17
17
|
DESC
|
18
18
|
|
19
19
|
self.arguments = [
|
@@ -23,10 +23,10 @@ module Pindo
|
|
23
23
|
def self.options
|
24
24
|
[
|
25
25
|
['--login', '强制再次登录pgyer网站'],
|
26
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo pgyer
|
27
|
-
['--list', '列出上传记录并选择,用法:pindo pgyer
|
28
|
-
['--send', '上传到之后是否发送测试信息,用法:pindo pgyer
|
29
|
-
['--
|
26
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符),用法:pindo pgyer resign --proj=prancksoundv4'],
|
27
|
+
['--list', '列出上传记录并选择,用法:pindo pgyer resign --list'],
|
28
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo pgyer resign --send'],
|
29
|
+
['--certid', '设置重签名的正式id,用法:pindo pgyer resign --resignid=com.test.bundleid'],
|
30
30
|
].concat(super)
|
31
31
|
end
|
32
32
|
|
@@ -37,7 +37,8 @@ module Pindo
|
|
37
37
|
@args_list_flag = argv.flag?('list', false)
|
38
38
|
@args_send_flag = argv.flag?('send', false)
|
39
39
|
@args_proj_name = argv.option('proj')
|
40
|
-
|
40
|
+
|
41
|
+
@args_cert_id = argv.option('certid')
|
41
42
|
|
42
43
|
super(argv)
|
43
44
|
@additional_args = argv.remainder!
|
@@ -56,34 +57,34 @@ module Pindo
|
|
56
57
|
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
57
58
|
end
|
58
59
|
|
59
|
-
|
60
|
+
|
60
61
|
version_item_obj = PgyerHelper.share_instace.get_versioon_history_item(app_info_obj:app_info_obj, list_select_flat:@args_list_flag)
|
61
62
|
|
62
63
|
if version_item_obj.nil?
|
63
64
|
raise Informative, "没有找到上传记录"
|
64
65
|
end
|
65
|
-
|
66
|
+
|
66
67
|
cert_List = PgyerHelper.share_instace.get_cert_list()
|
67
|
-
|
68
|
+
|
68
69
|
if cert_List.nil? || cert_List.empty?
|
69
70
|
raise Informative, "没有找到上传记录"
|
70
71
|
end
|
71
72
|
|
72
|
-
if @
|
73
|
+
if @args_cert_id.nil? && cert_List.size > 0
|
73
74
|
|
74
75
|
bundle_id_list = cert_List.map { |cert| [cert["certType"],cert["mainBundleId"]].join("_") }
|
75
76
|
cli = HighLine.new
|
76
|
-
@
|
77
|
-
menu.prompt = "
|
77
|
+
@args_cert_id = cli.choose do |menu|
|
78
|
+
menu.prompt = "请选择重签名的证书:"
|
78
79
|
menu.choices(*bundle_id_list)
|
79
80
|
end
|
80
|
-
|
81
|
-
cert_item = cert_List.select{|
|
81
|
+
|
82
|
+
cert_item = cert_List.select{|certitem| [certitem["certType"],certitem["mainBundleId"]].join("_") == @args_cert_id}.first
|
82
83
|
else
|
83
|
-
cert_item = cert_List.select{|
|
84
|
+
cert_item = cert_List.select{|certitem| certitem["mainBundleId"] == @args_cert_id && certitem["certType"].downcase.include?("adhoc")}.first
|
84
85
|
end
|
85
86
|
|
86
|
-
|
87
|
+
|
87
88
|
|
88
89
|
result = PgyerHelper.share_instace.resign(version_id:version_item_obj["id"], cert_id:cert_item["id"])
|
89
90
|
|
@@ -95,12 +96,13 @@ module Pindo
|
|
95
96
|
end
|
96
97
|
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:version_item_obj)
|
97
98
|
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
98
|
-
|
99
|
-
|
99
|
+
|
100
|
+
if @args_send_flag
|
101
|
+
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data, wechat_url:app_info_obj["prodWeComUrl"])
|
100
102
|
end
|
101
103
|
end
|
102
104
|
|
103
|
-
|
105
|
+
|
104
106
|
|
105
107
|
end
|
106
108
|
|
@@ -16,7 +16,7 @@ module Pindo
|
|
16
16
|
self.summary = '上传ipa包到pgyer测试网站'
|
17
17
|
|
18
18
|
self.description = <<-DESC
|
19
|
-
上传ipa包到pgyer。用法:例如:pindo pgyer upload path/to/demo.ipa
|
19
|
+
上传ipa包到pgyer。用法:例如:pindo pgyer upload path/to/demo.ipa
|
20
20
|
DESC
|
21
21
|
|
22
22
|
self.arguments = [
|
@@ -31,6 +31,8 @@ module Pindo
|
|
31
31
|
['--attach', '指定需要和ipa一起上传的附件: pindo pgyer upload --attach=path/to/attach.zip'],
|
32
32
|
['--send', '上传到之后是否发送测试信息,用法:pindo pgyer upload --send'],
|
33
33
|
['--desc', '指定上传的备注信息: -pindo pgyer upload -desc="1.upload message"'],
|
34
|
+
['--resign', '上传到之后是否重签名,用法:pindo pgyer upload --resign'],
|
35
|
+
['--certid', '设置重签名的正式id,用法:pindo pgyer upload --certid=com.test.bundleid'],
|
34
36
|
|
35
37
|
].concat(super)
|
36
38
|
end
|
@@ -50,14 +52,26 @@ module Pindo
|
|
50
52
|
|
51
53
|
@args_login_flag = argv.flag?('login', false)
|
52
54
|
@args_send_flag = argv.flag?('send', false)
|
55
|
+
@args_resign_flag = argv.flag?('resign', false)
|
56
|
+
|
53
57
|
@args_proj_name = argv.option('proj')
|
54
58
|
@args_attach_name = argv.option('attach')
|
55
59
|
@args_upload_desc = argv.option('desc')
|
60
|
+
@args_cert_id = argv.option('certid')
|
61
|
+
|
62
|
+
|
63
|
+
|
56
64
|
if @args_upload_desc && !@args_upload_desc.empty?
|
57
65
|
@args_upload_desc = @args_upload_desc.strip.gsub(/\"/, '')
|
58
66
|
end
|
59
67
|
|
60
|
-
|
68
|
+
|
69
|
+
if !@args_cert_id.nil? && !@args_cert_id.empty?
|
70
|
+
@args_resign_flag = true
|
71
|
+
end
|
72
|
+
if @args_resign_flag
|
73
|
+
@args_send_flag = true
|
74
|
+
end
|
61
75
|
|
62
76
|
super(argv)
|
63
77
|
@additional_args = argv.remainder!
|
@@ -79,7 +93,7 @@ module Pindo
|
|
79
93
|
@args_ipa_file = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
80
94
|
end
|
81
95
|
if !@args_ipa_file.nil?
|
82
|
-
answer = agree("需要上传的ipa文件是: #{@args_ipa_file} ?(Y/n)")
|
96
|
+
answer = agree("需要上传的ipa文件是: #{@args_ipa_file} ?(Y/n)")
|
83
97
|
if !answer
|
84
98
|
@args_ipa_file = nil
|
85
99
|
end
|
@@ -91,7 +105,7 @@ module Pindo
|
|
91
105
|
@args_ipa_file = @args_ipa_file.strip.gsub(/\\ /, ' ')
|
92
106
|
end
|
93
107
|
end
|
94
|
-
|
108
|
+
|
95
109
|
if !File.exist?(@args_ipa_file)
|
96
110
|
raise Informative, "#{@args_ipa_file} 文件不存在"
|
97
111
|
end
|
@@ -107,12 +121,26 @@ module Pindo
|
|
107
121
|
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
108
122
|
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
109
123
|
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
124
|
+
|
125
|
+
|
110
126
|
if @args_send_flag
|
111
|
-
|
127
|
+
if @args_resign_flag
|
128
|
+
args = []
|
129
|
+
args << "--send"
|
130
|
+
if !@args_cert_id.nil? && !@args_cert_id.empty?
|
131
|
+
args << "--certid=#{@args_cert_id}"
|
132
|
+
end
|
133
|
+
if !@args_proj_name.nil? && !@args_proj_name.empty?
|
134
|
+
args << "--proj=#{@args_proj_name}"
|
135
|
+
end
|
136
|
+
Pindo::Command::Pgyer::Resign::run(args)
|
137
|
+
else
|
138
|
+
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
139
|
+
end
|
112
140
|
end
|
113
141
|
end
|
114
142
|
|
115
|
-
|
143
|
+
|
116
144
|
|
117
145
|
|
118
146
|
end
|
@@ -0,0 +1,158 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'pindo/module/cert/xcodecerthelper'
|
3
|
+
require 'pindo/module/cert/certhelper'
|
4
|
+
|
5
|
+
module Pindo
|
6
|
+
class Command
|
7
|
+
class Utils < Command
|
8
|
+
class Renewcert < Utils
|
9
|
+
|
10
|
+
include Appselect
|
11
|
+
include XcodeCertHelper
|
12
|
+
include CertHelper
|
13
|
+
|
14
|
+
self.summary = '更新当前账号下所有的Provisioning Profile文件'
|
15
|
+
|
16
|
+
self.description = <<-DESC
|
17
|
+
如果不存在证书,会自动生成新证书,重新生成当前账号下所有的Provisioning Profile文件. 添加新设备或者证书过期时使用, 一般情况请勿操作!!!
|
18
|
+
用法:pindo dev renewcert
|
19
|
+
DESC
|
20
|
+
|
21
|
+
self.arguments = [
|
22
|
+
|
23
|
+
]
|
24
|
+
|
25
|
+
def self.options
|
26
|
+
[
|
27
|
+
|
28
|
+
['--fast', '快速更新证书,开发用bundle id只更新dev证书,发布bundle id只更新adhoc证书'],
|
29
|
+
['--upload', '生成上传pgyer的证书'],
|
30
|
+
['--fixedid', '重新更新bundle id的功能,检查bundle id的功能是否更新'],
|
31
|
+
['--renew', '重新生成证书']
|
32
|
+
].concat(super)
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
def initialize(argv)
|
37
|
+
|
38
|
+
@fast_flag = argv.flag?('fast', false)
|
39
|
+
@fixedid_flag = argv.flag?('fixedid', false)
|
40
|
+
@upload_flag = argv.flag?('upload', false)
|
41
|
+
@renew_cert_flag = argv.flag?('renew', false)
|
42
|
+
super
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
def run
|
48
|
+
|
49
|
+
@dev_bundle_id_array = all_dev_bundleid()
|
50
|
+
@tool_bundle_id_array = all_tool_bundleid()
|
51
|
+
@deploy_bundle_id_array = all_release_bundleid()
|
52
|
+
fixed_bundleid_array = @dev_bundle_id_array + @deploy_bundle_id_array + @tool_bundle_id_array
|
53
|
+
|
54
|
+
puts fixed_bundleid_array
|
55
|
+
|
56
|
+
fixed_bundleid_array.each do |bundle_id|
|
57
|
+
# begin
|
58
|
+
fixed_cert(bundle_id:bundle_id, renew_flag:@renew_cert_flag, upload_flag:@upload_flag, fixed_bundleid_flag:@fixedid_flag)
|
59
|
+
# rescue => err
|
60
|
+
# puts
|
61
|
+
# puts
|
62
|
+
# puts "Fixed #{bundle_id} cert---------Error-------!!!"
|
63
|
+
# puts
|
64
|
+
# puts
|
65
|
+
# end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
def fixed_cert(bundle_id:nil, renew_flag:false, upload_flag:false, fixed_bundleid_flag: false)
|
73
|
+
|
74
|
+
args_temp = []
|
75
|
+
args_temp << "#{bundle_id}"
|
76
|
+
|
77
|
+
Pindo::Command::Deploy::Pullconfig::run(args_temp)
|
78
|
+
|
79
|
+
if fixed_bundleid_flag
|
80
|
+
Pindo::Command::Deploy::Bundleid::run([])
|
81
|
+
end
|
82
|
+
|
83
|
+
if @fast_flag
|
84
|
+
|
85
|
+
if @dev_bundle_id_array.include?(bundle_id) || @tool_bundle_id_array.include?(bundle_id)
|
86
|
+
args_temp = []
|
87
|
+
args_temp << "--a=#{bundle_id}"
|
88
|
+
args_temp << "--dev"
|
89
|
+
if renew_flag
|
90
|
+
args_temp << "--renew"
|
91
|
+
end
|
92
|
+
if upload_flag
|
93
|
+
args_temp << "--upload"
|
94
|
+
end
|
95
|
+
Pindo::Command::Deploy::Cert::run(args_temp)
|
96
|
+
end
|
97
|
+
|
98
|
+
if @deploy_bundle_id_array.include?(bundle_id)
|
99
|
+
args_temp = []
|
100
|
+
args_temp << "--a=#{bundle_id}"
|
101
|
+
args_temp << "--adhoc"
|
102
|
+
if renew_flag
|
103
|
+
args_temp << "--renew"
|
104
|
+
end
|
105
|
+
if upload_flag
|
106
|
+
args_temp << "--upload"
|
107
|
+
end
|
108
|
+
Pindo::Command::Deploy::Cert::run(args_temp)
|
109
|
+
end
|
110
|
+
|
111
|
+
else
|
112
|
+
|
113
|
+
args_temp = []
|
114
|
+
args_temp << "--a=#{bundle_id}"
|
115
|
+
args_temp << "--dev"
|
116
|
+
if renew_flag
|
117
|
+
args_temp << "--renew"
|
118
|
+
end
|
119
|
+
if upload_flag
|
120
|
+
args_temp << "--upload"
|
121
|
+
end
|
122
|
+
Pindo::Command::Deploy::Cert::run(args_temp)
|
123
|
+
|
124
|
+
args_temp = []
|
125
|
+
args_temp << "--a=#{bundle_id}"
|
126
|
+
args_temp << "--adhoc"
|
127
|
+
if renew_flag
|
128
|
+
args_temp << "--renew"
|
129
|
+
end
|
130
|
+
if upload_flag
|
131
|
+
args_temp << "--upload"
|
132
|
+
end
|
133
|
+
Pindo::Command::Deploy::Cert::run(args_temp)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
|
138
|
+
def fixed_push(bundle_id:nil, fixed_bundleid: false)
|
139
|
+
|
140
|
+
Pindo::Command::Deploy::Pullconfig::run(args_temp)
|
141
|
+
|
142
|
+
args_temp = []
|
143
|
+
args_temp << "--a=#{bundle_id}"
|
144
|
+
args_temp << "--dev"
|
145
|
+
Pindo::Command::Deploy::Pem::run(args_temp)
|
146
|
+
|
147
|
+
args_temp = []
|
148
|
+
args_temp << "--a=#{bundle_id}"
|
149
|
+
args_temp << "--adhoc"
|
150
|
+
Pindo::Command::Deploy::Pem::run(args_temp)
|
151
|
+
|
152
|
+
end
|
153
|
+
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
data/lib/pindo/command/utils.rb
CHANGED
@@ -4,9 +4,9 @@ require 'pindo/command/utils/renewproj'
|
|
4
4
|
require 'pindo/command/utils/clearcert'
|
5
5
|
require 'pindo/command/utils/xcassets'
|
6
6
|
require 'pindo/command/utils/device'
|
7
|
-
require 'pindo/command/utils/applovin'
|
8
7
|
require 'pindo/command/utils/tgate'
|
9
8
|
require 'pindo/command/utils/boss'
|
9
|
+
require 'pindo/command/utils/renewcert'
|
10
10
|
|
11
11
|
|
12
12
|
module Pindo
|