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
@@ -42,14 +42,15 @@ module Pindo
42
42
 
43
43
  def do_login(force_login:false)
44
44
 
45
- login_success = false
45
+
46
46
 
47
+ login_success = false
47
48
  @token = load_token()
48
49
  if !@token.nil? && !@token["token"].nil? && !force_login
49
50
  login_success = true
50
51
 
51
- puts "用户#{@token["username"]}登录pgyer成功!!!"
52
- puts
52
+ # puts "用户#{@token["username"]}登录pgyer成功!!!"
53
+ # puts
53
54
 
54
55
  else
55
56
  username = nil
@@ -66,11 +67,11 @@ module Pindo
66
67
  login_success = true
67
68
  end
68
69
  end
70
+
69
71
  return login_success
70
72
  end
71
73
 
72
74
  def do_login_req(username:nil, checksum_password:nil)
73
- puts "do logn pgyer --- "
74
75
 
75
76
 
76
77
  login_name = username
@@ -78,7 +79,7 @@ module Pindo
78
79
  login_name = ask('请输入pgger网站的usernmae:') || nil
79
80
  end
80
81
 
81
- puts "usernmae: #{login_name} "
82
+ puts "用户: #{login_name} "
82
83
 
83
84
  result_data = do_send_code(username:login_name)
84
85
 
@@ -93,6 +94,8 @@ module Pindo
93
94
 
94
95
  # puts "passwork: #{checksum_pass}"
95
96
 
97
+ Funlog.instance.fancyinfo_start("正在登录pgyer...")
98
+
96
99
  boss_url = @baseurl + @request_config["do_login"]
