pindo 5.12.2 → 5.13.2

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 (115) hide show
  1. checksums.yaml +4 -4
  2. data/lib/pindo/base/git_handler.rb +692 -0
  3. data/lib/pindo/command/android/autobuild.rb +2 -2
  4. data/lib/pindo/command/android.rb +0 -1
  5. data/lib/pindo/command/appstore/adhocbuild.rb +258 -311
  6. data/lib/pindo/command/appstore/autobuild.rb +203 -0
  7. data/lib/pindo/command/appstore/autoresign.rb +35 -17
  8. data/lib/pindo/command/appstore/bundleid.rb +120 -0
  9. data/lib/pindo/command/appstore/cert.rb +212 -0
  10. data/lib/pindo/command/appstore/configproj.rb +81 -0
  11. data/lib/pindo/command/{deploy → appstore}/getitcinfo.rb +76 -91
  12. data/lib/pindo/command/appstore/iap.rb +788 -24
  13. data/lib/pindo/command/appstore/initconfig.rb +105 -0
  14. data/lib/pindo/command/appstore/itcapp.rb +95 -13
  15. data/lib/pindo/command/{deploy → appstore}/itcinfo.rb +90 -118
  16. data/lib/pindo/command/appstore/pem.rb +136 -0
  17. data/lib/pindo/command/appstore/pullconfig.rb +99 -0
  18. data/lib/pindo/command/appstore/quswark.rb +87 -0
  19. data/lib/pindo/command/appstore/quswauth.rb +67 -0
  20. data/lib/pindo/command/appstore/tag.rb +77 -0
  21. data/lib/pindo/command/appstore.rb +13 -1
  22. data/lib/pindo/command/env/quarkenv.rb +11 -13
  23. data/lib/pindo/command/env/swarkenv.rb +11 -16
  24. data/lib/pindo/command/ios/autobuild.rb +64 -43
  25. data/lib/pindo/command/ios/autoresign.rb +34 -19
  26. data/lib/pindo/command/ios/build.rb +10 -7
  27. data/lib/pindo/command/ios/cert.rb +27 -20
  28. data/lib/pindo/command/jps/upload.rb +3 -3
  29. data/lib/pindo/command/unity/autobuild.rb +2 -2
  30. data/lib/pindo/command/utils/clearcert.rb +2 -17
  31. data/lib/pindo/command/{deploy → utils}/fabric.rb +13 -13
  32. data/lib/pindo/command/utils/renewcert.rb +62 -38
  33. data/lib/pindo/command/utils/renewproj.rb +0 -3
  34. data/lib/pindo/command/{deploy → utils}/updateconfig.rb +6 -7
  35. data/lib/pindo/command/utils.rb +2 -0
  36. data/lib/pindo/command/web/autobuild.rb +2 -2
  37. data/lib/pindo/command.rb +30 -3
  38. data/lib/pindo/config/build_info_manager.rb +176 -0
  39. data/lib/pindo/config/ios_config_parser.rb +404 -0
  40. data/lib/pindo/module/android/android_build_helper.rb +110 -0
  41. data/lib/pindo/module/android/android_config_helper.rb +9 -5
  42. data/lib/pindo/module/android/gradle_helper.rb +88 -0
  43. data/lib/pindo/module/appstore/bundleid_helper.rb +349 -0
  44. data/lib/pindo/module/appstore/itcapp_helper.rb +228 -0
  45. data/lib/pindo/module/build/build_helper.rb +12 -0
  46. data/lib/pindo/module/build/swark_helper.rb +116 -77
  47. data/lib/pindo/module/cert/cert_helper.rb +74 -0
  48. data/lib/pindo/module/cert/pem_helper.rb +72 -0
  49. data/lib/pindo/module/cert/{xcodecerthelper.rb → xcode_cert_helper.rb} +208 -6
  50. data/lib/pindo/module/task/model/appstore/appstore_task.rb +18 -0
  51. data/lib/pindo/module/task/model/appstore/appstore_upload_ipa_task.rb +151 -0
  52. data/lib/pindo/module/task/model/appstore/appstore_upload_metadata_task.rb +250 -0
  53. data/lib/pindo/module/task/model/appstore/appstore_upload_screenshot_task.rb +276 -0
  54. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +210 -0
  55. data/lib/pindo/module/task/model/build/{android_dev_build_task.rb → android_build_dev_task.rb} +2 -2
  56. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +210 -0
  57. data/lib/pindo/module/task/model/build/android_build_task.rb +13 -0
  58. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +197 -0
  59. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +367 -0
  60. data/lib/pindo/module/task/model/build/{ios_dev_build_task.rb → ios_build_dev_task.rb} +37 -27
  61. data/lib/pindo/module/task/model/build/ios_build_task.rb +13 -0
  62. data/lib/pindo/module/task/model/build/{web_dev_build_task.rb → web_build_dev_task.rb} +1 -1
  63. data/lib/pindo/module/task/model/build_task.rb +15 -12
  64. data/lib/pindo/module/task/model/jps_resign_task.rb +185 -0
  65. data/lib/pindo/module/task/model/{upload_task.rb → jps_upload_task.rb} +3 -3
  66. data/lib/pindo/module/task/model/unity_export_task.rb +3 -1
  67. data/lib/pindo/module/task/pindo_task.rb +19 -10
  68. data/lib/pindo/module/unity/unity_helper.rb +2 -1
  69. data/lib/pindo/module/xcode/ipa_resign_helper.rb +210 -0
  70. data/lib/pindo/module/xcode/{xcodeappconfig.rb → xcode_app_config.rb} +79 -0
  71. data/lib/pindo/module/xcode/xcode_build_config.rb +152 -17
  72. data/lib/pindo/module/xcode/xcode_build_helper.rb +151 -1
  73. data/lib/pindo/module/xcode/xcode_swark_helper.rb +341 -0
  74. data/lib/pindo/options/core/global_options_state.rb +268 -0
  75. data/lib/pindo/options/core/option_configuration.rb +206 -0
  76. data/lib/pindo/options/core/option_initializer.rb +51 -0
  77. data/lib/pindo/options/core/option_item.rb +144 -0
  78. data/lib/pindo/options/core/option_value_parser.rb +54 -0
  79. data/lib/pindo/options/groups/build_options.rb +60 -0
  80. data/lib/pindo/options/groups/jps_options.rb +70 -0
  81. data/lib/pindo/options/groups/option_group.rb +73 -0
  82. data/lib/pindo/options/helpers/bundleid_selector.rb +103 -0
  83. data/lib/pindo/options/options.rb +14 -0
  84. data/lib/pindo/version.rb +1 -1
  85. metadata +49 -41
  86. data/lib/pindo/command/android/build.rb +0 -186
  87. data/lib/pindo/command/appstore/import.rb +0 -259
  88. data/lib/pindo/command/deploy/build.rb +0 -250
  89. data/lib/pindo/command/deploy/bundleid.rb +0 -259
  90. data/lib/pindo/command/deploy/cert.rb +0 -202
  91. data/lib/pindo/command/deploy/check.rb +0 -93
  92. data/lib/pindo/command/deploy/configproj.rb +0 -120
  93. data/lib/pindo/command/deploy/confusecode.rb +0 -262
  94. data/lib/pindo/command/deploy/confuseproj.rb +0 -122
  95. data/lib/pindo/command/deploy/iap.rb +0 -826
  96. data/lib/pindo/command/deploy/initconfig.rb +0 -138
  97. data/lib/pindo/command/deploy/itcapp.rb +0 -146
  98. data/lib/pindo/command/deploy/pem.rb +0 -55
  99. data/lib/pindo/command/deploy/pullconfig.rb +0 -56
  100. data/lib/pindo/command/deploy/pushconfig.rb +0 -93
  101. data/lib/pindo/command/deploy/quswark.rb +0 -156
  102. data/lib/pindo/command/deploy/quswauth.rb +0 -76
  103. data/lib/pindo/command/deploy/reportbug.rb +0 -145
  104. data/lib/pindo/command/deploy/resign.rb +0 -300
  105. data/lib/pindo/command/deploy/tag.rb +0 -108
  106. data/lib/pindo/command/deploy/uploadipa.rb +0 -73
  107. data/lib/pindo/command/deploy.rb +0 -42
  108. data/lib/pindo/command/dev/autobuild.rb +0 -117
  109. data/lib/pindo/command/dev/build.rb +0 -94
  110. data/lib/pindo/command/dev/debug.rb +0 -112
  111. data/lib/pindo/module/task/model/build/android_release_build_task.rb +0 -29
  112. data/lib/pindo/module/task/model/build/ios_adhoc_build_task.rb +0 -53
  113. data/lib/pindo/module/task/model/build/ios_release_build_task.rb +0 -53
  114. data/lib/pindo/options/appconfigoptions.rb +0 -24
  115. data/lib/pindo/options/deployoptions.rb +0 -372
