pindo 4.8.2 → 4.8.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8780beb56ee2ec66b0c9f8af141281fb24d62dbd77c3589400c704757ae877dc
4
- data.tar.gz: 58f39534fa0031d1909a6a7ad1d797fb0ca1c480d161b07013fa4d19273ca0b1
3
+ metadata.gz: f77f41090639d86cb2f9c9d9f2cfc70658700c79066a08a312936ed75f4297df
4
+ data.tar.gz: afe8ad53ca20bda0c124c6df7a0f76a554555fdac9eea2ddfe635204fdec9f3d
5
5
  SHA512:
6
- metadata.gz: 4b99125ae4096cf988e6f6ad4cf1147d242b62d350d67693b2385761470d7fb8efd3ddb18ccc764adb230611a0bc559a70eb840245211d918b2374cb6fe55119
7
- data.tar.gz: e7b2476acdcdfffa63167e0c7232670fba9d7509df138ab7da6634ce091875e68d00ed4af010105e4b8c6b91152429225676115a9018dd1684618cff8af3325f
6
+ metadata.gz: b0e985bb992fc5e25a81a7b977be5a4d6c8be69052f2b200496ec838b9118f995f8b8384dde96a0f534cc795e0c034796b1c84a1b075bdabc8f1f036ce47a33c
7
+ data.tar.gz: 15082bfd14a5e2a4aa3e780b3455b5ca6a22486280889f9b5103bcc771b282115da6097936c2121bdd6bac60e5b11809ae03dca222388f1d94a00b6c419c6667
@@ -118,12 +118,22 @@ module Pindo
118
118
  project_path = File.dirname(project_fullname)
119
119
  proj_name = File.basename(project_fullname, ".xcodeproj")
120
120
  project_obj = Xcodeproj::Project.open(project_fullname)
121
+
122
+ build_platform = project_obj.root_object.build_configuration_list.get_setting("SDKROOT")["Release"]
121
123
  main_target = project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application]) }.first
122
124
  provisioning_profile_name = main_target.build_configurations.first.build_settings['PROVISIONING_PROFILE_SPECIFIER'].downcase.split(" ")
123
125
 
126
+
127
+
124
128
  build_type = "app-store"
125
129
  icloud_env = "Production"
126
- if provisioning_profile_name.include?("adhoc")
130
+ if provisioning_profile_name.include?("direct") && provisioning_profile_name.include?("macos")
131
+ build_type = "developer-id"
132
+ icloud_env = "Production"
133
+ elsif provisioning_profile_name.include?("development") && provisioning_profile_name.include?("macos")
134
+ build_type = "development"
135
+ icloud_env = "Development"
136
+ elsif provisioning_profile_name.include?("adhoc")
127
137
  build_type = "ad-hoc"
128
138
  icloud_env = "Development"
129
139
  elsif provisioning_profile_name.include?("development")
@@ -134,6 +144,12 @@ module Pindo
134
144
  icloud_env = "Production"
135
145
  end
136
146
 
147
+ if build_type.eql?("app-store") || build_type.eql?("ad-hoc")
148
+ if File.exist?(File.join(project_path, "Unity/Data/Raw/SettingsPluginFlag.txt"))
149
+ raise Informative, "Unity代码包含测试模板,请重新导出Unity代码"
150
+ end
151
+ end
152
+
137
153
 
138
154
  app_ipaname_temp = main_target.build_configurations.first.build_settings['INFOPLIST_KEY_CFBundleDisplayName'] || main_target.display_name
139
155
  app_ipaname_temp = app_ipaname_temp.gsub(/ /, '');
@@ -150,6 +166,11 @@ module Pindo
150
166
  }
151
167
 
152
168
 
169
+ if !build_platform.nil? && build_platform.eql?("macosx")
170
+ values[:output_name] = nil
171
+ values[:destination] = "generic/platform=macosx"
172
+ end
173
+
153
174
  if File.exist?(File.join(project_path, "Podfile"))
154
175
  values[:workspace] = "#{proj_name}.xcworkspace"
155
176
  values[:project] = nil
@@ -32,6 +32,7 @@ module Pindo
32
32
  [
33
33
  ['--dev', '操作dev证书'],
34
34
  ['--adhoc', '操作adhoc证书'],
35
+ ['--macos', 'macos平台证书'],
35
36
  ['--clean', '删除本地缓存的证书'],
36
37
  ['--cleangit', '删除远程仓库中的证书'],
37
38
  ['--upload', '生成上传pgyer的证书'],
@@ -57,6 +58,11 @@ module Pindo
57
58
  @build_type = "development"
58
59
  end
59
60
 
61
+ @args_platform = "ios"
62
+ if @args_macos_flag
63
+ @args_platform = "macos"
64
+ end
65
+
60
66
  end
61
67
 
62
68
  def run
@@ -81,11 +87,22 @@ module Pindo
81
87
  bundle_id_array = get_bundle_id_map.values
82
88
  provisioning_info_array = nil
83
89
 
90
+
91
+ platform_type = "ios"
92
+ if @args_macos_flag
93
+ platform_type = "macos"
94
+ else
95
+ if @config_json && @config_json['project_info'] && @config_json['project_info']['build_type'].include?("MacOS")
96
+ platform_type = "macos"
97
+ end
98
+ end
99
+
100
+
84
101
  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)
