pindo 4.6.9 → 4.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/aeshelper.rb +48 -2
  3. data/lib/pindo/base/funlog.rb +89 -0
  4. data/lib/pindo/base/githelper.rb +30 -12
  5. data/lib/pindo/base/plaininformative.rb +3 -0
  6. data/lib/pindo/base/standarderror.rb +1 -0
  7. data/lib/pindo/base/xcodeconst.rb +251 -0
  8. data/lib/pindo/client/applovinclient.rb +6 -3
  9. data/lib/pindo/client/aws3sclient.rb +33 -46
  10. data/lib/pindo/client/bossclient.rb +1 -1
  11. data/lib/pindo/client/pgyerclient.rb +78 -14
  12. data/lib/pindo/command/appstore/iap.rb +43 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +41 -0
  14. data/lib/pindo/command/appstore/metadata.rb +43 -0
  15. data/lib/pindo/command/appstore/screenshots.rb +43 -0
  16. data/lib/pindo/command/appstore/upload.rb +40 -0
  17. data/lib/pindo/command/appstore.rb +17 -0
  18. data/lib/pindo/command/deploy/build.rb +109 -0
  19. data/lib/pindo/{deploy → command/deploy}/bundleid.rb +1 -1
  20. data/lib/pindo/command/deploy/cert.rb +179 -0
  21. data/lib/pindo/command/deploy/configproj.rb +105 -0
  22. data/lib/pindo/{deploy → command/deploy}/getitcinfo.rb +1 -1
  23. data/lib/pindo/{deploy → command/deploy}/iap.rb +30 -9
  24. data/lib/pindo/{deploy → command/deploy}/itcapp.rb +0 -1
  25. data/lib/pindo/{deploy → command/deploy}/itcinfo.rb +2 -3
  26. data/lib/pindo/{deploy → command/deploy}/pem.rb +3 -2
  27. data/lib/pindo/{deploy → command/deploy}/resign.rb +14 -63
  28. data/lib/pindo/command/deploy.rb +44 -0
  29. data/lib/pindo/{dev → command/dev}/autobuild.rb +17 -80
  30. data/lib/pindo/{dev → command/dev}/autoresign.rb +17 -64
  31. data/lib/pindo/{dev → command/dev}/createbuild.rb +0 -2
  32. data/lib/pindo/{dev → command/dev}/debug.rb +6 -2
  33. data/lib/pindo/command/dev/pgyercert.rb +75 -0
  34. data/lib/pindo/command/dev.rb +25 -0
  35. data/lib/pindo/command/env.rb +17 -0
  36. data/lib/pindo/{ipa → command/ipa}/autoresign.rb +18 -70
  37. data/lib/pindo/{ipa → command/ipa}/import.rb +47 -102
  38. data/lib/pindo/{ipa → command/ipa}/output.rb +38 -135
  39. data/lib/pindo/command/ipa.rb +16 -0
  40. data/lib/pindo/{lib → command/lib}/update.rb +19 -10
  41. data/lib/pindo/command/lib.rb +16 -0
  42. data/lib/pindo/{pgyer → command/pgyer}/apptest.rb +7 -29
  43. data/lib/pindo/{pgyer → command/pgyer}/comment.rb +7 -30
  44. data/lib/pindo/{pgyer → command/pgyer}/download.rb +35 -30
  45. data/lib/pindo/{pgyer → command/pgyer}/login.rb +3 -4
  46. data/lib/pindo/command/pgyer/resign.rb +111 -0
  47. data/lib/pindo/command/pgyer/upload.rb +123 -0
  48. data/lib/pindo/command/pgyer.rb +18 -0
  49. data/lib/pindo/{repo.rb → command/repo.rb} +4 -4
  50. data/lib/pindo/{utils → command/utils}/applovin.rb +43 -33
  51. data/lib/pindo/{utils → command/utils}/boss.rb +3 -3
  52. data/lib/pindo/command/utils/icon.rb +81 -0
  53. data/lib/pindo/{utils → command/utils}/renewproj.rb +1 -0
  54. data/lib/pindo/command/utils.rb +26 -0
  55. data/lib/pindo/command.rb +23 -26
  56. data/lib/pindo/module/build/swarkhelper.rb +95 -0
  57. data/lib/pindo/module/cert/certhelper.rb +176 -0
  58. data/lib/pindo/module/cert/keychainhelper.rb +138 -0
  59. data/lib/pindo/module/{pemcreate.rb → cert/pemhelper.rb} +3 -1
  60. data/lib/pindo/module/cert/provisioninghelper.rb +137 -0
  61. data/lib/pindo/module/cert/xcodecerthelper.rb +301 -0
  62. data/lib/pindo/module/{pgyerhelper.rb → pgyer/pgyerhelper.rb} +246 -35
  63. data/lib/pindo/module/xcode/xcodeappconfig.rb +188 -0
  64. data/lib/pindo/module/xcode/xcodebuildconfig.rb +12 -0
  65. data/lib/pindo/module/xcode/xcodebuildhelper.rb +312 -0
  66. data/lib/pindo/module/xcode/xcoderesconstant.rb +248 -0
  67. data/lib/pindo/module/xcode/xcodereshandler.rb +198 -0
  68. data/lib/pindo/module/xcode/xcodereshelper.rb +120 -0
  69. data/lib/pindo/options/appconfigoptions.rb +1 -0
  70. data/lib/pindo/options/deployoptions.rb +38 -41
  71. data/lib/pindo/version.rb +1 -1
  72. metadata +109 -97
  73. data/lib/pindo/deploy/Fastfile +0 -233
  74. data/lib/pindo/deploy/build.rb +0 -167
  75. data/lib/pindo/deploy/cert.rb +0 -508
  76. data/lib/pindo/deploy/configproj.rb +0 -89
  77. data/lib/pindo/deploy.rb +0 -44
  78. data/lib/pindo/dev.rb +0 -23
  79. data/lib/pindo/env/flutter.rb +0 -59
  80. data/lib/pindo/env/flutter.sh +0 -116
  81. data/lib/pindo/env.rb +0 -17
  82. data/lib/pindo/ipa.rb +0 -22
  83. data/lib/pindo/lib.rb +0 -18
  84. data/lib/pindo/module/buildconfighelper.rb +0 -13
  85. data/lib/pindo/module/buildhelper.rb +0 -76
  86. data/lib/pindo/module/config_project.sh +0 -143
  87. data/lib/pindo/module/configprojhelper.rb +0 -631
  88. data/lib/pindo/module/icon_contents.json +0 -116
  89. data/lib/pindo/module/imessage_icon.json +0 -91
  90. data/lib/pindo/module/imgset_contents.json +0 -21
  91. data/lib/pindo/module/launchimg_contents.json +0 -21
  92. data/lib/pindo/module/xcodebuildpre.rb +0 -258
  93. data/lib/pindo/pgyer/upload.rb +0 -234
  94. data/lib/pindo/pgyer.rb +0 -17
  95. data/lib/pindo/utils/icon.rb +0 -91
  96. data/lib/pindo/utils/icon.sh +0 -133
  97. data/lib/pindo/utils/podindex.rb +0 -56
  98. data/lib/pindo/utils/podindex.sh +0 -30
  99. data/lib/pindo/utils.rb +0 -29
  100. /data/lib/pindo/{deploy → command/deploy}/check.rb +0 -0
  101. /data/lib/pindo/{deploy → command/deploy}/confusecode.rb +0 -0
  102. /data/lib/pindo/{deploy → command/deploy}/confuseproj.rb +0 -0
  103. /data/lib/pindo/{deploy → command/deploy}/fabric.rb +0 -0
  104. /data/lib/pindo/{deploy → command/deploy}/initconfig.rb +0 -0
  105. /data/lib/pindo/{deploy → command/deploy}/pullconfig.rb +0 -0
  106. /data/lib/pindo/{deploy → command/deploy}/pushconfig.rb +0 -0
  107. /data/lib/pindo/{deploy → command/deploy}/quswark.rb +0 -0
  108. /data/lib/pindo/{deploy → command/deploy}/quswauth.rb +0 -0
  109. /data/lib/pindo/{deploy → command/deploy}/reportbug.rb +0 -0
  110. /data/lib/pindo/{deploy → command/deploy}/tag.rb +0 -0
  111. /data/lib/pindo/{deploy → command/deploy}/updateconfig.rb +0 -0
  112. /data/lib/pindo/{deploy → command/deploy}/uploadipa.rb +0 -0
  113. /data/lib/pindo/{dev → command/dev}/confusecode.rb +0 -0
  114. /data/lib/pindo/{dev → command/dev}/confuseproj.rb +0 -0
  115. /data/lib/pindo/{dev → command/dev}/pub.rb +0 -0
  116. /data/lib/pindo/{dev → command/dev}/renewcert.rb +0 -0
  117. /data/lib/pindo/{env → command/env}/dreamstudio.rb +0 -0
  118. /data/lib/pindo/{env → command/env}/quarkenv.rb +0 -0
  119. /data/lib/pindo/{env → command/env}/swarkenv.rb +0 -0
  120. /data/lib/pindo/{env → command/env}/workhard.rb +0 -0
  121. /data/lib/pindo/{lib → command/lib}/forcepush.rb +0 -0
  122. /data/lib/pindo/{lib → command/lib}/lint.rb +0 -0
  123. /data/lib/pindo/{lib → command/lib}/push.rb +0 -0
  124. /data/lib/pindo/{repo → command/repo}/clone.rb +0 -0
  125. /data/lib/pindo/{repo → command/repo}/create.rb +0 -0
  126. /data/lib/pindo/{repo → command/repo}/login.rb +0 -0
  127. /data/lib/pindo/{repo → command/repo}/search.rb +0 -0
  128. /data/lib/pindo/{setup.rb → command/setup.rb} +0 -0
  129. /data/lib/pindo/{upgrade.rb → command/upgrade.rb} +0 -0
  130. /data/lib/pindo/{utils → command/utils}/clearcert.rb +0 -0
  131. /data/lib/pindo/{utils → command/utils}/device.rb +0 -0
  132. /data/lib/pindo/{utils → command/utils}/tgate.rb +0 -0
  133. /data/lib/pindo/{utils → command/utils}/xcassets.rb +0 -0
  134. /data/lib/pindo/{utils → command/utils}/xcassets.sh +0 -0
  135. /data/lib/pindo/module/{appstore_in_app_purchase.rb → appstore/appstore_in_app_purchase.rb} +0 -0
  136. /data/lib/pindo/module/{appstore_metadata_connect_api_helper.rb → appstore/appstore_metadata_connect_api_helper.rb} +0 -0
  137. /data/lib/pindo/module/{appstore_metadata_fastlane_helper.rb → appstore/appstore_metadata_fastlane_helper.rb} +0 -0
  138. /data/lib/pindo/module/{iap_tier.json → appstore/iap_tier.json} +0 -0
  139. /data/lib/pindo/module/{commonconfuseproj.rb → build/commonconfuseproj.rb} +0 -0
  140. /data/lib/pindo/module/{xcodehelper.rb → xcode/xcodehelper.rb} +0 -0