@@ -0,0 +1,136 @@
1
+ require 'highline/import'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'pindo/options/options'
5
+ require 'pindo/module/cert/pem_helper'
6
+
7
+ module Pindo
8
+ class Command
9
+ class Appstore < Command
10
+ class Pem < Appstore
11
+
12
+ # 命令的简要说明 - 创建App的push证书
13
+ self.summary = '创建App的push证书'
14
+
15
+ # 命令的详细说明,包含用法示例
16
+ self.description = <<-DESC
17
+ 根据config.json中的配置, 创建Apple推送通知证书。
18
+
19
+ 支持功能:
20
+
21
+ * 创建开发环境Push证书
22
+
23
+ * 创建生产环境Push证书
24
+
25
+ * 自动生成.pem、.p12、.pkey文件
26
+
27
+ * 可选上传到配置仓库
28
+
29
+ * 支持位置参数(向后兼容)和选项参数两种格式
30
+
31
+ 使用示例:
32
+
33
+ $ pindo appstore pem # 使用当前目录的config.json
34
+
35
+ $ pindo appstore pem config.json # 位置参数(向后兼容)
36
+
37
+ $ pindo appstore pem --config=config.json # 选项参数
38
+
39
+ $ pindo appstore pem --dev # 创建开发证书
40
+
41
+ $ pindo appstore pem --repo=com.example.app # 指定部署仓库
42
+
43
+ $ pindo appstore pem --config=config.json --dev --repo=com.example.app
44
+ DESC
45
+
46
+ # 定义位置参数(向后兼容)
47
+ self.arguments = [
48
+ CLAide::Argument.new('path/to/config.json', true)
49
+ ]
50
+
51
+ # 定义此命令使用的参数项(类方法,避免重复定义)
52
+ def self.option_items
53
+ @option_items ||= [
54
+ Pindo::Options::OptionItem.new(
55
+ key: :config,
56
+ description: '指定config.json文件路径',
57
+ type: String,
58
+ optional: true,
59
+ example: 'pindo appstore pem --config=config.json'
60
+ ),
61
+ Pindo::Options::OptionItem.new(
62
+ key: :dev,
63
+ description: '创建开发环境证书(默认为生产环境)',
64
+ type: TrueClass,
65
+ optional: true,
66
+ default_value: false,
67
+ example: 'pindo appstore pem --dev'
68
+ ),
69
+ Pindo::Options::OptionItem.new(
70
+ key: :repo,
71
+ description: '部署仓库名称(用于上传证书)',
72
+ type: String,
73
+ optional: true,
74
+ example: 'pindo appstore pem --repo=com.example.app'
75
+ )
76
+ ]
77
+ end
78
+
79
+ # 命令的选项列表
80
+ def self.options
81
+ # 转换为 CLAide 格式
82
+ option_items.map { |item| item.to_claide_option }.concat(super)
83
+ end
84
+
85
+ def initialize(argv)
86
+ # 首先获取位置参数(向后兼容)
87
+ positional_config = argv.shift_argument
88
+
89
+ # 使用 Options 模块初始化参数
90
+ @options = initialize_options(argv)
91
+
92
+ # 优先使用选项参数,如果没有则使用位置参数,最后默认为当前目录的config.json
93
+ @config_path = @options[:config] || positional_config || File.join(Dir.pwd, 'config.json')
94
+ @args_dev_flag = @options[:dev]
95
+ @deploy_repo_name = @options[:repo]
96
+
97
+ super
98
+ @additional_args = argv.remainder!
99
+ end
100
+
101
+ def validate!
102
+ super
103
+
104
+ # 检查 config.json 文件是否存在
105
+ unless File.exist?(@config_path)
106
+ help! "配置文件不存在: #{@config_path}"
107
+ end
108
+
109
+ # 读取并解析 config.json
110
+ begin
111
+ @config_json = JSON.parse(File.read(@config_path))
112
+ rescue JSON::ParserError => e
113
+ help! "配置文件格式错误: #{e.message}"
114
+ end
115
+ end
116
+
117
+ def run
118
+ # 调用 PemHelper 执行 Push 证书创建流程
119
+ begin
120
+ cert_path = Pindo::PemHelper.execute_pem_creation(
121
+ config_json: @config_json,
122
+ dev_flag: @args_dev_flag,
123
+ deploy_repo_name: @deploy_repo_name
124
+ )
125
+ puts "\n✓ Push 证书创建完成!"
126
+ puts "证书路径: #{cert_path}"
127
+ rescue StandardError => e
128
+ puts "\n❌ Push 证书创建失败: #{e.message}"
129
+ raise e
130
+ end
131
+ end
132
+
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,99 @@
1
+ require 'fileutils'
2
+ require 'pindo/options/options'
3
+ require 'pindo/config/build_info_manager'
4
+
5
+ module Pindo
6
+ class Command
7
+ class Appstore < Command
8
+
9
+ class Pullconfig < Appstore
10
+
11
+ # 命令的简要说明 - 拉取应用配置仓库
12
+ self.summary = '拉取应用配置仓库(config.json)到当前目录'
13
+
14
+ # 命令的详细说明,包含用法示例
15
+ self.description = <<-DESC
16
+ 从远程Git仓库拉取应用配置文件(config.json)到当前目录。
17
+
18
+ 支持功能:
19
+
20
+ * 从远程仓库下载应用配置文件
21
+
22
+ * 自动复制配置文件到当前目录
23
+
24
+ * 支持通配符Bundle ID(自动去除 .* 后缀)
25
+
26
+ * 支持环境变量配置
27
+
28
+ * 支持位置参数(向后兼容)和选项参数两种格式
29
+
30
+ 使用示例:
31
+
32
+ $ pindo appstore pullconfig com.example.app # 位置参数(向后兼容)
33
+
34
+ $ pindo appstore pullconfig --bundleid=com.example.app # 选项参数
35
+
36
+ $ pindo appstore pullconfig # 交互式输入Bundle ID
37
+
38
+ $ pindo appstore pullconfig --bundleid=com.example.* # 通配符自动转换为 com.example
39
+
40
+ $ PINDO_BUNDLE_ID=com.example.app pindo appstore pullconfig # 使用环境变量
41
+ DESC
42
+
43
+ # 定义位置参数(向后兼容)
44
+ self.arguments = [
45
+ CLAide::Argument.new('bundleid', true)
46
+ ]
47
+
48
+ # 定义此命令使用的参数项
49
+ def self.option_items
50
+ @option_items ||= Pindo::Options::BuildOptions.select(:bundleid)
51
+ end
52
+
53
+ # 命令的选项列表
54
+ def self.options
55
+ # 转换为 CLAide 格式
56
+ option_items.map { |item| item.to_claide_option }.concat(super)
57
+ end
58
+
59
+ def initialize(argv)
60
+ # 首先获取位置参数(向后兼容)
61
+ positional_bundleid = argv.shift_argument
62
+
63
+ # 使用 Options 模块初始化参数
64
+ @options = initialize_options(argv)
65
+
66
+ # 优先使用选项参数,如果没有则使用位置参数
67
+ @args_appconfig_repo_name = @options[:bundleid] || positional_bundleid
68
+
69
+ super
70
+ @additional_args = argv.remainder!
71
+ end
72
+
73
+ def validate!
74
+ super
75
+
76
+ # 如果没有提供 bundleid,提示用户输入
77
+ if @args_appconfig_repo_name.nil? || @args_appconfig_repo_name.empty?
78
+ require 'highline/import'
79
+ cli = HighLine.new
80
+ say "需要指定 Bundle ID"
81
+ @args_appconfig_repo_name = cli.ask('请输入 Bundle ID: ')
82
+ end
83
+
84
+ help! '需要提供 Bundle ID' if @args_appconfig_repo_name.nil? || @args_appconfig_repo_name.empty?
85
+ end
86
+
87
+ def run
88
+ # 使用 BuildInfoManager 拉取配置
89
+ build_info_manager = Pindo::BuildInfoManager.share_instance
90
+ build_info_manager.pull_appconfig_with_reponame(
91
+ repo_name: @args_appconfig_repo_name,
92
+ target_dir: Dir.pwd
93
+ )
94
+ end
95
+
96
+ end
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,87 @@
1
+ require 'highline/import'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'xcodeproj'
5
+ require 'yaml'
6
+ require 'pindo/module/xcode/xcode_swark_helper'
7
+ require 'pindo/config/ios_config_parser'
8
+
9
+ module Pindo
10
+ class Command
11
+ class Appstore < Command
12
+ class Quswark < Appstore
13
+
14
+ self.summary = 'Xcode工程设置swark或quark'
15
+
16
+ self.description = <<-DESC
17
+ Xcode工程设置swark或quark
18
+
19
+ 支持功能:
20
+ - 自动检测项目类型并配置swark或quark环境
21
+ - 生成对应的配置文件和环境设置
22
+ - 始终使用 release 模式进行配置
23
+
24
+ 使用示例:
25
+ pindo appstore quswark
26
+ DESC
27
+
28
+ self.arguments = [
29
+ ]
30
+
31
+ def self.options
32
+ [
33
+
34
+ ].concat(super)
35
+ end
36
+
37
+ def initialize(argv)
38
+ super
39
+ @additional_args = argv.remainder!
40
+ end
41
+
42
+ def run
43
+
44
+
45
+ project_dir = Dir.pwd
46
+ config_file = File.join(project_dir, "config.json")
47
+
48
+ # 加载配置
49
+ config_parser = Pindo::IosConfigParser.instance
50
+ config_parser.load_config(config_file: config_file)
51
+ config_json = config_parser.config_json
52
+
53
+ if config_json.nil? || config_json.empty?
54
+ raise Informative, "配置未加载,请检查配置文件: #{config_file}"
55
+ end
56
+
57
+ # 始终使用 release 模式
58
+ build_type = 'release'
59
+
60
+ # 根据配置决定使用 Quark 还是 Swark
61
+ if config_json['project_info']['xcode_build_type'] && config_json["project_info"]["xcode_build_type"].include?("quark")
62
+ success = Pindo::XcodeSwarkHelper.quark_run(
63
+ project_dir: project_dir,
64
+ config_json: config_json,
65
+ build_type: build_type
66
+ )
67
+ unless success
68
+ raise Informative, "Quark 配置失败,请检查日志"
69
+ end
70
+ else
71
+ # 默认使用 Swark
72
+ success = Pindo::XcodeSwarkHelper.swark_run(
73
+ project_dir: project_dir,
74
+ config_json: config_json,
75
+ build_type: build_type
76
+ )
77
+ unless success
78
+ raise Informative, "Swark 配置失败,请检查日志"
79
+ end
80
+ end
81
+ end
82
+
83
+
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,67 @@
1
+ require 'highline/import'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'xcodeproj'
5
+ require 'pindo/module/xcode/xcode_swark_helper'
6
+ require 'pindo/config/ios_config_parser'
7
+
8
+ module Pindo
9
+ class Command
10
+ class Appstore < Command
11
+ class Quswauth < Appstore
12
+
13
+ self.summary = 'Swark给bundle id授权'
14
+
15
+ self.description = <<-DESC
16
+ Swark给bundle id授权
17
+
18
+ 支持功能:
19
+ - 自动执行Swark工具的Bundle ID授权
20
+ - 读取配置文件中的Team ID和Bundle ID信息
21
+ - 自动更新授权状态到配置仓库
22
+
23
+ 使用示例:
24
+ pindo appstore quswauth
25
+ DESC
26
+
27
+ self.arguments = [
28
+ ]
29
+
30
+ def self.options
31
+ [
32
+
33
+ ].concat(super)
34
+ end
35
+
36
+ def initialize(argv)
37
+ super
38
+ @additional_args = argv.remainder!
39
+ end
40
+
41
+ def run
42
+
43
+
44
+ project_dir = Dir.pwd
45
+ config_file = File.join(project_dir, "config.json")
46
+
47
+ # 加载配置
48
+ config_parser = Pindo::IosConfigParser.instance
49
+ config_parser.load_config(config_file: config_file)
50
+
51
+ bundle_id = config_parser.bundle_id
52
+ if bundle_id.nil? || bundle_id.empty?
53
+ raise Informative, "无法从配置文件中获取 Bundle ID"
54
+ end
55
+
56
+ # 调用封装的方法
57
+ success = Pindo::XcodeSwarkHelper.swark_authorize_run(bundle_id: bundle_id)
58
+
59
+ unless success
60
+ raise Informative, "Swark 授权失败,请检查日志"
61
+ end
62
+ end
63
+
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,77 @@
1
+ require 'fileutils'
2
+ require 'pindo/module/xcode/xcode_app_config'
3
+ require 'pindo/config/ios_config_parser'
4
+
5
+ module Pindo
6
+ class Command
7
+ class Appstore < Command
8
+ class Tag < Appstore
9
+
10
+ self.summary = '发布完成创建tag'
11
+
12
+ self.description = <<-DESC
13
+ 发布完成创建tag
14
+
15
+ 支持功能:
16
+ - 为代码仓库和配置仓库创建 release tag
17
+ - 删除指定的 tag
18
+
19
+ 使用示例:
20
+ pindo appstore tag # 创建 release tag
21
+ pindo appstore tag --delete=tag_name # 删除指定的 tag
22
+ DESC
23
+
24
+ self.arguments = [
25
+ ]
26
+
27
+ def self.options
28
+ [
29
+ ['--delete=TAG_NAME', '删除指定的tag'],
30
+ ].concat(super)
31
+ end
32
+
33
+ def initialize(argv)
34
+ @delete_tag_name = argv.option('delete')
35
+ super
36
+ end
37
+
38
+ def run
39
+
40
+ project_dir = Dir.pwd
41
+ config_file = File.join(project_dir, "config.json")
42
+
43
+ # 加载配置
44
+ config_parser = Pindo::IosConfigParser.instance
45
+ config_parser.load_config(config_file: config_file)
46
+ config_json = config_parser.config_json
47
+ bundle_id = config_parser.bundle_id
48
+
49
+ if config_json.nil? || config_json.empty?
50
+ raise Informative, "配置未加载,请检查配置文件: #{config_file}"
51
+ end
52
+
53
+ if bundle_id.nil? || bundle_id.empty?
54
+ raise Informative, "无法从配置文件中获取 Bundle ID"
55
+ end
56
+
57
+ # 创建临时对象来调用模块方法
58
+ tag_helper = Object.new
59
+ tag_helper.extend(Pindo::XcodeAppConfig)
60
+
61
+ # 调用封装的方法
62
+ success = tag_helper.create_release_tag(
63
+ project_dir: project_dir,
64
+ config_json: config_json,
65
+ bundle_id: bundle_id,
66
+ delete_tag_name: @delete_tag_name
67
+ )
68
+
69
+ unless success
70
+ raise Informative, "创建 tag 失败,请检查日志"
71
+ end
72
+ end
73
+
74
+ end
75
+ end
76
+ end
77
+ end
@@ -1,13 +1,25 @@
1
1
 