102
+ values = get_create_cert_match_values(apple_id:@apple_id, bundle_id_array:bundle_id_array, build_type:@build_type, platform_type:platform_type, renew_flag:@renew_cert_flag)
86
103
  config = FastlaneCore::Configuration.create(Match::Options.available_options, values)
87
104
  Match::Runner.new.run(config)
88
- provisioning_info_array = create_provisioning_info_array(build_type:@build_type)
105
+ provisioning_info_array = create_provisioning_info_array(build_type:@build_type, platform_type:platform_type)
89
106
  pindo_single_config.set_cert_info(dict: provisioning_info_array)
90
107
 
91
108
  else
@@ -96,10 +113,9 @@ module Pindo
96
113
  cert_reponame = cert_git_url.split("/").last.chomp(".git")
97
114
  certs_dir = getcode_to_dir(reponame:cert_reponame, remote_url:cert_git_url, path: pindo_single_config.pindo_dir, new_branch:@apple_id)
98
115
 
99
- install_certs(cert_url:cert_git_url, certs_dir:certs_dir, cert_type:@build_type)
116
+ install_certs(cert_url:cert_git_url, certs_dir:certs_dir, cert_type:@build_type, platform_type:platform_type)
100
117
  bundle_id_map = get_bundle_id_map
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)
118
+ provisioning_info_array = install_provisionfiles(cert_url:cert_git_url, certs_dir:certs_dir, bundle_id_map:bundle_id_map, cert_type:@build_type, platform_type:platform_type)
103
119
  pindo_single_config.set_cert_info(dict: provisioning_info_array)
104
120
  end
105
121
 
@@ -124,12 +140,12 @@ module Pindo
124
140
  end
125
141
 
126
142
  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)
143
+ create_upload_cert_info(apple_id:@apple_id, cert_type:@build_type, platform_type:platform_type)
144
+ create_upload_provisioning_info(apple_id:@apple_id, cert_type:@build_type, platform_type:platform_type, provisioning_info_array:provisioning_info_array)
129
145
  end
130
146
  end
131
147
 
132
- def get_create_cert_match_values(apple_id:nil, bundle_id_array:nil, build_type:nil, renew_flag:false)
148
+ def get_create_cert_match_values(apple_id:nil, bundle_id_array:nil, build_type:nil, platform_type:nil, renew_flag:false)
133
149
 
134
150
  if build_type.eql?("appstore") && (apple_id.eql?(pindo_single_config.demo_apple_id))
135
151
  raise Informative, "#{apple_id} 是测试账号,不能创建appstore证书!!!"
@@ -148,11 +164,6 @@ module Pindo
148
164
  force_for_new_devices_flag = false
149
165
  end
150
166
 
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
155
-
156
167
  values = {
157
168
  username:apple_id,
158
169
  app_identifier: bundle_id_array,
@@ -69,8 +69,9 @@ module Pindo
69
69
  end
70
70
 
71
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)
72
+
73
+ launchimg_pub_path = File.join(app_config_dir,"launch")
74
+ XcodeResHelper.install_launchimg(proj_dir:current_dir, launchimg_pub_path:launchimg_pub_path)
74
75
  Funlog.instance.fancyinfo_success("启动页处理完成!")
75
76
 
76
77
  add_project_modue(project_dir:current_dir, proj_name:@proj_name, config_json:@config_json)
@@ -26,6 +26,7 @@ module Pindo
26
26
  [
27
27
  ['--deploy', '默认用开发的bundle id,使用--deploy设置使用发布bundle id'],
28
28
  ['--adhoc', '默认用dev证书,使用--adhoc设置使用adhoc证书'],
29
+ ['--macos', 'macos平台证书'],
29
30
  ['--upload', '生成上传pgyer的证书'],
30
31
  ].concat(super)
31
32
  end
@@ -33,6 +34,7 @@ module Pindo
33
34
  def initialize(argv)
34
35
  @args_adhoc_flag = argv.flag?('adhoc', false)
35
36
  @args_deploy_flag = argv.flag?('deploy', false)
37
+ @args_macos_flag = argv.flag?('macos', false)
36
38
  @upload_flag = argv.flag?('upload', false)
37
39
  super
38
40
  end
@@ -64,9 +66,14 @@ module Pindo
64
66
  args_temp << "--dev"
65
67
  end
66
68
 
69
+ if @args_macos_flag
70
+ args_temp << "--macos"
71
+ end
72
+
67
73
  if @upload_flag
68
74
  args_temp << "--upload"
69
75
  end
76
+
70
77
  Pindo::Command::Deploy::Cert::run(args_temp)
71
78
 
72
79
  end
@@ -56,7 +56,41 @@ module Pindo
56
56
  end
57
57
  end
58
58
 
