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.
- 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
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
require 'highline/import'
|
|
2
2
|
require 'xcodeproj'
|
|
3
3
|
require 'cocoapods'
|
|
4
|
-
require 'find'
|
|
4
|
+
require 'find'
|
|
5
5
|
require 'fileutils'
|
|
6
6
|
require 'pindo/base/executable'
|
|
7
|
+
require 'pindo/module/xcode/xcodeappconfig'
|
|
8
|
+
require 'pindo/module/xcode/xcodebuildhelper'
|
|
7
9
|
|
|
8
10
|
module Pindo
|
|
9
11
|
class Command
|
|
10
12
|
class Ipa < Command
|
|
11
13
|
class Import < Ipa
|
|
12
|
-
|
|
14
|
+
|
|
13
15
|
include Command::DeployOptions
|
|
14
|
-
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
include Pindo::XcodeAppConfig
|
|
18
|
+
include XcodeBuildHelper
|
|
19
|
+
|
|
16
20
|
self.summary = '提交时设置Xcode工程编译参数'
|
|
17
|
-
|
|
21
|
+
|
|
18
22
|
self.description = <<-DESC
|
|
19
23
|
提交时设置Xcode工程编译参数.在工程目录下执行:pindo ipa import
|
|
20
24
|
DESC
|
|
@@ -25,6 +29,8 @@ module Pindo
|
|
|
25
29
|
|
|
26
30
|
def self.options
|
|
27
31
|
[
|
|
32
|
+
['--proj', '指定哪个项目(忽略大小写空格等等字符): --proj=\"prancksoundv4\"'],
|
|
33
|
+
['--upload', '编译完成后是否上传ipa到pyger: 用法:pindo ipa import --upload'],
|
|
28
34
|
['--build', '修改完工程之后直接编译,用法:pindo ipa import --build'],
|
|
29
35
|
['--increase', '自动增加编译的app版本号,用法:pindo ipa import --increase'],
|
|
30
36
|
|
|
@@ -34,7 +40,7 @@ module Pindo
|
|
|
34
40
|
def initialize(argv)
|
|
35
41
|
@build_flag = argv.flag?('build', false)
|
|
36
42
|
@args_increase_flag = argv.flag?('increase', false)
|
|
37
|
-
|
|
43
|
+
|
|
38
44
|
super
|
|
39
45
|
end
|
|
40
46
|
|
|
@@ -55,20 +61,17 @@ module Pindo
|
|
|
55
61
|
end
|
|
56
62
|
if build_type_array.include?("quark") || build_type_array.include?("swark")
|
|
57
63
|
@args_quswark_flag = true
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
# puts "#########---------Error-------!!!"
|
|
70
|
-
# puts err
|
|
71
|
-
# end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
clone_pindo_common_config_repo(force_delete:false)
|
|
69
|
+
clone_pindo_env_config_repo(force_delete:false)
|
|
70
|
+
|
|
71
|
+
Pindo::VersionCheck::check_pindo_force_upgrade()
|
|
72
|
+
|
|
73
|
+
import_fun
|
|
74
|
+
|
|
72
75
|
end
|
|
73
76
|
|
|
74
77
|
def import_fun
|
|
@@ -76,7 +79,7 @@ module Pindo
|
|
|
76
79
|
current_dir = Dir.pwd
|
|
77
80
|
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
|
78
81
|
app_config_dir = File.join(pindo_dir, @deploy_identifier)
|
|
79
|
-
|
|
82
|
+
|
|
80
83
|
args_temp = []
|
|
81
84
|
args_temp << @args_appconfig
|
|
82
85
|
args_temp = args_temp | @args_array
|
|
@@ -85,13 +88,17 @@ module Pindo
|
|
|
85
88
|
args = get_build_type_args()
|
|
86
89
|
args_temp = args_temp | args
|
|
87
90
|
|
|
91
|
+
pindo_new_project_dir = Dir.pwd
|
|
92
|
+
|
|
88
93
|
if @args_increase_flag
|
|
89
|
-
auto_increase_buildnumber
|
|
94
|
+
auto_increase_buildnumber(File.join(pindo_new_project_dir, "config.json"))
|
|
95
|
+
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"))
|
|
97
|
+
git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
|
90
98
|
end
|
|
91
99
|
|
|
92
100
|
|
|
93
|
-
|
|
94
|
-
|
|
101
|
+
|
|
95
102
|
build_verify_file = File.join(app_config_dir, "build_verify.json")
|
|
96
103
|
build_verify_json = nil
|
|
97
104
|
|
|
@@ -99,21 +106,21 @@ module Pindo
|
|
|
99
106
|
build_verify_json = JSON.parse(File.read(build_verify_file))
|
|
100
107
|
rescue => error
|
|
101
108
|
build_verify_json = nil
|
|
102
|
-
end
|
|
109
|
+
end
|
|
103
110
|
|
|
104
111
|
release_code_commit = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
|
|
105
112
|
if !release_code_commit.nil? && !build_verify_json.nil? && !build_verify_json["output_code_commit"].nil?
|
|
106
113
|
output_code_commit = build_verify_json["output_code_commit"]
|
|
107
114
|
if !release_code_commit.eql?(output_code_commit)
|
|
108
115
|
|
|
109
|
-
puts
|
|
110
|
-
puts
|
|
116
|
+
puts
|
|
117
|
+
puts
|
|
111
118
|
puts "不是最新代码,请更新代码 !!!"
|
|
112
119
|
puts "不是最新代码,请更新代码 !!!"
|
|
113
|
-
puts
|
|
120
|
+
puts
|
|
114
121
|
answer = agree("请确认要用当前代码编译:(commit: #{release_code_commit}) (Y/n):")
|
|
115
122
|
if answer
|
|
116
|
-
|
|
123
|
+
|
|
117
124
|
else
|
|
118
125
|
raise Informative, "请更新代码重新打包!!!"
|
|
119
126
|
end
|
|
@@ -121,29 +128,24 @@ module Pindo
|
|
|
121
128
|
end
|
|
122
129
|
end
|
|
123
130
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
system "open #{pindo_new_project_dir}"
|
|
128
|
-
puts "New Project: #{pindo_new_project_dir}"
|
|
129
131
|
Dir.chdir(pindo_new_project_dir)
|
|
130
132
|
|
|
131
|
-
|
|
132
133
|
pod_lock_file = File.join(pindo_new_project_dir, "Podfile.lock")
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
begin
|
|
135
|
+
FileUtils.rm_rf(pod_lock_file)
|
|
136
|
+
FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
|
|
137
|
+
rescue StandardError => e
|
|
138
|
+
end
|
|
135
139
|
|
|
136
|
-
|
|
137
140
|
Pindo::Command::Deploy::Configproj::run(args_temp)
|
|
138
|
-
|
|
141
|
+
|
|
139
142
|
if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
|
|
140
143
|
|
|
141
144
|
pull_podfile_lock(project_dir:pindo_new_project_dir, app_config_dir:app_config_dir)
|
|
142
|
-
Pindo::Command::
|
|
143
|
-
|
|
145
|
+
Pindo::Command::Lib::Update::run([])
|
|
144
146
|
begin
|
|
145
147
|
remove_test_pod_modue(project_dir:pindo_new_project_dir)
|
|
146
|
-
|
|
148
|
+
Pod::Command::Install::run([])
|
|
147
149
|
rescue => error
|
|
148
150
|
puts(error.to_s)
|
|
149
151
|
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
|
@@ -155,28 +157,16 @@ module Pindo
|
|
|
155
157
|
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
|
156
158
|
end
|
|
157
159
|
end
|
|
158
|
-
|
|
159
|
-
# unless @args_normal_flag
|
|
160
|
-
# Dir.chdir(pindo_new_project_dir)
|
|
161
|
-
# Pindo::Command::Deploy::Confuseproj::run(args_temp)
|
|
162
|
-
# args_temp << "--pull"
|
|
163
|
-
|
|
164
|
-
# Dir.chdir(pindo_new_project_dir)
|
|
165
|
-
# Pindo::Command::Deploy::Confusecode::run(args_temp)
|
|
166
|
-
# end
|
|
167
160
|
|
|
168
161
|
if @args_quswark_flag
|
|
169
162
|
Dir.chdir(pindo_new_project_dir)
|
|
170
163
|
Pindo::Command::Deploy::Quswark::run([])
|
|
171
164
|
end
|
|
172
|
-
|
|
173
165
|
Dir.chdir(pindo_new_project_dir)
|
|
174
166
|
Pindo::Command::Deploy::Cert::run(args_temp)
|
|
175
|
-
|
|
176
167
|
Pindo::Command::Deploy::Tag::run(args_temp)
|
|
177
168
|
|
|
178
169
|
|
|
179
|
-
|
|
180
170
|
pod_lock_json = Pod::YAMLHelper.load_file(pod_lock_file)
|
|
181
171
|
pods_array = []
|
|
182
172
|
if !pod_lock_json["SPEC REPOS"].nil?
|
|
@@ -184,8 +174,9 @@ module Pindo
|
|
|
184
174
|
pods_array += pod_items
|
|
185
175
|
end
|
|
186
176
|
end
|
|
177
|
+
|
|
187
178
|
if pods_array.include?("FancyAD")
|
|
188
|
-
puts
|
|
179
|
+
puts
|
|
189
180
|
puts "Run Applovin Script ..."
|
|
190
181
|
Dir.chdir(pindo_new_project_dir)
|
|
191
182
|
applovin_args = []
|
|
@@ -195,9 +186,6 @@ module Pindo
|
|
|
195
186
|
end
|
|
196
187
|
|
|
197
188
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
189
|
if @build_flag
|
|
202
190
|
Dir.chdir(pindo_new_project_dir)
|
|
203
191
|
Pindo::Command::Deploy::Build::run(args_temp)
|
|
@@ -208,54 +196,11 @@ module Pindo
|
|
|
208
196
|
puts "Buiid Done !!!"
|
|
209
197
|
puts "#{pindo_new_project_dir}"
|
|
210
198
|
system "open #{pindo_new_project_dir}"
|
|
211
|
-
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
def auto_increase_buildnumber
|
|
216
199
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
|
220
|
-
config_repo_dir = File.join(pindo_dir, @deploy_identifier)
|
|
221
|
-
app_build_version = @config_json['app_info']['app_build_version']
|
|
222
|
-
|
|
223
|
-
puts "old version #{app_build_version}"
|
|
224
|
-
build_version_array = app_build_version.split('.') || []
|
|
225
|
-
while build_version_array.size < 3 do
|
|
226
|
-
build_version_array << "0"
|
|
227
|
-
end
|
|
228
|
-
|
|
229
|
-
last_numer = build_version_array.pop.to_s
|
|
230
|
-
new_last_numer = last_numer.to_i + 1
|
|
231
|
-
build_version_array << new_last_numer.to_s
|
|
232
|
-
app_build_version = build_version_array.join(".")
|
|
233
|
-
puts "new version #{app_build_version}"
|
|
234
|
-
|
|
235
|
-
@config_json['app_info']['app_build_version'] = app_build_version
|
|
236
|
-
|
|
237
|
-
app_origin_config = File.join(config_repo_dir, "config.json")
|
|
238
|
-
config_json = JSON.parse(File.read(app_origin_config))
|
|
239
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
|
240
|
-
File.open(app_origin_config, "w") do |file|
|
|
241
|
-
file.write(JSON.pretty_generate(config_json))
|
|
242
|
-
file.close
|
|
243
|
-
end
|
|
244
|
-
|
|
245
|
-
config_json = JSON.parse(File.read(@args_appconfig_fullname))
|
|
246
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
|
247
|
-
File.open(@args_appconfig_fullname, "w") do |file|
|
|
248
|
-
file.write(JSON.pretty_generate(config_json))
|
|
249
|
-
file.close
|
|
250
|
-
end
|
|
200
|
+
end
|
|
251
201
|
|
|
252
202
|
|
|
253
|
-
git_addpush_repo(path:config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
|
254
|
-
end
|
|
255
|
-
|
|
256
|
-
|
|
257
203
|
end
|
|
258
204
|
end
|
|
259
205
|
end
|
|
260
206
|
end
|
|
261
|
-
|
|
@@ -3,6 +3,8 @@ require 'xcodeproj'
|
|
|
3
3
|
require 'find'
|
|
4
4
|
require 'fileutils'
|
|
5
5
|
require 'pindo/base/executable'
|
|
6
|
+
require 'pindo/module/xcode/xcodebuildhelper'
|
|
7
|
+
require 'pindo/module/xcode/xcodeappconfig'
|
|
6
8
|
|
|
7
9
|
module Pindo
|
|
8
10
|
class Command
|
|
@@ -10,9 +12,11 @@ module Pindo
|
|
|
10
12
|
class Output < Ipa
|
|
11
13
|
|
|
12
14
|
include Command::DeployOptions
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
|
|
16
|
+
include XcodeBuildHelper
|
|
17
|
+
include XcodeAppConfig
|
|
15
18
|
include Appselect
|
|
19
|
+
|
|
16
20
|
|
|
17
21
|
self.summary = '测试时设置Xcode工程编译参数并自动编译及上传'
|
|
18
22
|
|
|
@@ -63,88 +67,42 @@ module Pindo
|
|
|
63
67
|
end
|
|
64
68
|
|
|
65
69
|
if @args_increase_flag
|
|
66
|
-
auto_increase_buildnumber
|
|
70
|
+
auto_increase_buildnumber(File.join(Dir.pwd, "config.json"))
|
|
71
|
+
app_config_repo_dir = File.join(pindo_single_config.pindo_dir, @deploy_identifier)
|
|
72
|
+
auto_increase_buildnumber(File.join(app_config_repo_dir, "config.json"))
|
|
73
|
+
git_addpush_repo(path:app_config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
|
67
74
|
end
|
|
68
75
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
# puts err
|
|
77
|
-
# end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def prepare_for_upload
|
|
81
|
-
|
|
82
|
-
if @args_upload_flag
|
|
83
|
-
|
|
84
|
-
@pgyer_client = PgyerClient.new
|
|
85
|
-
app_info_obj = nil
|
|
86
|
-
login_success = @pgyer_client.do_login(force_login:@args_login_flag)
|
|
76
|
+
app_info_obj = nil
|
|
77
|
+
if @args_upload_flag || @args_send_flag
|
|
78
|
+
proj_name = @args_proj_name
|
|
79
|
+
app_info_obj = PgyerHelper.share_instace.prepare_upload(working_directory:Dir.pwd, proj_name:proj_name)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
|
|
87
83
|
|
|
88
|
-
|
|
84
|
+
output_fun()
|
|
89
85
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
end
|
|
94
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
if app_info_obj.nil?
|
|
98
|
-
xcodeproj_file_name = Dir.glob(File.join(Dir.pwd, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
|
99
|
-
proj_name = File.basename(xcodeproj_file_name, ".xcodeproj") if xcodeproj_file_name
|
|
100
|
-
if !proj_name.nil?
|
|
101
|
-
puts
|
|
102
|
-
answer = agree("Pgyer的App项目代号是: #{proj_name} ?(Y/n)")
|
|
103
|
-
if answer
|
|
104
|
-
@args_proj_name = proj_name
|
|
105
|
-
app_info_obj = PgyerHelper.share_instace.find_app_info_with_obj_list(proj_name:@args_proj_name)
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|
|
86
|
+
pindo_new_project_dir = Dir.pwd
|
|
87
|
+
build_path = File.join(pindo_new_project_dir, "build", "*.ipa")
|
|
88
|
+
ipa_file_upload = Dir.glob(build_path).max_by {|f| File.mtime(f)}
|
|
109
89
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
90
|
+
if !ipa_file_upload.nil? && !app_info_obj.nil?
|
|
91
|
+
result_data = PgyerHelper.share_instace.start_upload(app_info_obj:app_info_obj, ipa_file_upload:ipa_file_upload, description:nil)
|
|
92
|
+
if !result_data.nil? && !result_data["data"].nil? && !result_data["data"]["id"].nil?
|
|
93
|
+
msg_data = PgyerHelper.share_instace.make_msg_data(app_info_obj:app_info_obj, app_version_info_obj:result_data["data"])
|
|
94
|
+
PgyerHelper.share_instace.print_app_version_info(msg_data:msg_data)
|
|
95
|
+
if @args_send_flag
|
|
96
|
+
PgyerHelper.share_instace.send_apptest_wechat_msg(msg_data:msg_data)
|
|
114
97
|
end
|
|
115
|
-
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
if app_info_obj.nil?
|
|
119
|
-
raise Informative, "#{proj_name} 错误, 请输入正确的App代号名称, pgyer网站没有该App"
|
|
120
98
|
end
|
|
121
|
-
|
|
122
99
|
end
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def start_upload(pgyer_proj_name:nil, ipa_file_upload:nil, description:nil, args_send_flag:true)
|
|
126
|
-
|
|
127
|
-
if !pgyer_proj_name.nil? && !ipa_file_upload.nil?
|
|
128
100
|
|
|
101
|
+
system "open #{pindo_new_project_dir}"
|
|
129
102
|
|
|
130
|
-
args_temp = []
|
|
131
|
-
pgyer_proj_name = pgyer_proj_name.strip.gsub(/ /, '')
|
|
132
|
-
args_temp << "--proj=#{pgyer_proj_name}"
|
|
133
|
-
args_temp << "--ipa=\"#{ipa_file_upload}\""
|
|
134
|
-
|
|
135
|
-
if args_send_flag
|
|
136
|
-
args_temp << "--send"
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
if !description.nil?
|
|
140
|
-
args_temp << "--desc=\"#{description}\""
|
|
141
|
-
end
|
|
142
|
-
|
|
143
|
-
puts args_temp
|
|
144
|
-
Pindo::Command::Pgyer::Upload::run(args_temp)
|
|
145
|
-
end
|
|
146
103
|
end
|
|
147
104
|
|
|
105
|
+
|
|
148
106
|
def output_fun
|
|
149
107
|
|
|
150
108
|
currentDir = Dir.pwd
|
|
@@ -173,13 +131,13 @@ module Pindo
|
|
|
173
131
|
|
|
174
132
|
|
|
175
133
|
Dir.chdir(pindo_new_project_dir)
|
|
176
|
-
|
|
134
|
+
begin
|
|
177
135
|
FileUtils.rm_rf(File.join(pindo_new_project_dir, "Podfile.lock"))
|
|
178
|
-
end
|
|
179
|
-
if File.exist?(File.join(pindo_new_project_dir, "Pods"))
|
|
180
136
|
FileUtils.rm_rf(File.join(pindo_new_project_dir, "Pods"))
|
|
137
|
+
rescue StandardError => e
|
|
181
138
|
end
|
|
182
139
|
|
|
140
|
+
|
|
183
141
|
Dir.chdir(pindo_new_project_dir)
|
|
184
142
|
modify_release_config(project_dir:pindo_new_project_dir, config_json:@config_json)
|
|
185
143
|
Pindo::Command::Deploy::Configproj::run(args_temp)
|
|
@@ -187,11 +145,11 @@ module Pindo
|
|
|
187
145
|
|
|
188
146
|
|
|
189
147
|
if File.exist?(File.join(pindo_new_project_dir, "Podfile"))
|
|
190
|
-
Pindo::Command::
|
|
148
|
+
Pindo::Command::Lib::Update::run([])
|
|
191
149
|
|
|
192
150
|
begin
|
|
193
151
|
remove_test_pod_modue(project_dir:pindo_new_project_dir)
|
|
194
|
-
|
|
152
|
+
Pod::Command::Install::run([])
|
|
195
153
|
rescue => error
|
|
196
154
|
puts(error.to_s)
|
|
197
155
|
raise Informative, "pod install失败!!先pod install 完成后成编译 !"
|
|
@@ -246,19 +204,6 @@ module Pindo
|
|
|
246
204
|
end
|
|
247
205
|
end
|
|
248
206
|
|
|
249
|
-
if !ipa_file_upload.nil? && !@args_proj_name.nil?
|
|
250
|
-
|
|
251
|
-
description = nil
|
|
252
|
-
commit_id_info = git_latest_commit_id(local_repo_dir:pindo_new_project_dir)
|
|
253
|
-
description = "commit " + commit_id_info
|
|
254
|
-
start_upload(pgyer_proj_name:@args_proj_name, ipa_file_upload:ipa_file_upload, description:description, args_send_flag:@args_send_flag)
|
|
255
|
-
end
|
|
256
|
-
|
|
257
|
-
Dir.chdir(pindo_new_project_dir)
|
|
258
|
-
puts "Buiid Done !!!"
|
|
259
|
-
puts "#{pindo_new_project_dir}"
|
|
260
|
-
system "open #{pindo_new_project_dir}"
|
|
261
|
-
|
|
262
207
|
end
|
|
263
208
|
|
|
264
209
|
def get_release_build_args
|
|
@@ -299,7 +244,7 @@ module Pindo
|
|
|
299
244
|
|
|
300
245
|
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
|
301
246
|
google_info_config_dir = File.join(pindo_dir, @args_bundle_id)
|
|
302
|
-
|
|
247
|
+
install_google_plist(project_dir:project_dir, app_config_dir:google_info_config_dir)
|
|
303
248
|
|
|
304
249
|
end
|
|
305
250
|
|
|
@@ -327,8 +272,8 @@ module Pindo
|
|
|
327
272
|
@config_json["app_info"]["applovin_app_id"] = @output_config_json["app_info"]["applovin_app_id"]
|
|
328
273
|
end
|
|
329
274
|
|
|
330
|
-
puts " @config_json[ app_setting] ================12"
|
|
331
|
-
puts @config_json["app_setting"]
|
|
275
|
+
# puts " @config_json[ app_setting] ================12"
|
|
276
|
+
# puts @config_json["app_setting"]
|
|
332
277
|
|
|
333
278
|
@config_json["app_setting"].each do |k, v|
|
|
334
279
|
if k.eql?("kGUKeyAppClientHost") || k.eql?("kGUKeyResBaseUrl") || k.eql?("app_web_host") || k.eql?("app_client_url") || k.eql?("app_client_url") then
|
|
@@ -347,48 +292,6 @@ module Pindo
|
|
|
347
292
|
|
|
348
293
|
end
|
|
349
294
|
|
|
350
|
-
def auto_increase_buildnumber
|
|
351
|
-
|
|
352
|
-
currentDir = Dir.pwd
|
|
353
|
-
|
|
354
|
-
pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
|
|
355
|
-
config_repo_dir = File.join(pindo_dir, @deploy_identifier)
|
|
356
|
-
app_build_version = @config_json['app_info']['app_build_version']
|
|
357
|
-
|
|
358
|
-
puts "old version #{app_build_version}"
|
|
359
|
-
build_version_array = app_build_version.split('.') || []
|
|
360
|
-
while build_version_array.size < 3 do
|
|
361
|
-
build_version_array << "0"
|
|
362
|
-
end
|
|
363
|
-
|
|
364
|
-
last_numer = build_version_array.pop.to_s
|
|
365
|
-
new_last_numer = last_numer.to_i + 1
|
|
366
|
-
build_version_array << new_last_numer.to_s
|
|
367
|
-
app_build_version = build_version_array.join(".")
|
|
368
|
-
puts "new version #{app_build_version}"
|
|
369
|
-
|
|
370
|
-
@config_json['app_info']['app_build_version'] = app_build_version
|
|
371
|
-
|
|
372
|
-
app_origin_config = File.join(config_repo_dir, "config.json")
|
|
373
|
-
config_json = JSON.parse(File.read(app_origin_config))
|
|
374
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
|
375
|
-
File.open(app_origin_config, "w") do |file|
|
|
376
|
-
file.write(JSON.pretty_generate(config_json))
|
|
377
|
-
file.close
|
|
378
|
-
end
|
|
379
|
-
|
|
380
|
-
config_json = JSON.parse(File.read(@args_appconfig_fullname))
|
|
381
|
-
config_json['app_info']['app_build_version'] = app_build_version
|
|
382
|
-
File.open(@args_appconfig_fullname, "w") do |file|
|
|
383
|
-
file.write(JSON.pretty_generate(config_json))
|
|
384
|
-
file.close
|
|
385
|
-
end
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
git_addpush_repo(path:config_repo_dir, message:"increate build number", commit_file_params:["config.json"])
|
|
389
|
-
end
|
|
390
|
-
|
|
391
|
-
|
|
392
295
|
|
|
393
296
|
end
|
|
394
297
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
require 'pindo/command/ipa/import'
|
|
4
|
+
require 'pindo/command/ipa/output'
|
|
5
|
+
require 'pindo/command/ipa/autoresign'
|
|
6
|
+
|
|
7
|
+
module Pindo
|
|
8
|
+
class Command
|
|
9
|
+
|
|
10
|
+
class Ipa < Command
|
|
11
|
+
self.abstract_command = true
|
|
12
|
+
self.summary = '发布阶段自动化相关命令'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -19,13 +19,17 @@ module Pindo
|
|
|
19
19
|
|
|
20
20
|
def self.options
|
|
21
21
|
[
|
|
22
|
+
['--install', '更新完lib之后执行pod install, pindo lib update --install'],
|
|
23
|
+
['--p', '指定需要lint的pod库所在目录, 例如 --p=~/Users/xxx/MyPod'],
|
|
22
24
|
].concat(super)
|
|
23
25
|
end
|
|
24
26
|
|
|
25
27
|
def initialize(argv)
|
|
28
|
+
@args_install_flag = argv.flag?('install', false)
|
|
29
|
+
@project_dir = argv.option('p')
|
|
26
30
|
|
|
27
|
-
super(argv)
|
|
28
31
|
@additional_args = argv.remainder!
|
|
32
|
+
super(argv)
|
|
29
33
|
end
|
|
30
34
|
|
|
31
35
|
def validate!
|
|
@@ -45,27 +49,32 @@ module Pindo
|
|
|
45
49
|
raise Informative, '私有Pod索引地址未知!!'
|
|
46
50
|
end
|
|
47
51
|
sources = Pod::Config.instance.sources_manager.all
|
|
52
|
+
repos_path = File.expand_path("~/.cocoapods/repos")
|
|
48
53
|
|
|
49
54
|
private_source = sources.select { |s| s.git? && s.url.to_s.eql?(pod_index_url)}.first
|
|
50
55
|
if !private_source.nil?
|
|
51
|
-
|
|
56
|
+
|
|
52
57
|
puts "地址:#{private_source.url}"
|
|
53
58
|
puts "目录:#{private_source.repo}"
|
|
54
|
-
|
|
59
|
+
getcode_to_dir(reponame:File.basename(private_source.repo), remote_url: pod_index_url, path:repos_path)
|
|
55
60
|
else
|
|
56
|
-
puts "下载私有库索引地址..."
|
|
57
61
|
puts "地址:#{pod_index_url}"
|
|
58
62
|
puts "目录:~/.cocoapods"
|
|
59
|
-
|
|
60
|
-
getcode_to_dir(reponame:
|
|
63
|
+
repository_name = pod_index_url.split("/").last.chomp(".git")
|
|
64
|
+
getcode_to_dir(reponame:repository_name, remote_url: pod_index_url, path:repos_path)
|
|
61
65
|
end
|
|
62
66
|
|
|
63
67
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
68
|
+
if @args_install_flag
|
|
69
|
+
begin
|
|
70
|
+
if File.exist?("#{working_dir}/Podfile")
|
|
71
|
+
Pod::Command::Install::run(['--clean-install'])
|
|
72
|
+
end
|
|
73
|
+
rescue => e
|
|
74
|
+
puts e.message
|
|
75
|
+
end
|
|
67
76
|
end
|
|
68
|
-
|
|
77
|
+
|
|
69
78
|
end
|
|
70
79
|
|
|
71
80
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
|
|
2
|
+
require 'pindo/command/lib/lint'
|
|
3
|
+
require 'pindo/command/lib/push'
|
|
4
|
+
require 'pindo/command/lib/forcepush'
|
|
5
|
+
require 'pindo/command/lib/update'
|
|
6
|
+
|
|
7
|
+
module Pindo
|
|
8
|
+
class Command
|
|
9
|
+
|
|
10
|
+
class Lib < Command
|
|
11
|
+
self.abstract_command = true
|
|
12
|
+
self.summary = 'pod库的相关命令'
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|