2
2
  require 'pindo/command/appstore/iap'
3
3
  require 'pindo/command/appstore/itcapp'
4
+ require 'pindo/command/appstore/itcinfo'
5
+ require 'pindo/command/appstore/getitcinfo'
4
6
  require 'pindo/command/appstore/metadata'
5
7
  require 'pindo/command/appstore/screenshots'
6
8
  require 'pindo/command/appstore/upload'
7
9
 
8
- require 'pindo/command/appstore/import'
9
10
  require 'pindo/command/appstore/adhocbuild'
10
11
  require 'pindo/command/appstore/autoresign'
12
+ require 'pindo/command/appstore/autobuild'
13
+
14
+ require 'pindo/command/appstore/pullconfig'
15
+ require 'pindo/command/appstore/initconfig'
16
+ require 'pindo/command/appstore/bundleid'
17
+ require 'pindo/command/appstore/pem'
18
+ require 'pindo/command/appstore/cert'
19
+ require 'pindo/command/appstore/configproj'
20
+ require 'pindo/command/appstore/quswark'
21
+ require 'pindo/command/appstore/quswauth'
22
+ require 'pindo/command/appstore/tag'
11
23
 
12
24
  module Pindo
13
25
  class Command
@@ -47,22 +47,20 @@ module Pindo
47
47
  end
