pindo 4.6.9 → 4.7.0
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 +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
@@ -0,0 +1,179 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'match'
|
3
|
+
require 'pindo/module/build/swarkhelper'
|
4
|
+
require 'pindo/module/cert/xcodecerthelper'
|
5
|
+
require 'pindo/module/cert/certhelper'
|
6
|
+
|
7
|
+
module Pindo
|
8
|
+
class Command
|
9
|
+
class Deploy < Command
|
10
|
+
class Cert < Deploy
|
11
|
+
|
12
|
+
include Command::DeployOptions
|
13
|
+
include XcodeCertHelper
|
14
|
+
include CertHelper
|
15
|
+
include SwarkHelper
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
self.summary = '创建证书并使用设置工程的证书'
|
20
|
+
|
21
|
+
self.description = <<-DESC
|
22
|
+
根据config.json中的bundle id获取最新证书,默认不创建证书。如果在工程目录下,会自动设置工程证书。用法 pindo deploy cert
|
23
|
+
默认创建appstore证书。 如果需要重新创建dev 证书, 用法:pindo deploy cert --dev --renew
|
24
|
+
DESC
|
25
|
+
|
26
|
+
self.arguments = [
|
27
|
+
CLAide::Argument.new('path/to/config.json', true),
|
28
|
+
]
|
29
|
+
|
30
|
+
def self.options
|
31
|
+
|
32
|
+
[
|
33
|
+
['--dev', '操作dev证书'],
|
34
|
+
['--adhoc', '操作adhoc证书'],
|
35
|
+
['--clean', '删除本地缓存的证书'],
|
36
|
+
['--cleangit', '删除远程仓库中的证书'],
|
37
|
+
['--upload', '生成上传pgyer的证书'],
|
38
|
+
['--match', '生成上传pgyer的证书'],
|
39
|
+
['--renew', '重新生成证书']
|
40
|
+
].concat(super)
|
41
|
+
end
|
42
|
+
|
43
|
+
def initialize(argv)
|
44
|
+
@clean_flag = argv.flag?('clean', false)
|
45
|
+
@clean_git_flag = argv.flag?('cleangit', false)
|
46
|
+
@upload_flag = argv.flag?('upload', false)
|
47
|
+
@renew_cert_flag = argv.flag?('renew', false)
|
48
|
+
@match_flag = argv.flag?('match', false)
|
49
|
+
|
50
|
+
super
|
51
|
+
|
52
|
+
@build_type = "appstore"
|
53
|
+
if @args_adhoc_flag
|
54
|
+
@build_type = "adhoc"
|
55
|
+
end
|
56
|
+
if @args_dev_flag
|
57
|
+
@build_type = "development"
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
def run
|
63
|
+
|
64
|
+
if @clean_flag
|
65
|
+
puts "Clear cert at local ..."
|
66
|
+
Pindo::Command::Utils::Clearcert::run([])
|
67
|
+
end
|
68
|
+
|
69
|
+
if @renew_cert_flag && @clean_git_flag
|
70
|
+
pindo_dir = pindo_single_config.pindo_dir
|
71
|
+
git_url = pindo_single_config.deploy_cert_giturl
|
72
|
+
if @apple_id.eql?(pindo_single_config.demo_apple_id)
|
73
|
+
git_url = pindo_single_config.dev_cert_giturl
|
74
|
+
end
|
75
|
+
cert_repo_dir = getcode_to_dir(reponame:get_repo_base_name(repo_url:git_url), remote_url:git_url, path:pindo_dir, new_branch:@apple_id)
|
76
|
+
FileUtils.rm_rf(File.join(cert_repo_dir, "certs"))
|
77
|
+
FileUtils.rm_rf(File.join(cert_repo_dir, "profiles"))
|
78
|
+
git_addpush_repo(path:cert_repo_dir, message:"remove #{@apple_id} certs")
|
79
|
+
end
|
80
|
+
|
81
|
+
bundle_id_array = get_bundle_id_map.values
|
82
|
+
provisioning_info_array = nil
|
83
|
+
|
84
|
+
# if @renew_cert_flag || @match_flag
|
85
|
+
values = get_create_cert_match_values(apple_id:@apple_id, bundle_id_array:bundle_id_array, build_type:@build_type, renew_flag:@renew_cert_flag)
|
86
|
+
config = FastlaneCore::Configuration.create(Match::Options.available_options, values)
|
87
|
+
Match::Runner.new.run(config)
|
88
|
+
provisioning_info_array = create_provisioning_info_array(build_type:@build_type)
|
89
|
+
pindo_single_config.set_cert_info(dict: provisioning_info_array)
|
90
|
+
|
91
|
+
# else
|
92
|
+
|
93
|
+
# cert_git_url = pindo_single_config.deploy_cert_giturl
|
94
|
+
# if @apple_id.eql?(pindo_single_config.demo_apple_id)
|
95
|
+
# cert_git_url = pindo_single_config.dev_cert_giturl
|
96
|
+
# end
|
97
|
+
# cert_reponame = cert_git_url.split("/").last.chomp(".git")
|
98
|
+
# certs_dir = getcode_to_dir(reponame:cert_reponame, remote_url:cert_git_url, path: pindo_single_config.pindo_dir, new_branch:@apple_id)
|
99
|
+
|
100
|
+
# install_certs(certs_dir:certs_dir, cert_type:@build_type)
|
101
|
+
# bundle_id_map = get_bundle_id_map
|
102
|
+
# provisioning_info_array = install_provisionfiles(certs_dir:certs_dir, bundle_id_map:bundle_id_map, cert_type:@build_type)
|
103
|
+
# pindo_single_config.set_cert_info(dict: provisioning_info_array)
|
104
|
+
# end
|
105
|
+
|
106
|
+
|
107
|
+
team_id_key = Match::Utils.environment_variable_name_team_id(app_identifier: @bundle_id,type:@build_type)
|
108
|
+
@team_id_vaule = ENV[team_id_key]
|
109
|
+
|
110
|
+
#发布机需要给swark注册bundle id
|
111
|
+
add_swark_authorize_json
|
112
|
+
|
113
|
+
if @args_adhoc_flag || @args_appstore_flag
|
114
|
+
cert_type = "Development".downcase
|
115
|
+
if @args_adhoc_flag
|
116
|
+
cert_type = "Adhoc".downcase
|
117
|
+
end
|
118
|
+
if @upload_flag
|
119
|
+
create_upload_cert_info(apple_id:@apple_id, cert_type:cert_type, provisioning_info_array:provisioning_info_array)
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
new_project_dir = Dir.pwd
|
124
|
+
new_project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
125
|
+
if !new_project_fullname.nil? && File.exist?(new_project_fullname) && !provisioning_info_array.nil? && provisioning_info_array.size > 0
|
126
|
+
new_proj_name = File.basename(new_project_fullname, ".xcodeproj")
|
127
|
+
config_project_cert(new_proj_name:new_proj_name, new_project_dir:new_project_dir, cert_type:@build_type, team_id_vaule:@team_id_vaule, provisioning_info_array:provisioning_info_array)
|
128
|
+
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)
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def get_create_cert_match_values(apple_id:nil, bundle_id_array:nil, build_type:nil, renew_flag:false)
|
134
|
+
|
135
|
+
if build_type.eql?("appstore") && (apple_id.eql?(pindo_single_config.demo_apple_id))
|
136
|
+
raise Informative, "#{apple_id} 是测试账号,不能创建appstore证书!!!"
|
137
|
+
end
|
138
|
+
if !build_type.eql?("appstore") && !apple_id.eql?(pindo_single_config.demo_apple_id)
|
139
|
+
raise Informative, "账号#{apple_id} 不能创建dev或者adhoc证书!!!"
|
140
|
+
end
|
141
|
+
|
142
|
+
git_url = pindo_single_config.deploy_cert_giturl
|
143
|
+
if @apple_id.eql?(pindo_single_config.demo_apple_id)
|
144
|
+
git_url = pindo_single_config.dev_cert_giturl
|
145
|
+
end
|
146
|
+
|
147
|
+
force_for_new_devices_flag = true
|
148
|
+
if build_type.eql?("appstore")
|
149
|
+
force_for_new_devices_flag = false
|
150
|
+
end
|
151
|
+
|
152
|
+
platform_type = "ios"
|
153
|
+
if @config_json && @config_json['project_info'] && @config_json['project_info']['build_type'].include?("MacOS")
|
154
|
+
platform_type = "macos"
|
155
|
+
end
|
156
|
+
|
157
|
+
values = {
|
158
|
+
username:apple_id,
|
159
|
+
app_identifier: bundle_id_array,
|
160
|
+
type: build_type,
|
161
|
+
keychain_password:"goodcert1",
|
162
|
+
git_url: git_url,
|
163
|
+
readonly:!renew_flag,
|
164
|
+
force:renew_flag,
|
165
|
+
clone_branch_directly:!renew_flag,
|
166
|
+
include_mac_in_profiles:true,
|
167
|
+
include_all_certificates:true,
|
168
|
+
generate_apple_certs:true,
|
169
|
+
shallow_clone:!renew_flag,
|
170
|
+
git_branch: apple_id,
|
171
|
+
platform:platform_type,
|
172
|
+
force_for_new_devices:force_for_new_devices_flag
|
173
|
+
}
|
174
|
+
return values
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
|
2
|
+
require 'find'
|
3
|
+
require 'cocoapods-core'
|
4
|
+
require 'pindo/module/xcode/xcodebuildhelper'
|
5
|
+
require 'pindo/module/xcode/xcodeappconfig'
|
6
|
+
require 'pindo/module/build/swarkhelper'
|
7
|
+
|
8
|
+
module Pindo
|
9
|
+
class Command
|
10
|
+
class Deploy < Command
|
11
|
+
class Configproj < Deploy
|
12
|
+
|
13
|
+
include Command::DeployOptions
|
14
|
+
|
15
|
+
include XcodeBuildHelper
|
16
|
+
include XcodeAppConfig
|
17
|
+
include XcodeCertHelper
|
18
|
+
|
19
|
+
include SwarkHelper
|
20
|
+
|
21
|
+
# include Configprojhelper
|
22
|
+
|
23
|
+
self.summary = '修改Xcode工程编译参数'
|
24
|
+
|
25
|
+
self.description = <<-DESC
|
26
|
+
根据config.json修改Xcode工程编译参数, 用法:工程目录下执行pindo deploy configproj
|
27
|
+
DESC
|
28
|
+
|
29
|
+
self.arguments = [
|
30
|
+
CLAide::Argument.new('path/to/config.json', true),
|
31
|
+
]
|
32
|
+
|
33
|
+
def run
|
34
|
+
|
35
|
+
check_config_version
|
36
|
+
|
37
|
+
current_dir = Dir.pwd
|
38
|
+
|
39
|
+
app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
|
40
|
+
|
41
|
+
project_fullname = Dir.glob(File.join(current_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
|
42
|
+
if project_fullname.nil? || !File.exist?(project_fullname) then
|
43
|
+
raise "找到多个.xcodeproj文件,请检查"
|
44
|
+
end
|
45
|
+
@proj_name = File.basename(project_fullname, ".xcodeproj")
|
46
|
+
|
47
|
+
|
48
|
+
Funlog.instance.fancyinfo_start("正在替换google-info.plist...")
|
49
|
+
google_info_config_dir = clong_buildconfig_repo(repo_name: @bundle_id)
|
50
|
+
install_google_plist(project_dir:current_dir, app_config_dir:google_info_config_dir)
|
51
|
+
Funlog.instance.fancyinfo_success("替换google-info.plist完成!")
|
52
|
+
|
53
|
+
|
54
|
+
icon_name = File.join(app_config_dir,"fastlane","icon.png")
|
55
|
+
time = Time.now.strftime('%m%d-%H%M%S')
|
56
|
+
new_icon_dir = File.join(current_dir, "icon_"+time)
|
57
|
+
|
58
|
+
Funlog.instance.fancyinfo_start("正在创建icon...")
|
59
|
+
XcodeResHelper.create_icons(icon_name: icon_name, new_icon_dir: new_icon_dir)
|
60
|
+
Funlog.instance.fancyinfo_success("创建icon完成!")
|
61
|
+
|
62
|
+
Funlog.instance.fancyinfo_start("正在替换icon...")
|
63
|
+
XcodeResHelper.install_icon(proj_dir: current_dir, new_icon_dir: new_icon_dir)
|
64
|
+
Funlog.instance.fancyinfo_success("替换icon完成!")
|
65
|
+
|
66
|
+
begin
|
67
|
+
FileUtils.rm_rf(new_icon_dir)
|
68
|
+
rescue StandardError => err
|
69
|
+
end
|
70
|
+
|
71
|
+
Funlog.instance.fancyinfo_start("正在替换启动页...")
|
72
|
+
launchimg_filename = File.join(app_config_dir,"launch","w768_h1024@2x.png")
|
73
|
+
XcodeResHelper.install_launchimg(proj_dir:current_dir, launchimg_filename:launchimg_filename)
|
74
|
+
Funlog.instance.fancyinfo_success("启动页处理完成!")
|
75
|
+
|
76
|
+
add_project_modue(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
|
77
|
+
|
78
|
+
Funlog.instance.fancyinfo_start("正在修改工程配置...")
|
79
|
+
modify_info_plist(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
modify_project_config(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
|
84
|
+
|
85
|
+
appprefix_file = "AppPrefix.plist"
|
86
|
+
if @config_json && @config_json['project_info']['appprefix_plist'] then
|
87
|
+
appprefix_file = @config_json['project_info']['appprefix_plist']
|
88
|
+
end
|
89
|
+
modify_appprefix_plist(project_dir:current_dir, appprefix_file:appprefix_file, config_json:@config_json)
|
90
|
+
|
91
|
+
Funlog.instance.fancyinfo_success("工程配置修改完成!")
|
92
|
+
|
93
|
+
check_swark_authorize(config_json:@config_json)
|
94
|
+
|
95
|
+
end
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
end
|
102
|
+
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -161,17 +161,26 @@ module Pindo
|
|
161
161
|
|
162
162
|
appstore_iap_items = vip_group_item["items"] || vip_group_item["subscription_items"]
|
163
163
|
|
164
|
-
boss_iap_json = {
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
164
|
+
boss_iap_json = {
|
165
|
+
"client_vip" => {
|
166
|
+
"situation_list" => [],
|
167
|
+
"style_list" => []
|
168
|
+
},
|
169
|
+
"offer_map" => {}
|
170
|
+
}
|
171
|
+
|
172
|
+
situation_list_item = {
|
173
|
+
"situation" => "launch",
|
174
|
+
"style" => "tribble_style"
|
175
|
+
}
|
176
|
+
style_list_item = {
|
177
|
+
"style" => "tribble_style",
|
178
|
+
"best_deal" => "offer.id." + vip_mode + "0",
|
179
|
+
"offer" => []
|
180
|
+
}
|
170
181
|
|
171
182
|
if !appstore_iap_items.nil? && appstore_iap_items.size > 0
|
172
|
-
|
173
183
|
appstore_iap_items.each do |appstore_iap_item|
|
174
|
-
|
175
184
|
boss_iap_item = {}
|
176
185
|
boss_iap_item["offer_id"] = "offer.id." + vip_mode
|
177
186
|
boss_iap_item["kind"] = "vip"
|
@@ -213,10 +222,22 @@ module Pindo
|
|
213
222
|
end
|
214
223
|
|
215
224
|
boss_iap_json["offer_map"][boss_iap_item["offer_id"]] = boss_iap_item
|
216
|
-
|
225
|
+
style_list_item["offer"] << boss_iap_item["offer_id"]
|
226
|
+
end
|
217
227
|
|
228
|
+
if style_list_item["offer"].size == 3
|
229
|
+
situation_list_item["style"] = "tribble_style"
|
230
|
+
style_list_item["style"] = "tribble_style"
|
231
|
+
elsif style_list_item["offer"].size == 2
|
232
|
+
situation_list_item["style"] = "double_style"
|
233
|
+
style_list_item["style"] = "double_style"
|
234
|
+
elsif style_list_item["offer"].size == 1
|
235
|
+
situation_list_item["style"] = "single_style"
|
236
|
+
style_list_item["style"] = "single_style"
|
218
237
|
end
|
219
238
|
|
239
|
+
boss_iap_json["client_vip"]["situation_list"] << situation_list_item
|
240
|
+
boss_iap_json["client_vip"]["style_list"] << style_list_item
|
220
241
|
end
|
221
242
|
|
222
243
|
puts JSON.pretty_generate(boss_iap_json)
|
@@ -13,7 +13,7 @@ module Pindo
|
|
13
13
|
|
14
14
|
include Command::DeployOptions
|
15
15
|
|
16
|
-
include
|
16
|
+
include XcodeCertHelper
|
17
17
|
include AppstoreMetadataConnectApiHelper
|
18
18
|
|
19
19
|
|
@@ -69,8 +69,8 @@ module Pindo
|
|
69
69
|
end
|
70
70
|
|
71
71
|
if @upload_screenshots_flag
|
72
|
+
ENV["FASTLANE_ENABLE_BETA_DELIVER_SYNC_SCREENSHOTS"] = "YES"
|
72
73
|
app_screenshots_dir = File.join(@app_config_dir, "fastlane/screenshots")
|
73
|
-
|
74
74
|
fastlane_process_screenshots(app_screenshots_dir:app_screenshots_dir)
|
75
75
|
|
76
76
|
fastlane_login(apple_id:@apple_id)
|
@@ -80,7 +80,6 @@ module Pindo
|
|
80
80
|
if @upload_ipa_flag
|
81
81
|
# prepare_screenshots(project_dir:current_project_dir, apple_id:@apple_id, bundle_id:@bundle_id, config_json:@config_json)
|
82
82
|
command = "fastlane uploadipa"
|
83
|
-
puts "Upload Ipa ..."
|
84
83
|
system command
|
85
84
|
end
|
86
85
|
|
@@ -1,13 +1,14 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
+
|
3
4
|
module Pindo
|
4
5
|
class Command
|
5
6
|
class Deploy < Command
|
6
7
|
class Pem < Deploy
|
7
8
|
|
8
|
-
|
9
|
+
require 'pindo/module/cert/pemhelper'
|
9
10
|
include Command::DeployOptions
|
10
|
-
include
|
11
|
+
include PemHelper
|
11
12
|
|
12
13
|
self.summary = '创建App的push证书'
|
13
14
|
|
@@ -38,17 +38,7 @@ module Pindo
|
|
38
38
|
def initialize(argv)
|
39
39
|
|
40
40
|
@ipa_file_name = argv.option('ipa')
|
41
|
-
super
|
42
|
-
|
43
|
-
|
44
|
-
@build_type = "appstore"
|
45
|
-
if @args_adhoc_flag
|
46
|
-
@build_type = "adhoc"
|
47
|
-
end
|
48
|
-
if @args_dev_flag
|
49
|
-
@build_type = "development"
|
50
|
-
end
|
51
|
-
|
41
|
+
super(argv)
|
52
42
|
end
|
53
43
|
|
54
44
|
def run
|
@@ -252,18 +242,18 @@ module Pindo
|
|
252
242
|
|
253
243
|
def sign_ipa_with_new_cert(ipa_name: nil)
|
254
244
|
|
255
|
-
|
256
|
-
bundle_id_signing_identity =
|
257
|
-
puts "bundle_id_signing_identity : #{bundle_id_signing_identity}"
|
245
|
+
profil_info_array = pindo_single_config.get_cert_info
|
246
|
+
bundle_id_signing_identity = profil_info_array.first['signing_identity']
|
247
|
+
# puts "bundle_id_signing_identity : #{bundle_id_signing_identity}"
|
258
248
|
|
259
|
-
profile_dict = resign_profile_dict()
|
249
|
+
profile_dict = resign_profile_dict(profil_info_array: profil_info_array)
|
250
|
+
|
251
|
+
# puts
|
252
|
+
# puts "profile_dict :"
|
253
|
+
# puts
|
254
|
+
# puts profile_dict
|
260
255
|
|
261
|
-
puts
|
262
|
-
puts "profile_dict :"
|
263
|
-
puts
|
264
|
-
puts profile_dict
|
265
256
|
|
266
|
-
|
267
257
|
# resign(ipa, signing_identity, provisioning_profiles, entitlements, ççç, display_name, short_version, bundle_version, new_bundle_id, use_app_entitlements, keychain_path)
|
268
258
|
|
269
259
|
Sigh::Resign.resign(ipa_name, bundle_id_signing_identity, profile_dict, nil, nil, nil, nil, nil, @bundle_id, true, nil)
|
@@ -281,51 +271,12 @@ module Pindo
|
|
281
271
|
end
|
282
272
|
end
|
283
273
|
|
284
|
-
def resign_profile_dict
|
285
|
-
|
286
|
-
bundle_id_dict = pindo_single_config.get_cert_info
|
287
|
-
|
288
|
-
resign_dict = {}
|
289
|
-
resign_dict[@bundle_id] = bundle_id_dict['bundle_id']['bundle_id_profile_path']
|
290
|
-
|
291
|
-
if @bundle_id_pushcontent then
|
292
|
-
resign_dict[@bundle_id_pushcontent] = bundle_id_dict['bundle_id_pushcontent']['bundle_id_pushcontent_profile_path']
|
293
|
-
end
|
274
|
+
def resign_profile_dict(profil_info_array: nil)
|
294
275
|
|
295
|
-
if @bundle_id_pushservice then
|
296
|
-
resign_dict[@bundle_id_pushservice] = bundle_id_dict['bundle_id_pushservice']['bundle_id_pushservice_profile_path']
|
297
|
-
end
|
298
|
-
|
299
|
-
if @bundle_id_keyboard then
|
300
|
-
resign_dict[@bundle_id_keyboard] = bundle_id_dict['bundle_id_keyboard']['bundle_id_keyboard_profile_path']
|
301
|
-
end
|
302
|
-
|
303
|
-
if @bundle_id_imessage then
|
304
|
-
resign_dict[@bundle_id_imessage] = bundle_id_dict['bundle_id_imessage']['bundle_id_imessage_profile_path']
|
305
|
-
end
|
306
|
-
|
307
|
-
if @bundle_id_siri then
|
308
|
-
resign_dict[@bundle_id_siri] = bundle_id_dict['bundle_id_siri']['bundle_id_siri_profile_path']
|
309
|
-
end
|
310
|
-
|
311
|
-
if @bundle_id_siriui then
|
312
|
-
resign_dict[@bundle_id_siriui] = bundle_id_dict['bundle_id_siriui']['bundle_id_siriui_profile_path']
|
313
|
-
end
|
314
276
|
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
if @bundle_id_extension then
|
320
|
-
resign_dict[@bundle_id_extension] = bundle_id_dict['bundle_id_extension']['bundle_id_extension_profile_path']
|
321
|
-
end
|
322
|
-
|
323
|
-
if @bundle_id_extensionad then
|
324
|
-
resign_dict[@bundle_id_extensionad] = bundle_id_dict['bundle_id_extensionad']['bundle_id_extensionad_profile_path']
|
325
|
-
end
|
326
|
-
|
327
|
-
if @bundle_id_extensionpron then
|
328
|
-
resign_dict[@bundle_id_extensionpron] = bundle_id_dict['bundle_id_extensionpron']['bundle_id_extensionpron_profile_path']
|
277
|
+
resign_dict = {}
|
278
|
+
profil_info_array.each do |profil_info|
|
279
|
+
resign_dict[profil_info["bundle_id"]] = profil_info["profile_path"]
|
329
280
|
end
|
330
281
|
|
331
282
|
return resign_dict
|
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
|
4
|
+
require 'pindo/command/deploy/updateconfig'
|
5
|
+
require 'pindo/command/deploy/initconfig'
|
6
|
+
require 'pindo/command/deploy/pullconfig'
|
7
|
+
require 'pindo/command/deploy/reportbug'
|
8
|
+
|
9
|
+
require 'pindo/command/deploy/bundleid'
|
10
|
+
require 'pindo/command/deploy/itcapp'
|
11
|
+
require 'pindo/command/deploy/cert'
|
12
|
+
require 'pindo/command/deploy/pem'
|
13
|
+
require 'pindo/command/deploy/build'
|
14
|
+
|
15
|
+
require 'pindo/command/deploy/configproj'
|
16
|
+
require 'pindo/command/deploy/confusecode'
|
17
|
+
require 'pindo/command/deploy/confuseproj'
|
18
|
+
require 'pindo/command/deploy/fabric'
|
19
|
+
require 'pindo/command/deploy/resign'
|
20
|
+
require 'pindo/command/deploy/iap'
|
21
|
+
require 'pindo/command/deploy/itcinfo'
|
22
|
+
require 'pindo/command/deploy/getitcinfo'
|
23
|
+
require 'pindo/command/deploy/quswark'
|
24
|
+
require 'pindo/command/deploy/quswauth'
|
25
|
+
require 'pindo/command/deploy/check'
|
26
|
+
require 'pindo/command/deploy/tag'
|
27
|
+
|
28
|
+
# require 'pindo/command/deploy/uploadipa'
|
29
|
+
|
30
|
+
module Pindo
|
31
|
+
class Command
|
32
|
+
|
33
|
+
|
34
|
+
class Deploy < Command
|
35
|
+
|
36
|
+
|
37
|
+
self.abstract_command = true
|
38
|
+
self.summary = '发布阶段相关命令'
|
39
|
+
|
40
|
+
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|