@@ -0,0 +1,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
@@ -12,7 +12,7 @@ module Pindo
12
12
 
13
13
  include Command::DeployOptions
14
14
 
15
- include Xcodebuildpre
15
+ include XcodeCertHelper
16
16
  include AppstoreMetadataConnectApiHelper
17
17
 
18
18
 
@@ -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
- boss_iap_json["client_vip"] = {}
166
- boss_iap_json["offer_map"] = {}
167
- boss_iap_json["client_vip"]["style"] = "tribble_style"
168
- boss_iap_json["client_vip"]["best_deal"] = "offer.id." + vip_mode + "0"
169
- boss_iap_json["client_vip"]["offer"] = []
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
- boss_iap_json["client_vip"]["offer"] << boss_iap_item["offer_id"]
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)
@@ -1,4 +1,3 @@
1
- require 'pindo/deploy/bundleid'
2
1
 
3
2
  module Pindo
4
3
  class Command
@@ -13,7 +13,7 @@ module Pindo
13
13
 
14
14
  include Command::DeployOptions
15
15
 
16
- include Xcodebuildpre
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 Pemcreate
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
- bundle_id_dict = pindo_single_config.get_cert_info
256
- bundle_id_signing_identity = bundle_id_dict["bundle_id_cert_common_name"]
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
- if @bundle_id_widget then
316
- resign_dict[@bundle_id_widget] = bundle_id_dict['bundle_id_widget']['bundle_id_widget_profile_path']
317
- end
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