48
48
 
49
49
  def run
50
-
51
-
50
+ require 'pindo/module/xcode/xcode_swark_helper'
51
+
52
52
  pindo_dir = pindo_single_config.pindo_dir
53
- if !File.exist?(pindo_dir)
54
- FileUtils.mkdir(pindo_dir)
55
- end
53
+ quark_git_url = pindo_single_config.deploy_quark_giturl
56
54
 
57
- reponame = get_repo_base_name(repo_url:pindo_single_config.deploy_quark_giturl)
58
- quark_path = getcode_to_dir(reponame:reponame, remote_url:pindo_single_config.deploy_quark_giturl, path:pindo_dir)
59
- command = File.join(quark_path, 'quark-install')
60
- system "/bin/chmod 777 #{command}"
61
- system command
55
+ # 使用封装的方法配置 Quark 环境
56
+ success = Pindo::XcodeSwarkHelper.setup_quark_env(
57
+ pindo_dir: pindo_dir,
58
+ quark_git_url: quark_git_url
59
+ )
62
60
 
63
- command = File.join(quark_path, 'quark-upgrade')
64
- system command
65
-
61
+ unless success
62
+ raise Informative, "Quark 环境配置失败,请检查日志"
63
+ end
66
64
  end
67
65
 
68
66
 
