pindo 4.7.1 → 4.7.3
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.
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c21050abb1c90a03a0692aac01e408ff0bbce3968b89677358bec75c1e903c7e
|
4
|
+
data.tar.gz: '0235831d8df25e4c7227a4980339a858aa8d271f72480ac6f9afc727d1898cae'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b2b2a2a3e7efdcfe0882510269d7bb8b10ab49a571c15f01f5a6538f64a909fd90b91d246d100b1f9883462adec0f25ae0fda3f5c8640cba235009bd94bbbe0
|
7
|
+
data.tar.gz: 2fa34d8dd3cc0f7c4d0ab76354b63a5bde85307990f33cb08fa7a8fc7654a0eff88b7a2faf882325ba61431ee6b211e3fccdffcca062fe9556b2344300e1fc87
|
data/lib/pindo/base/aeshelper.rb
CHANGED
@@ -9,14 +9,13 @@ module Pindo
|
|
9
9
|
def self.fetch_password(keychain_name:nil)
|
10
10
|
# password = ENV["MATCH_PASSWORD"]
|
11
11
|
|
12
|
-
server_name = ["
|
12
|
+
server_name = ["match", keychain_name].join("_")
|
13
13
|
|
14
14
|
item = Security::InternetPassword.find(server: server_name)
|
15
15
|
|
16
16
|
password = item.password if item
|
17
17
|
|
18
18
|
unless password
|
19
|
-
|
20
19
|
password = FastlaneCore::Helper.ask_password(message: "请输入证书仓库的加密密码: ", confirm: true)
|
21
20
|
Security::InternetPassword.add(server_name, "", password)
|
22
21
|
end
|
@@ -24,12 +23,12 @@ module Pindo
|
|
24
23
|
end
|
25
24
|
|
26
25
|
def self.delete_password(keychain_name:nil)
|
27
|
-
server_name = ["
|
28
|
-
Security::InternetPassword.delete(server_name)
|
26
|
+
server_name = ["match", keychain_name].join("_")
|
27
|
+
Security::InternetPassword.delete(server:server_name)
|
29
28
|
end
|
30
29
|
|
31
30
|
def self.store_password(keychain_name:nil, password:nil)
|
32
|
-
server_name = ["
|
31
|
+
server_name = ["match", keychain_name].join("_")
|
33
32
|
Security::InternetPassword.add(server_name, "", password)
|
34
33
|
end
|
35
34
|
|
data/lib/pindo/base/githelper.rb
CHANGED
@@ -24,7 +24,6 @@ module Pindo
|
|
24
24
|
current=Dir.pwd
|
25
25
|
result = false
|
26
26
|
|
27
|
-
puts local_branch_exists?(local_repo_dir: local_repo_dir, branch: branch)
|
28
27
|
if !local_branch_exists?(local_repo_dir: local_repo_dir, branch: branch)
|
29
28
|
git!(%W(-C #{local_repo_dir} checkout -b #{branch}))
|
30
29
|
result = true
|
@@ -150,11 +150,11 @@ module Pindo
|
|
150
150
|
def set_progress(index_num, total_num, char ='>' )
|
151
151
|
progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
|
152
152
|
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
153
|
-
index =
|
153
|
+
index = 40.0 * index_num / total_num
|
154
154
|
|
155
155
|
# (char * (index/1).floor).ljust(100, ' ')
|
156
156
|
|
157
|
-
upload_message = "已上传:#{progress_str}\%【" + (char * (index/1).floor).ljust(
|
157
|
+
upload_message = "已上传:#{progress_str}\%【" + (char * (index/1).floor).ljust(40.0, '_') + "】Total: #{total_size} M"
|
158
158
|
@upload_message = upload_message
|
159
159
|
Funlog.instance.fancyinfo_update(upload_message)
|
160
160
|
# @spinner.reset
|
@@ -39,7 +39,7 @@ module Pindo
|
|
39
39
|
body_str = body_params.to_json
|
40
40
|
url = @base_url + "/api/v5/orgs/#{owner}/repos"
|
41
41
|
|
42
|
-
puts body_str
|
42
|
+
# puts body_str
|
43
43
|
|
44
44
|
con = Faraday.new
|
45
45
|
res = con.post do |req|
|
@@ -48,7 +48,7 @@ module Pindo
|
|
48
48
|
req.body = body_str
|
49
49
|
end
|
50
50
|
|
51
|
-
puts res.body
|
51
|
+
# puts res.body
|
52
52
|
|
53
53
|
# puts res.body
|
54
54
|
if res.body['error'].nil?
|
@@ -17,16 +17,54 @@ module Pindo
|
|
17
17
|
DESC
|
18
18
|
|
19
19
|
self.arguments = [
|
20
|
-
|
21
20
|
]
|
22
21
|
|
22
|
+
|
23
|
+
def self.options
|
24
|
+
[
|
25
|
+
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo deploy build --proj=aichatv4'],
|
26
|
+
['--upload', '是否上传编译后的ipa, 用法:pindo deploy build --upload'],
|
27
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo deploy build --send'],
|
28
|
+
['--resign', '上传到之后是否重签名,用法:pindo deploy build --resign'],
|
29
|
+
['--certid', '设置重签名的正式id,用法:pindo deploy build --certid=com.test.bundleid'],
|
30
|
+
|
31
|
+
|
32
|
+
].concat(super)
|
33
|
+
end
|
34
|
+
|
23
35
|
def initialize(argv)
|
24
|
-
|
25
|
-
|
36
|
+
|
37
|
+
@args_upload_flag = argv.flag?('upload', false)
|
38
|
+
@args_send_flag = argv.flag?('send', false)
|
39
|
+
@args_resign_flag = argv.flag?('resign', false)
|
40
|
+
|
41
|
+
@args_proj_name = argv.option('proj')
|
42
|
+
@args_cert_id = argv.option('certid')
|
43
|
+
|
44
|
+
if !@args_cert_id.nil? && !@args_cert_id.empty?
|
45
|
+
@args_resign_flag = true
|
46
|
+
end
|
47
|
+
if @args_resign_flag
|
48
|
+
@args_send_flag = true
|
49
|
+
end
|
50
|
+
|
51
|
+
if @args_send_flag
|
52
|
+
@args_upload_flag = true
|
53
|
+
end
|
54
|
+
|
55
|
+
super
|
56
|
+
@additional_args = argv.remainder!
|
57
|
+
|
26
58
|
end
|
27
59
|
|
28
60
|
def run
|
29
61
|
|
62
|
+
app_info_obj = nil
|
63
|
+
if @args_upload_flag
|
64
|
+
proj_name = @args_proj_name
|
65
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
66
|
+
end
|
67
|
+
|
30
68
|
new_project_dir = Dir.pwd
|
31
69
|
project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
32
70
|
|
@@ -34,13 +72,41 @@ module Pindo
|
|
34
72
|
FileUtils.rm_rf(File.join(new_project_dir, "build"))
|
35
73
|
end
|
36
74
|
|
37
|
-
|
38
75
|
gym_options = get_gym_build_values(project_fullname:project_fullname)
|
39
76
|
|
40
77
|
config = FastlaneCore::Configuration.create(Gym::Options.available_options, gym_options)
|
41
78
|
Gym::Manager.new.work(config)
|
42
79
|
|
43
80
|
|
81
|
+
|
82
|
+
pindo_new_project_dir = Dir.pwd
|
83
|
+
build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
|
84
|
+
ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
85
|
+
|
86
|
+
if !ipa_file_upload.nil? && !app_info_obj.nil?
|
87
|
+
description = nil
|
88
|
+
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
89
|
+
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
90
|
+
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
91
|
+
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
92
|
+
if @args_send_flag
|
93
|
+
if @args_resign_flag
|
94
|
+
args = []
|
95
|
+
args << "--send"
|
96
|
+
if !@args_cert_id.nil? && !@args_cert_id.empty?
|
97
|
+
args << "--certid=#{@args_cert_id}"
|
98
|
+
end
|
99
|
+
if !@args_proj_name.nil? && !@args_proj_name.empty?
|
100
|
+
args << "--proj=#{@args_proj_name}"
|
101
|
+
end
|
102
|
+
|
103
|
+
Pindo::Command::Pgyer::Resign::run(args)
|
104
|
+
else
|
105
|
+
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
44
110
|
end
|
45
111
|
|
46
112
|
|
@@ -60,7 +60,7 @@ module Pindo
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def run
|
63
|
-
|
63
|
+
|
64
64
|
if @clean_flag
|
65
65
|
puts "Clear cert at local ..."
|
66
66
|
Pindo::Command::Utils::Clearcert::run([])
|
@@ -98,6 +98,7 @@ module Pindo
|
|
98
98
|
|
99
99
|
install_certs(cert_url:cert_git_url, certs_dir:certs_dir, cert_type:@build_type)
|
100
100
|
bundle_id_map = get_bundle_id_map
|
101
|
+
|
101
102
|
provisioning_info_array = install_provisionfiles(cert_url:cert_git_url, certs_dir:certs_dir, bundle_id_map:bundle_id_map, cert_type:@build_type)
|
102
103
|
pindo_single_config.set_cert_info(dict: provisioning_info_array)
|
103
104
|
end
|
@@ -112,16 +113,6 @@ module Pindo
|
|
112
113
|
#发布机需要给swark注册bundle id
|
113
114
|
add_swark_authorize_json
|
114
115
|
|
115
|
-
if @args_adhoc_flag || @args_appstore_flag
|
116
|
-
cert_type = "Development".downcase
|
117
|
-
if @args_adhoc_flag
|
118
|
-
cert_type = "Adhoc".downcase
|
119
|
-
end
|
120
|
-
if @upload_flag
|
121
|
-
create_upload_cert_info(apple_id:@apple_id, cert_type:cert_type, provisioning_info_array:provisioning_info_array)
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
116
|
new_project_dir = Dir.pwd
|
126
117
|
new_project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
127
118
|
if !new_project_fullname.nil? && File.exist?(new_project_fullname) && !provisioning_info_array.nil? && provisioning_info_array.size > 0
|
@@ -131,53 +122,59 @@ module Pindo
|
|
131
122
|
config_infoplist_cert(new_proj_name:new_proj_name, new_project_dir:new_project_dir, icloud_id:@icloud_id, group_id:@group_id, provisioning_info_array:provisioning_info_array)
|
132
123
|
Funlog.instance.fancyinfo_success("Xcode配置证书完成!")
|
133
124
|
end
|
134
|
-
end
|
135
|
-
end
|
136
125
|
|
137
|
-
|
126
|
+
if @upload_flag
|
127
|
+
create_upload_cert_info(apple_id:@apple_id, cert_type:@build_type)
|
128
|
+
create_upload_provisioning_info(apple_id:@apple_id, cert_type:@build_type, provisioning_info_array:provisioning_info_array)
|
129
|
+
end
|
130
|
+
end
|
138
131
|
|
139
|
-
|
140
|
-
raise Informative, "#{apple_id} 是测试账号,不能创建appstore证书!!!"
|
141
|
-
end
|
142
|
-
if !build_type.eql?("appstore") && !apple_id.eql?(pindo_single_config.demo_apple_id)
|
143
|
-
raise Informative, "账号#{apple_id} 不能创建dev或者adhoc证书!!!"
|
144
|
-
end
|
132
|
+
def get_create_cert_match_values(apple_id:nil, bundle_id_array:nil, build_type:nil, renew_flag:false)
|
145
133
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
134
|
+
if build_type.eql?("appstore") && (apple_id.eql?(pindo_single_config.demo_apple_id))
|
135
|
+
raise Informative, "#{apple_id} 是测试账号,不能创建appstore证书!!!"
|
136
|
+
end
|
137
|
+
if !build_type.eql?("appstore") && !apple_id.eql?(pindo_single_config.demo_apple_id)
|
138
|
+
raise Informative, "账号#{apple_id} 不能创建dev或者adhoc证书!!!"
|
139
|
+
end
|
150
140
|
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
141
|
+
git_url = pindo_single_config.deploy_cert_giturl
|
142
|
+
if @apple_id.eql?(pindo_single_config.demo_apple_id)
|
143
|
+
git_url = pindo_single_config.dev_cert_giturl
|
144
|
+
end
|
155
145
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
146
|
+
force_for_new_devices_flag = true
|
147
|
+
if build_type.eql?("appstore")
|
148
|
+
force_for_new_devices_flag = false
|
149
|
+
end
|
150
|
+
|
151
|
+
platform_type = "ios"
|
152
|
+
if @config_json && @config_json['project_info'] && @config_json['project_info']['build_type'].include?("MacOS")
|
153
|
+
platform_type = "macos"
|
154
|
+
end
|
160
155
|
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
156
|
+
values = {
|
157
|
+
username:apple_id,
|
158
|
+
app_identifier: bundle_id_array,
|
159
|
+
type: build_type,
|
160
|
+
keychain_password:"goodcert1",
|
161
|
+
git_url: git_url,
|
162
|
+
readonly:!renew_flag,
|
163
|
+
force:renew_flag,
|
164
|
+
clone_branch_directly:!renew_flag,
|
165
|
+
include_mac_in_profiles:true,
|
166
|
+
include_all_certificates:true,
|
167
|
+
generate_apple_certs:true,
|
168
|
+
shallow_clone:!renew_flag,
|
169
|
+
git_branch: apple_id,
|
170
|
+
platform:platform_type,
|
171
|
+
force_for_new_devices:force_for_new_devices_flag
|
172
|
+
}
|
173
|
+
return values
|
174
|
+
|
175
|
+
end
|
180
176
|
|
177
|
+
end
|
181
178
|
end
|
182
179
|
end
|
183
180
|
end
|
@@ -548,9 +548,8 @@ module Pindo
|
|
548
548
|
end
|
549
549
|
|
550
550
|
new_iap_items["in_app_purchase_type"] = in_app_purchase_type
|
551
|
-
new_iap_items["available_in_all_territories"] = true
|
552
551
|
new_iap_items["price"] = purchase_item["price"].to_s.strip
|
553
|
-
new_iap_items["price_tier"] = iap_consumable_tier_dict[new_iap_items["price"]]
|
552
|
+
new_iap_items["price_tier"] = iap_consumable_tier_dict[new_iap_items["price"].to_s]
|
554
553
|
|
555
554
|
if new_iap_items["price_tier"].nil?
|
556
555
|
raise "购买项价格错误 " + new_iap_items["product_id"] + " 价格 :" + purchase_item["price"]
|
@@ -569,7 +568,7 @@ module Pindo
|
|
569
568
|
new_iap_items["localization"]["en-US"]["description"] = purchase_item["description"].to_s.strip
|
570
569
|
if !new_iap_items["localization"]["en-US"]["description"].nil? && new_iap_items["localization"]["en-US"]["description"].length > 45
|
571
570
|
puts temp_product_id
|
572
|
-
raise Informative, "description 超出限定的45个字符 !!!"
|
571
|
+
raise Informative, "purchuse description 超出限定的45个字符 !!!"
|
573
572
|
end
|
574
573
|
|
575
574
|
new_iap_items["review_note"] = "username: " + iap_tester["email"] + " password: " + iap_tester["password"]
|
@@ -651,7 +650,6 @@ module Pindo
|
|
651
650
|
raise Informative, "product_id 超出限定的100个字符 !!!"
|
652
651
|
end
|
653
652
|
|
654
|
-
new_subs_item["available_in_all_territories"] = true
|
655
653
|
new_subs_item["family_sharable"] = false
|
656
654
|
new_subs_item["price"] = subs_item["price"].to_s.strip
|
657
655
|
new_subs_item["subscription_duration"] = subscription_duration_dict[subs_item["subscription_duration"]]
|
@@ -23,11 +23,11 @@ module Pindo
|
|
23
23
|
|
24
24
|
def self.options
|
25
25
|
[
|
26
|
-
['--deploy', '默认用开发的bundle id,用法:pindo
|
27
|
-
['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书编译, 用法:pindo
|
28
|
-
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo
|
29
|
-
['--upload', '是否上传编译后的ipa, 用法:pindo
|
30
|
-
['--send', '上传到之后是否发送测试信息,用法:pindo
|
26
|
+
['--deploy', '默认用开发的bundle id,用法:pindo dev autobuild --deploy'],
|
27
|
+
['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书编译, 用法:pindo dev autobuild --adhoc'],
|
28
|
+
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo dev autobuild --proj=aichatv4'],
|
29
|
+
['--upload', '是否上传编译后的ipa, 用法:pindo dev autobuild --upload'],
|
30
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo dev autobuild --send'],
|
31
31
|
].concat(super)
|
32
32
|
end
|
33
33
|
|
@@ -129,10 +129,7 @@ module Pindo
|
|
129
129
|
description = File.read(File.join(pindo_new_project_dir, ".release_info"))
|
130
130
|
else
|
131
131
|
if File.exist?(File.join(pindo_new_project_dir, ".git"))
|
132
|
-
description = git!(%W(-C #{pindo_new_project_dir} show -s --format
|
133
|
-
unless !description.nil? && description.length > 10
|
134
|
-
description = nil
|
135
|
-
end
|
132
|
+
description = git!(%W(-C #{pindo_new_project_dir} show -s --format=%h::%s)).strip
|
136
133
|
end
|
137
134
|
end
|
138
135
|
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:description)
|
@@ -24,12 +24,12 @@ module Pindo
|
|
24
24
|
|
25
25
|
def self.options
|
26
26
|
[
|
27
|
-
['--ipa', '指定ipa的路径,用法:pindo
|
28
|
-
['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书编译, 用法:pindo
|
29
|
-
['--deploy', '默认用开发的bundle id,使用--deploy设置使用发布bundle id来重签名, 用法:pindo
|
30
|
-
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo
|
31
|
-
['--upload', '是否上传编译后的ipa, 用法:pindo
|
32
|
-
['--send', '上传到之后是否发送测试信息,用法:pindo
|
27
|
+
['--ipa', '指定ipa的路径,用法:pindo dev autoresign --ipa=path/to/name.ipa'],
|
28
|
+
['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书编译, 用法:pindo dev autoresign --adhoc'],
|
29
|
+
['--deploy', '默认用开发的bundle id,使用--deploy设置使用发布bundle id来重签名, 用法:pindo dev autoresign --deploy'],
|
30
|
+
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo dev autoresign --proj=aichatv4'],
|
31
|
+
['--upload', '是否上传编译后的ipa, 用法:pindo dev autoresign --upload'],
|
32
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo dev autoresign --send'],
|
33
33
|
].concat(super)
|
34
34
|
end
|
35
35
|
|
@@ -92,12 +92,12 @@ module Pindo
|
|
92
92
|
|
93
93
|
Pindo::Command::Deploy::Pullconfig::run(args_temp)
|
94
94
|
|
95
|
-
|
96
|
-
if @args_upload_flag
|
95
|
+
app_info_obj = nil
|
96
|
+
if @args_upload_flag
|
97
97
|
proj_name = @args_proj_name
|
98
|
-
|
98
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
99
99
|
end
|
100
|
-
|
100
|
+
|
101
101
|
args_temp = []
|
102
102
|
if @args_adhoc_flag
|
103
103
|
args_temp << "--adhoc"
|
@@ -23,9 +23,9 @@ module Pindo
|
|
23
23
|
|
24
24
|
def self.options
|
25
25
|
[
|
26
|
-
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo
|
27
|
-
['--upload', '是否上传编译后的ipa, 用法:pindo
|
28
|
-
['--send', '上传到之后是否发送测试信息,用法:pindo
|
26
|
+
['--proj', '指定上传到pgyer对应的项目名称(大小写空格忽略),用法:pindo dev build --proj=aichatv4'],
|
27
|
+
['--upload', '是否上传编译后的ipa, 用法:pindo dev build --upload'],
|
28
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo dev build --send'],
|
29
29
|
].concat(super)
|
30
30
|
end
|
31
31
|
|
@@ -39,6 +39,7 @@ module Pindo
|
|
39
39
|
@args_upload_flag = true
|
40
40
|
end
|
41
41
|
|
42
|
+
|
42
43
|
super
|
43
44
|
@additional_args = argv.remainder!
|
44
45
|
end
|
@@ -67,7 +68,7 @@ module Pindo
|
|
67
68
|
description = File.read(File.join(pindo_new_project_dir, ".release_info"))
|
68
69
|
else
|
69
70
|
if File.exist?(File.join(pindo_new_project_dir, ".git"))
|
70
|
-
description = git!(%W(-C #{pindo_new_project_dir} show -s --format
|
71
|
+
description = git!(%W(-C #{pindo_new_project_dir} show -s --format=%h::%s)).strip
|
71
72
|
unless !description.nil? && description.length > 10
|
72
73
|
description = nil
|
73
74
|
end
|
@@ -83,7 +84,6 @@ module Pindo
|
|
83
84
|
end
|
84
85
|
end
|
85
86
|
|
86
|
-
system "open #{project_dir}"
|
87
87
|
|
88
88
|
end
|
89
89
|
|
data/lib/pindo/command/dev.rb
CHANGED
@@ -1,17 +1,13 @@
|
|
1
1
|
# require 'pindo/command/dev/create'
|
2
2
|
|
3
3
|
|
4
|
-
# require 'pindo/command/dev/confuseproj'
|
5
|
-
# require 'pindo/command/dev/confusecode'
|
6
|
-
# require 'pindo/command/dev/cert'
|
7
4
|
require 'pindo/command/dev/pub'
|
8
5
|
require 'pindo/command/dev/debug'
|
9
6
|
require 'pindo/command/dev/autoresign'
|
10
7
|
require 'pindo/command/dev/autobuild'
|
11
8
|
require 'pindo/command/dev/build'
|
12
|
-
|
13
|
-
|
14
|
-
# require 'pindo/command/dev/createbuild'
|
9
|
+
require 'pindo/command/dev/applovin'
|
10
|
+
|
15
11
|
|
16
12
|
module Pindo
|
17
13
|
class Command
|
@@ -13,9 +13,9 @@ module Pindo
|
|
13
13
|
class Import < Ipa
|
14
14
|
|
15
15
|
include Command::DeployOptions
|
16
|
-
|
17
16
|
include Pindo::XcodeAppConfig
|
18
17
|
include XcodeBuildHelper
|
18
|
+
include Appselect
|
19
19
|
|
20
20
|
self.summary = '提交时设置Xcode工程编译参数'
|
21
21
|
|
@@ -29,10 +29,13 @@ module Pindo
|
|
29
29
|
|
30
30
|
def self.options
|
31
31
|
[
|
32
|
-
['--proj', '指定哪个项目(忽略大小写空格等等字符): --proj=\"prancksoundv4\"'],
|
33
|
-
['--upload', '编译完成后是否上传ipa到pyger: 用法:pindo ipa import --upload'],
|
34
32
|
['--build', '修改完工程之后直接编译,用法:pindo ipa import --build'],
|
35
33
|
['--increase', '自动增加编译的app版本号,用法:pindo ipa import --increase'],
|
34
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符): --proj=\"prancksoundv4\"'],
|
35
|
+
['--upload', '编译完成后是否上传ipa到pyger: 用法:pindo ipa import --upload'],
|
36
|
+
['--send', '上传到之后是否发送测试信息,用法:pindo ipa import --send'],
|
37
|
+
['--resign', '上传到之后是否发送测试信息,用法:pindo ipa import --resign'],
|
38
|
+
|
36
39
|
|
37
40
|
].concat(super)
|
38
41
|
end
|
@@ -41,6 +44,20 @@ module Pindo
|
|
41
44
|
@build_flag = argv.flag?('build', false)
|
42
45
|
@args_increase_flag = argv.flag?('increase', false)
|
43
46
|
|
47
|
+
@args_upload_flag = argv.flag?('upload', false)
|
48
|
+
@args_send_flag = argv.flag?('send', false)
|
49
|
+
@args_resign_flag = argv.flag?('resign', false)
|
50
|
+
@args_proj_name = argv.option('proj')
|
51
|
+
|
52
|
+
if @args_resign_flag
|
53
|
+
@args_send_flag = true
|
54
|
+
end
|
55
|
+
|
56
|
+
if @args_send_flag
|
57
|
+
@args_upload_flag = true
|
58
|
+
@build_flag = true
|
59
|
+
end
|
60
|
+
|
44
61
|
super
|
45
62
|
end
|
46
63
|
|
@@ -91,9 +108,9 @@ module Pindo
|
|
91
108
|
pindo_new_project_dir = Dir.pwd
|
92
109
|
|
93
110
|
if @args_increase_flag
|
94
|
-
auto_increase_buildnumber(File.join(pindo_new_project_dir, "config.json"))
|
111
|
+
auto_increase_buildnumber(app_config_file:File.join(pindo_new_project_dir, "config.json"))
|
95
112
|
app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
|
96
|
-
auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
|
113
|
+
auto_increase_buildnumber(app_config_file:File.join(app_config_repo_dir, "config.json"))
|
97
114
|
git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
98
115
|
end
|
99
116
|
|
@@ -182,16 +199,35 @@ module Pindo
|
|
182
199
|
applovin_args = []
|
183
200
|
applovin_args << "--appstore"
|
184
201
|
applovin_args << "--install"
|
185
|
-
Pindo::Command::
|
202
|
+
Pindo::Command::Dev::Applovin::run(applovin_args)
|
186
203
|
end
|
187
204
|
|
188
|
-
|
189
205
|
if @build_flag
|
190
206
|
Dir.chdir(pindo_new_project_dir)
|
207
|
+
if @args_upload_flag
|
208
|
+
args_temp << "--upload"
|
209
|
+
args_temp << "--proj=#{@args_proj_name}"
|
210
|
+
end
|
211
|
+
if @args_send_flag
|
212
|
+
args_temp << "--send"
|
213
|
+
end
|
214
|
+
|
215
|
+
if @args_resign_flag
|
216
|
+
args_temp << "--resign"
|
217
|
+
if @config_json && @config_json['project_info'] && @config_json['project_info']['app_type']
|
218
|
+
output_repo_name = get_deploy_repo_with_modul_name(module_name:@config_json['project_info']['app_type'])
|
219
|
+
if output_repo_name.nil? || output_repo_name == ""
|
220
|
+
raise Informative, "config.json app_type is error!!!"
|
221
|
+
end
|
222
|
+
output_config_dir = clong_buildconfig_repo(repo_name: output_repo_name)
|
223
|
+
args_bundle_id = get_setting_bundleid_withdir(repo_dir:output_config_dir)
|
224
|
+
args_temp << "--certid=#{args_bundle_id}"
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
191
228
|
Pindo::Command::Deploy::Build::run(args_temp)
|
192
229
|
end
|
193
230
|
|
194
|
-
|
195
231
|
Dir.chdir(current_dir)
|
196
232
|
puts "Buiid Done !!!"
|
197
233
|
puts "#{pindo_new_project_dir}"
|
@@ -72,9 +72,9 @@ module Pindo
|
|
72
72
|
end
|
73
73
|
|
74
74
|
if @args_increase_flag
|
75
|
-
auto_increase_buildnumber(File.join(Dir.pwd, "config.json"))
|
75
|
+
auto_increase_buildnumber(app_config_file:File.join(Dir.pwd, "config.json"))
|
76
76
|
app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
|
77
|
-
auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
|
77
|
+
auto_increase_buildnumber(app_config_file:File.join(app_config_repo_dir, "config.json"))
|
78
78
|
git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
79
79
|
end
|
80
80
|
|
@@ -91,8 +91,8 @@ module Pindo
|
|
91
91
|
|
92
92
|
progress_str = sprintf("%.2f", 100.0 * index_num / total_num )
|
93
93
|
total_size = sprintf("%.2f", 1.00 * total_num / 1024 /1024 )
|
94
|
-
index =
|
95
|
-
download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(
|
94
|
+
index = 40.0 * index_num / total_num
|
95
|
+
download_message = "已下载:#{progress_str}\%【" + (char_in * (index/1).floor).ljust(40.0, char_out) + "】Total: #{total_size} M"
|
96
96
|
Funlog.instance.fancyinfo_update(download_message)
|
97
97
|
|
98
98
|
}) do |file|
|