97
100
  body_params = {
98
101
  username:login_name,
@@ -115,10 +118,12 @@ module Pindo
115
118
 
116
119
 
117
120
  if !res.body.nil?
121
+
118
122
  login_response_data = JSON.parse(res.body)
119
123
  end
120
124
 
121
125
  rescue => error
126
+ Funlog.instance.fancyinfo_error("pgyer登录失败!")
122
127
  puts "登录失败,请重试!!!"
123
128
  end
124
129
 
@@ -127,18 +132,20 @@ module Pindo
127
132
  # puts JSON.pretty_generate(login_response_data)
128
133
 
129
134
  if !login_response_data.nil? && !login_response_data["code"].nil? && login_response_data["code"].to_s.eql?("200")
130
- puts "登录成功!!!"
131
135
 
132
136
  token = {}
133
137
  token= login_response_data["data"]
134
138
  token["password"] = checksum_pass
135
139
  # puts JSON.pretty_generate(token)
136
140
  store_token(token:token)
141
+
142
+ Funlog.instance.fancyinfo_success("用户:#{@token["username"]}登录pgyer成功!")
143
+
137
144
  else
138
145
  if File.exist?(@pgyer_token_file)
139
146
  FileUtils.rm_rf(@pgyer_token_file)
140
147
  end
141
- puts "登录失败,请重试!!!"
148
+ Funlog.instance.fancyinfo_error("pgyer登录失败!")
142
149
  end
143
150
 
144
151
  return token
@@ -148,6 +155,7 @@ module Pindo
148
155
  def load_token()
149
156
 
150
157
  @token = nil
158
+ Funlog.instance.fancyinfo_success("正在读取pgyer token...")
151
159
  if File.exist?(@pgyer_token_file)
152
160
  begin
153
161
  data = File.read(@pgyer_token_file)
@@ -157,7 +165,7 @@ module Pindo
157
165
  temp_token = JSON.parse(data_string)
158
166
  if !temp_token.nil? && !temp_token["token"].nil? && !temp_token["username"].nil?
159
167
  @token = temp_token
160
- # puts "加载pgyer token 成功!!! "
168
+ Funlog.instance.fancyinfo_success("读取pgyer token成功!")
161
169
  end
162
170
  rescue => error
163
171
  puts error
@@ -165,10 +173,11 @@ module Pindo
165
173
  if File.exist?(@pgyer_token_file)
166
174
  FileUtils.rm_rf(@pgyer_token_file)
167
175
  end
176
+ Funlog.instance.fancyinfo_error("pgyer token文件不存在!")
168
177
  @token = nil
169
178
  end
170
179
  else
171
- # puts "load pgyer token ---- fail !!! "
180
+ Funlog.instance.fancyinfo_error("pgyer token文件不存在!")
172
181
  end
173
182
 
174
183
  return @token
@@ -183,11 +192,10 @@ module Pindo
183
192
  File.open(@pgyer_token_file, "w") do |f|
184
193
  f.write(data_string)
185
194
  end
186
- puts "store pgyer token---- sucess !!!"
187
- rescue => error
188
- puts
189
- puts "store pgyer token---- sucess !!!"
190
- puts error
195
+ Funlog.instance.fancyinfo_success("token 存储成功!")
196
+ # puts "store pgyer token---- sucess !!!"
197
+ rescue => error
198
+ Funlog.instance.fancyinfo_error("token存储失败!")
191
199
  end
192
200
  end
193
201
 
@@ -428,6 +436,62 @@ module Pindo
428
436
  end
429
437
 
430
438
 
439
+ # puts JSON.pretty_generate(result_date)
440
+
441
+ return result_date
442
+
443
+ end
444
+
445
+ def get_cert_list( )
446
+
447
+ params = {} if params.nil?
448
+ boss_url = @baseurl + @request_config["get_cert_list"]
449
+
450
+ con = HttpClient.create_instance_with_proxy
451
+ res = con.get do |req|
452
+ req.url boss_url
453
+ req.headers['Content-Type'] = 'application/json'
454
+ req.headers['token'] = @token["token"]
455
+ end
456
+
457
+ result_date = nil
458
+ if !res.body.nil?
459
+ result_date = JSON.parse(res.body)
460
+ end
461
+
462
+
463
+ # puts JSON.pretty_generate(result_date)
464
+
465
+ return result_date
466
+
467
+ end
468
+
469
+ def post_resign(appVersionId:nil, certId:nil)
470
+
471
+ boss_url = @baseurl + @request_config["post_resign"]
472
+
473
+ body_params = {
474
+ appVersionId:appVersionId,
475
+ certId:certId
476
+ }
477
+
478
+
479
+ con = HttpClient.create_instance_with_proxy
480
+
481
+ res = con.post do |req|
482
+ req.url boss_url
483
+ req.headers['Content-Type'] = 'application/json'
484
+ req.headers['token'] = @token["token"]
485
+ req.body = body_params.to_json
486
+ end
487
+
488
+
489
+ result_date = nil
490
+ if !res.body.nil?
491
+ result_date = JSON.parse(res.body)
492
+ end
493
+
494
+
431
495
  # puts JSON.pretty_generate(result_date)
432
496
 
433
497
  return result_date
@@ -0,0 +1,43 @@
1
+ require 'highline/import'
2
+ require 'xcodeproj'
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pindo
7
+ class Command
8
+ class Appstore < Command
9
+ class Iap < Appstore
10
+
11
+
12
+ self.summary = 'Appstore中iap相关操作'
13
+
14
+ self.description = <<-DESC
15
+ Appstore中iap相关操作,配置目录下执行:pindo appstore iap, 默认创建iap购买项
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('path/to/config.json', false),
20
+ ]
21
+
22
+ def self.options
23
+ [
24
+ ['--download', '下载app的所有购买项,用法:pindo ipa output --download'],
25
+ ].concat(super)
26
+ end
27
+
28
+ def initialize(argv)
29
+
30
+ @args_download_name = argv.option('download')
31
+
32
+ super
33
+ end
34
+
35
+
36
+ def run
37
+
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,41 @@
1
+ require 'highline/import'
2
+ require 'xcodeproj'
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pindo
7
+ class Command
8
+ class Appstore < Command
9
+ class Itcapp < Appstore
10
+
11
+
12
+ self.summary = 'Appstore中创建app'
13
+
14
+ self.description = <<-DESC
15
+ Appstore中创建app,配置目录下执行:pindo appstore itcapp
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('path/to/config.json', false),
20
+ ]
21
+
22
+ def self.options
23
+ [
24
+
25
+ ].concat(super)
26
+ end
27
+
28
+ def initialize(argv)
29
+
30
+ super
31
+ end
32
+
33
+
34
+ def run
35
+
36
+ end
37
+
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,43 @@
1
+ require 'highline/import'
2
+ require 'xcodeproj'
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pindo
7
+ class Command
8
+ class Appstore < Command
9
+ class Metadata < Appstore
10
+
11
+
12
+ self.summary = 'Appstore中metadata相关操作'
13
+
14
+ self.description = <<-DESC
15
+ Appstore中metadata相关操作, 用法:pindo appstre metadata
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('path/to/config.json', false),
20
+ ]
21
+
22
+ def self.options
23
+ [
24
+ ['--download', '下载app的所有购买项,用法:pindo appstore metadata --download'],
25
+ ].concat(super)
26
+ end
27
+
28
+ def initialize(argv)
29
+
30
+ @args_download_name = argv.option('download')
31
+
32
+ super
33
+ end
34
+
35
+
36
+ def run
37
+
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,43 @@
1
+ require 'highline/import'
2
+ require 'xcodeproj'
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pindo
7
+ class Command
8
+ class Appstore < Command
9
+ class Screenshots < Appstore
10
+
11
+
12
+ self.summary = 'Appstore中screenshots相关操作'
13
+
14
+ self.description = <<-DESC
15
+ Appstore中screenshots相关操作, 用法:pindo appstre screenshots
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('path/to/config.json', false),
20
+ ]
21
+
22
+ def self.options
23
+ [
24
+ ['--download', '下载app的所有购买项,用法:pindo appstore screenshots --download'],
25
+ ].concat(super)
26
+ end
27
+
28
+ def initialize(argv)
29
+
30
+ @args_download_name = argv.option('download')
31
+
32
+ super
33
+ end
34
+
35
+
36
+ def run
37
+
38
+ end
39
+
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,40 @@
1
+ require 'highline/import'
2
+ require 'xcodeproj'
3
+ require 'find'
4
+ require 'fileutils'
5
+
6
+ module Pindo
7
+ class Command
8
+ class Appstore < Command
9
+ class Upload < Appstore
10
+
11
+ self.summary = '上传ipa到appstore'
12
+
13
+ self.description = <<-DESC
14
+ 上传ipa到appstore:pindo appstore upload
15
+ DESC
16
+
17
+ self.arguments = [
18
+ CLAide::Argument.new('path/to/config.json', false),
19
+ ]
20
+
21
+ def self.options
22
+ [
23
+
24
+
25
+ ].concat(super)
26
+ end
27
+
28
+ def initialize(argv)
29
+
30
+ super
31
+ end
32
+
33
+ def run
34
+
35
+ end
36
+
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+
2
+ require 'pindo/command/appstore/iap'
3
+ require 'pindo/command/appstore/itcapp'
4
+ require 'pindo/command/appstore/metadata'
5
+ require 'pindo/command/appstore/screenshots'
6
+ require 'pindo/command/appstore/upload'
7
+
8
+ module Pindo
9
+ class Command
10
+
11
+ class Appstore < Command
12
+ self.abstract_command = true
13
+ self.summary = 'appstore的相关命令'
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,109 @@
1
+ require 'highline/import'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'xcodeproj'
5
+ require 'gym'
6
+
7
+ module Pindo
8
+ class Command
9
+ class Deploy < Command
10
+ class Build < Deploy
11
+
12
+
13
+ self.summary = '编译工程'
14
+
15
+ self.description = <<-DESC
16
+ 编译工程. 用法:在工程目录下执行 pindo deploy build
17
+ DESC
18
+
19
+ self.arguments = [
20
+ CLAide::Argument.new('path/to/config.json', true),
21
+ ]
22
+
23
+ def initialize(argv)
24
+ super
25
+ @additional_args = argv.remainder!
26
+ end
27
+
28
+ def run
29
+
30
+ new_project_dir = Dir.pwd
31
+ project_fullname = Dir.glob(File.join(new_project_dir, "/*.xcodeproj")).max_by {|f| File.mtime(f)}
32
+
33
+ if File.exist?(File.join(new_project_dir, "build"))
34
+ FileUtils.rm_rf(File.join(new_project_dir, "build"))
35
+ end
36
+
37
+
38
+ gym_options = get_gym_build_values(project_fullname:project_fullname)
39
+
40
+ config = FastlaneCore::Configuration.create(Gym::Options.available_options, gym_options)
41
+ Gym::Manager.new.work(config)
42
+
43
+
44
+ end
45
+
46
+
47
+ def get_gym_build_values(project_fullname:nil)
48
+
49
+ if project_fullname.nil?
50
+ raise "请指定要编译的工程"
51
+ end
52
+ project_path = File.dirname(project_fullname)
53
+ proj_name = File.basename(project_fullname, ".xcodeproj")
54
+ project_obj = Xcodeproj::Project.open(project_fullname)
55
+ main_target = project_obj.targets.select { |target| target.product_type.include?(Xcodeproj::Constants::PRODUCT_TYPE_UTI[:application]) }.first
56
+ provisioning_profile_name = main_target.build_configurations.first.build_settings['PROVISIONING_PROFILE_SPECIFIER'].downcase.split(" ")
57
+
58
+ build_type = "app-store"
59
+ icloud_env = "Production"
60
+ if provisioning_profile_name.include?("adhoc")
61
+ build_type = "ad-hoc"
62
+ icloud_env = "Development"
63
+ elsif provisioning_profile_name.include?("development")
64
+ build_type = "development"
65
+ icloud_env = "Development"
66
+ else
67
+ build_type = "app-store"
68
+ icloud_env = "Production"
69
+ end
70
+
71
+
72
+ app_ipaname_temp = main_target.build_configurations.first.build_settings['INFOPLIST_KEY_CFBundleDisplayName'] || main_target.display_name
73
+ app_ipaname_temp = app_ipaname_temp.gsub(/ /, '');
74
+ app_ipaname_temp = app_ipaname_temp.gsub(/\'/, '');
75
+
76
+ values = {
77
+ project: "#{proj_name}.xcodeproj",
78
+ scheme:"#{proj_name}",
79
+ configuration: "Release",
80
+ clean: true,
81
+ export_method: build_type,
82
+ output_directory:"./build/",
83
+ output_name: "#{app_ipaname_temp}.ipa"
84
+ }
85
+
86
+
87
+ if File.exist?(File.join(project_path, "Podfile"))
88
+ values[:workspace] = "#{proj_name}.xcworkspace"
89
+ values[:project] = nil
90
+ end
91
+
92
+ values[:export_options] ||={}
93
+ values[:export_options][:compileBitcode] = false
94
+ values[:export_options][:stripSwiftSymbols] = true
95
+ values[:export_options][:uploadSymbols] = false
96
+
97
+ if !@deploy_icloud_id.nil?
98
+ values[:export_options][:iCloudContainerEnvironment] = icloud_env
99
+ end
100
+
101
+ return values
102
+
103
+ end
104
+
105
+
106
+ end
107
+ end
108
+ end
109
+ end
@@ -25,7 +25,7 @@ module Pindo
25
25
  [
26
26
  ['--sign', 'sign flags'],
27
27
  ].concat(super)
28
- end
28
+ end
29
29
 
30
30
  def initialize(argv)
31
31
  @args_sign_flag = argv.flag?('sign', false)