@@ -48,25 +48,20 @@ module Pindo
48
48
  end
49
49
 
50
50
  def run
51
-
52
- swark_dir = File::expand_path(pindo_single_config.pindo_dir)
53
- if !File.exist?(swark_dir)
54
- FileUtils.mkdir(swark_dir)
55
- end
56
-
57
- reponame = get_repo_base_name(repo_url:pindo_single_config.deploy_swark_giturl)
58
- swark_path = getcode_to_dir(reponame:'swark-toolchain-lite', remote_url:pindo_single_config.deploy_swark_giturl, path:swark_dir)
51
+ require 'pindo/module/xcode/xcode_swark_helper'
59
52
 
60
- command = File.join(swark_path, 'install')
61
- system "/bin/chmod 777 #{command}"
62
- system command
53
+ pindo_dir = pindo_single_config.pindo_dir
54
+ swark_git_url = pindo_single_config.deploy_swark_giturl
63
55
 
64
- swark_exe_dir = File::expand_path("~")
65
- command = File.join(swark_exe_dir, 'swark-toolchain/tools/swark-upgrade')
66
- puts command
67
- system "/bin/chmod 777 #{command}"
68
- system command
56
+ # 使用封装的方法配置 Swark 环境
57
+ success = Pindo::XcodeSwarkHelper.setup_swark_env(
58
+ pindo_dir: pindo_dir,
59
+ swark_git_url: swark_git_url
60
+ )
69
61
 
62
+ unless success
63
+ raise Informative, "Swark 环境配置失败,请检查日志"
64
+ end
70
65
  end
71
66
 
72
67