59
-
59
+
60
+ def get_last_work_project_array()
61
+ last_work_project_array = nil
62
+ if !@pindo_user_local_config_json.nil?
63
+ last_work_project_array = @pindo_user_local_config_json["last_work_project_array"] || []
64
+ end
65
+ return last_work_project_array;
66
+ end
67
+
68
+
69
+ def write_last_work_project(proj_name:nil)
70
+ if proj_name.nil?
71
+ return
72
+ end
73
+ if proj_name.length < 1
74
+ return
75
+ end
76
+
77
+ last_work_project_array = @pindo_user_local_config_json["last_work_project_array"] || []
78
+
79
+ # 从数组中删除目标字符串
80
+ last_work_project_array.delete(proj_name)
81
+ # 将目标字符串插入到数组末尾
82
+ last_work_project_array.unshift(proj_name)
83
+ # 如果数组长度超过5,删除第一个元素
84
+ last_work_project_array.pop if last_work_project_array.length > 6
85
+ last_work_project_array.pop if last_work_project_array.length > 6
86
+
87
+ @pindo_user_local_config_json["last_work_project_array"] = last_work_project_array
88
+ File.open(@pindo_user_local_config_file, "w") do |file|
89
+ file.write(JSON.pretty_generate(@pindo_user_local_config_json))
90
+ file.close
91
+ end
92
+ end
93
+
60
94
 
61
95
 
62
96
  def self.reload_instance
@@ -78,7 +78,7 @@ module Pindo
78
78
  begin
79
79
  client = Spaceship::ConnectAPI
80
80
  app_sharedsecrets_item = nil
81
- response = client.tunes_request_client.get("apps/#{app_id}/appSharedSecrets")
81
+ response = client.tunes_request_client.get("#{Spaceship::ConnectAPI::Tunes::API::Version::V1}/apps/#{app_id}/appSharedSecrets")
82
82
  # puts JSON.pretty_generate(response.body)
83
83
  result_data = response.body
84
84
 
@@ -1128,6 +1128,7 @@ module Pindo
1128
1128
 
1129
1129
  itc_usa_latest_price = nil
1130
1130
  itc_usa_latest_start_date = nil
1131
+ itc_usa_latest_price_point_id = nil
1131
1132
  need_modify_price = true
1132
1133
 
1133
1134
  if subscription_item["state"].to_s.eql?("APPROVED")
@@ -1168,6 +1169,7 @@ module Pindo
1168
1169
  include_item = respose_price[:included].last
1169
1170
  if include_item[:type].to_s.eql?("subscriptionPricePoints")
1170
1171
  itc_usa_latest_price = include_item[:attributes][:customer_price]
1172
+ itc_usa_latest_price_point_id = include_item[:id]
1171
1173
  puts " 最新线上价格:" + itc_usa_latest_price +"$"
1172
1174
  end
1173
1175
  end
@@ -1280,10 +1282,10 @@ module Pindo
1280
1282
  }
1281
1283
  }
1282
1284
 
1283
- price_change_relationships_data[:newSubscriptionPricePoints][:data] << {
1284
- type:"subscriptionPricePoints",
1285
- id: price_point_id
1286
- }
1285
+ # price_change_relationships_data[:newSubscriptionPricePoints][:data] << {
1286
+ # type:"subscriptionPricePoints",
1287
+ # id: price_point_id
1288
+ # }
1287
1289
 
1288
1290
  index_num = index_num +1
1289
1291
 
@@ -1368,7 +1370,7 @@ module Pindo
1368
1370
 
1369
1371
  if last_data_items.size > 0
1370
1372
  last_data_items.each do |last_data_item|
1371
- if last_data_item[:type].to_s.eql?("subscriptionPrices")
1373
+ if last_data_item[:type].to_s.eql?("subscriptionPrices") && !last_data_item[:relationships][:subscription_price_point][:data][:id].eql?(itc_usa_latest_price_point_id)
1372
1374
  price_change_relationships_data[:currentSubscriptionPricePoints][:data] << {
1373
1375
  type:"subscriptionPricePoints",
1374
1376
  id: last_data_item[:relationships][:subscription_price_point][:data][:id]
@@ -1392,7 +1394,7 @@ module Pindo
1392
1394
 
1393
1395
  begin
1394
1396
 
1395
- respose_price = client.tunes_request_client.post("subscriptionPriceChangeConsentReasons", body)
1397
+ respose_price = client.tunes_request_client.post("#{Spaceship::ConnectAPI::Tunes::API::Version::V1}/subscriptionPriceChangeConsentReasons", body)
1396
1398
 
1397
1399
  # puts JSON.pretty_generate(respose_price)
1398
1400
  rescue => err
@@ -1418,7 +1420,7 @@ module Pindo
1418
1420
  # puts "included_data.size: #{included_data.size}"
1419
1421
  # puts JSON.pretty_generate(body)
1420
1422
 
1421
- respose_price = client.tunes_request_client.patch("subscriptions/#{subscription_id}", body)
1423
+ respose_price = client.tunes_request_client.patch("#{Spaceship::ConnectAPI::Tunes::API::Version::V1}/subscriptions/#{subscription_id}", body)
1422
1424
  # respose_price = appstore_client.update_subscription(
1423
1425
  # id:subscription_id,
1424
1426
  # relationships: relationships_data,