pindo 5.13.1 → 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 (110) 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/appstore/adhocbuild.rb +258 -311
  5. data/lib/pindo/command/appstore/autobuild.rb +203 -0
  6. data/lib/pindo/command/appstore/autoresign.rb +35 -17
  7. data/lib/pindo/command/appstore/bundleid.rb +120 -0
  8. data/lib/pindo/command/appstore/cert.rb +212 -0
  9. data/lib/pindo/command/appstore/configproj.rb +81 -0
  10. data/lib/pindo/command/{deploy → appstore}/getitcinfo.rb +76 -91
  11. data/lib/pindo/command/appstore/iap.rb +788 -24
  12. data/lib/pindo/command/appstore/initconfig.rb +105 -0
  13. data/lib/pindo/command/appstore/itcapp.rb +95 -13
  14. data/lib/pindo/command/{deploy → appstore}/itcinfo.rb +90 -118
  15. data/lib/pindo/command/appstore/pem.rb +136 -0
  16. data/lib/pindo/command/appstore/pullconfig.rb +99 -0
  17. data/lib/pindo/command/appstore/quswark.rb +87 -0
  18. data/lib/pindo/command/appstore/quswauth.rb +67 -0
  19. data/lib/pindo/command/appstore/tag.rb +77 -0
  20. data/lib/pindo/command/appstore.rb +13 -1
  21. data/lib/pindo/command/env/quarkenv.rb +11 -13
  22. data/lib/pindo/command/env/swarkenv.rb +11 -16
  23. data/lib/pindo/command/ios/autobuild.rb +64 -43
  24. data/lib/pindo/command/ios/autoresign.rb +34 -19
  25. data/lib/pindo/command/ios/build.rb +9 -6
  26. data/lib/pindo/command/ios/cert.rb +27 -20
  27. data/lib/pindo/command/jps/upload.rb +3 -3
  28. data/lib/pindo/command/unity/autobuild.rb +2 -2
  29. data/lib/pindo/command/utils/clearcert.rb +2 -17
  30. data/lib/pindo/command/{deploy → utils}/fabric.rb +13 -13
  31. data/lib/pindo/command/utils/renewcert.rb +62 -38
  32. data/lib/pindo/command/utils/renewproj.rb +0 -3
  33. data/lib/pindo/command/{deploy → utils}/updateconfig.rb +6 -7
  34. data/lib/pindo/command/utils.rb +2 -0
  35. data/lib/pindo/command/web/autobuild.rb +2 -2
  36. data/lib/pindo/command.rb +30 -3
  37. data/lib/pindo/config/build_info_manager.rb +176 -0
  38. data/lib/pindo/config/ios_config_parser.rb +404 -0
  39. data/lib/pindo/module/android/android_config_helper.rb +9 -5
  40. data/lib/pindo/module/appstore/bundleid_helper.rb +349 -0
  41. data/lib/pindo/module/appstore/itcapp_helper.rb +228 -0
  42. data/lib/pindo/module/build/build_helper.rb +12 -0
  43. data/lib/pindo/module/build/swark_helper.rb +116 -77
  44. data/lib/pindo/module/cert/cert_helper.rb +74 -0
  45. data/lib/pindo/module/cert/pem_helper.rb +72 -0
  46. data/lib/pindo/module/cert/{xcodecerthelper.rb → xcode_cert_helper.rb} +208 -6
  47. data/lib/pindo/module/task/model/appstore/appstore_task.rb +18 -0
  48. data/lib/pindo/module/task/model/appstore/appstore_upload_ipa_task.rb +151 -0
  49. data/lib/pindo/module/task/model/appstore/appstore_upload_metadata_task.rb +250 -0
  50. data/lib/pindo/module/task/model/appstore/appstore_upload_screenshot_task.rb +276 -0
  51. data/lib/pindo/module/task/model/build/android_build_adhoc_task.rb +210 -0
  52. data/lib/pindo/module/task/model/build/{android_dev_build_task.rb → android_build_dev_task.rb} +2 -2
  53. data/lib/pindo/module/task/model/build/android_build_gplay_task.rb +210 -0
  54. data/lib/pindo/module/task/model/build/android_build_task.rb +13 -0
  55. data/lib/pindo/module/task/model/build/ios_build_adhoc_task.rb +197 -0
  56. data/lib/pindo/module/task/model/build/ios_build_appstore_task.rb +367 -0
  57. data/lib/pindo/module/task/model/build/{ios_dev_build_task.rb → ios_build_dev_task.rb} +37 -27
  58. data/lib/pindo/module/task/model/build/ios_build_task.rb +13 -0
  59. data/lib/pindo/module/task/model/build/{web_dev_build_task.rb → web_build_dev_task.rb} +1 -1
  60. data/lib/pindo/module/task/model/build_task.rb +15 -12
  61. data/lib/pindo/module/task/model/jps_resign_task.rb +185 -0
  62. data/lib/pindo/module/task/model/{upload_task.rb → jps_upload_task.rb} +3 -3
  63. data/lib/pindo/module/task/model/unity_export_task.rb +3 -1
  64. data/lib/pindo/module/unity/unity_helper.rb +2 -1
  65. data/lib/pindo/module/xcode/ipa_resign_helper.rb +210 -0
  66. data/lib/pindo/module/xcode/{xcodeappconfig.rb → xcode_app_config.rb} +79 -0
  67. data/lib/pindo/module/xcode/xcode_build_config.rb +152 -17
  68. data/lib/pindo/module/xcode/xcode_build_helper.rb +151 -1
  69. data/lib/pindo/module/xcode/xcode_swark_helper.rb +341 -0
  70. data/lib/pindo/options/core/global_options_state.rb +268 -0
  71. data/lib/pindo/options/core/option_configuration.rb +206 -0
  72. data/lib/pindo/options/core/option_initializer.rb +51 -0
  73. data/lib/pindo/options/core/option_item.rb +144 -0
  74. data/lib/pindo/options/core/option_value_parser.rb +54 -0
  75. data/lib/pindo/options/groups/build_options.rb +60 -0
  76. data/lib/pindo/options/groups/jps_options.rb +70 -0
  77. data/lib/pindo/options/groups/option_group.rb +73 -0
  78. data/lib/pindo/options/helpers/bundleid_selector.rb +103 -0
  79. data/lib/pindo/options/options.rb +14 -0
  80. data/lib/pindo/version.rb +1 -1
  81. metadata +49 -40
  82. data/lib/pindo/command/appstore/import.rb +0 -259
  83. data/lib/pindo/command/deploy/build.rb +0 -250
  84. data/lib/pindo/command/deploy/bundleid.rb +0 -259
  85. data/lib/pindo/command/deploy/cert.rb +0 -202
  86. data/lib/pindo/command/deploy/check.rb +0 -93
  87. data/lib/pindo/command/deploy/configproj.rb +0 -120
  88. data/lib/pindo/command/deploy/confusecode.rb +0 -262
  89. data/lib/pindo/command/deploy/confuseproj.rb +0 -122
  90. data/lib/pindo/command/deploy/iap.rb +0 -826
  91. data/lib/pindo/command/deploy/initconfig.rb +0 -138
  92. data/lib/pindo/command/deploy/itcapp.rb +0 -146
  93. data/lib/pindo/command/deploy/pem.rb +0 -55
  94. data/lib/pindo/command/deploy/pullconfig.rb +0 -56
  95. data/lib/pindo/command/deploy/pushconfig.rb +0 -93
  96. data/lib/pindo/command/deploy/quswark.rb +0 -156
  97. data/lib/pindo/command/deploy/quswauth.rb +0 -76
  98. data/lib/pindo/command/deploy/reportbug.rb +0 -145
  99. data/lib/pindo/command/deploy/resign.rb +0 -300
  100. data/lib/pindo/command/deploy/tag.rb +0 -108
  101. data/lib/pindo/command/deploy/uploadipa.rb +0 -73
  102. data/lib/pindo/command/deploy.rb +0 -42
  103. data/lib/pindo/command/dev/autobuild.rb +0 -117
  104. data/lib/pindo/command/dev/build.rb +0 -94
  105. data/lib/pindo/command/dev/debug.rb +0 -112
  106. data/lib/pindo/module/task/model/build/android_release_build_task.rb +0 -29
  107. data/lib/pindo/module/task/model/build/ios_adhoc_build_task.rb +0 -53
  108. data/lib/pindo/module/task/model/build/ios_release_build_task.rb +0 -53
  109. data/lib/pindo/options/appconfigoptions.rb +0 -24
  110. data/lib/pindo/options/deployoptions.rb +0 -372
@@ -1,76 +0,0 @@
1
- require 'highline/import'
2
- require 'fileutils'
3
- require 'json'
4
- require 'xcodeproj'
5
-
6
- module Pindo
7
- class Command
8
- class Deploy < Command
9
- class Quswauth < Deploy
10
-
11
- include Command::DeployOptions
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 deploy quswauth path/to/config.json
25
- pindo deploy quswauth ./config.json
26
- DESC
27
-
28
- self.arguments = [
29
- CLAide::Argument.new('path/to/config.json', true),
30
- ]
31
-
32
- def self.options
33
- [
34
-
35
- ].concat(super)
36
- end
37
-
38
- def initialize(argv)
39
- super
40
- @additional_args = argv.remainder!
41
- end
42
-
43
- def run
44
-
45
- swark_authorize_run
46
- end
47
-
48
- def swark_authorize_run
49
-
50
- app_config_dir = File.join(File::expand_path(pindo_single_config.pindo_dir), @deploy_identifier)
51
- swark_authorize_file = File.join(app_config_dir, "swark_authorize.json")
52
- if File.exist?(swark_authorize_file)
53
- swark_authorize_json=JSON.parse(File.read(swark_authorize_file))
54
- unless swark_authorize_json && swark_authorize_json['swark_authorize_status']
55
-
56
- command = "swark authorize "
57
- command = command + swark_authorize_json["swark_authorize_teamid"] + "." + swark_authorize_json["swark_authorize_bundleid"]
58
- puts
59
- puts
60
- puts command
61
- puts
62
- system command
63
-
64
- swark_authorize_json['swark_authorize_status'] = true
65
- File.open(swark_authorize_file, "w") do |f|
66
- f.write(JSON.pretty_generate(swark_authorize_json))
67
- end
68
- git_addpush_repo(path:app_config_dir, message:"swark authorize success !!!")
69
- end
70
- end
71
-
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,145 +0,0 @@
1
- require 'fileutils'
2
-
3
- module Pindo
4
- class Command
5
- class Deploy < Command
6
-
7
- class Reportbug < Deploy
8
-
9
- self.summary = '发布编译时的bug重新'
10
- self.description = <<-DESC
11
- 发布编译时的bug重新
12
-
13
- 支持功能:
14
- - 复制指定Bundle ID的配置文件到Bug报告仓库
15
- - 自动更新配置中的应用标识符信息
16
- - 同步相关的构建配置和混淆设置文件
17
-
18
- 使用示例:
19
- pindo deploy reportbug com.example.app
20
- pindo deploy reportbug bundle-id
21
- pindo deploy reportbug your-app-bundle-id
22
- DESC
23
-
24
- self.arguments = [
25
- CLAide::Argument.new('bundleid', true)
26
- ]
27
-
28
- def initialize(argv)
29
- @args_bundle_id = argv.shift_argument
30
- super
31
- @additional_args = argv.remainder!
32
- end
33
-
34
- def validate!
35
- super
36
-
37
- if @args_bundle_id.nil?
38
- say "You need input a bundle id"
39
- @args_bundle_id = ask('Bundle Id : ') || nil
40
- end
41
- help! 'You need input a bundle id' if @args_bundle_id.nil? || @args_bundle_id.empty?
42
- end
43
-
44
- def run
45
-
46
- current=Dir.pwd
47
-
48
- app_config_dir = clong_buildconfig_repo(repo_name: @args_bundle_id)
49
-
50
- bugapp_config_dir = clong_buildconfig_repo(repo_name: pindo_single_config.crash_bundle_id)
51
-
52
- if File.exist?(File.join(bugapp_config_dir, "config.json"))
53
- FileUtils.rm_rf(File.join(bugapp_config_dir, "config.json"))
54
- end
55
- if File.exist?(File.join(app_config_dir, "config.json"))
56
- FileUtils.cp_r(File.join(app_config_dir, "config.json"), File.join(bugapp_config_dir, "config.json"))
57
- end
58
-
59
- if File.exist?(File.join(bugapp_config_dir, "Podfile.lock"))
60
- FileUtils.rm_rf(File.join(bugapp_config_dir, "Podfile.lock"))
61
- end
62
- if File.exist?(File.join(app_config_dir, "Podfile.lock"))
63
- FileUtils.cp_r(File.join(app_config_dir, "Podfile.lock"), File.join(bugapp_config_dir, "Podfile.lock"))
64
- end
65
-
66
-
67
- if File.exist?(File.join(bugapp_config_dir, "Replaced.json"))
68
- FileUtils.rm_rf(File.join(bugapp_config_dir, "Replaced.json"))
69
- end
70
- if File.exist?(File.join(app_config_dir, "Replaced.json"))
71
- FileUtils.cp_r(File.join(app_config_dir, "Replaced.json"), File.join(bugapp_config_dir, "Replaced.json"))
72
- end
73
-
74
- if File.exist?(File.join(bugapp_config_dir, "Symash.json"))
75
- FileUtils.rm_rf(File.join(bugapp_config_dir, "Symash.json"))
76
- end
77
- if File.exist?(File.join(app_config_dir, "Symash.json"))
78
- FileUtils.cp_r(File.join(app_config_dir, "Symash.json"), File.join(bugapp_config_dir, "Symash.json"))
79
- end
80
-
81
- if File.exist?(File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
82
- FileUtils.rm_rf(File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
83
- end
84
- if File.exist?(File.join(app_config_dir, "Backup_MapBundleName.json"))
85
- FileUtils.cp_r(File.join(app_config_dir, "Backup_MapBundleName.json"), File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
86
- end
87
-
88
-
89
- if File.exist?(File.join(bugapp_config_dir, "DupMethodCache.json"))
90
- FileUtils.rm_rf(File.join(bugapp_config_dir, "DupMethodCache.json"))
91
- end
92
- if File.exist?(File.join(app_config_dir, "DupMethodCache.json"))
93
- FileUtils.cp_r(File.join(app_config_dir, "DupMethodCache.json"), File.join(bugapp_config_dir, "DupMethodCache.json"))
94
- end
95
-
96
-
97
- if File.exist?(File.join(bugapp_config_dir, "import-sympkg.plist"))
98
- FileUtils.rm_rf(File.join(bugapp_config_dir, "import-sympkg.plist"))
99
- end
100
- if File.exist?(File.join(app_config_dir, "import-sympkg.plist"))
101
- FileUtils.cp_r(File.join(app_config_dir, "import-sympkg.plist"), File.join(bugapp_config_dir, "import-sympkg.plist"))
102
- end
103
-
104
- if File.exist?(File.join(bugapp_config_dir, "MergeClassFiles"))
105
- FileUtils.rm_rf(File.join(bugapp_config_dir, "MergeClassFiles"))
106
- end
107
- if File.exist?(File.join(app_config_dir, "MergeClassFiles"))
108
- FileUtils.cp_r(File.join(app_config_dir, "MergeClassFiles"), File.join(bugapp_config_dir, "MergeClassFiles"))
109
- end
110
-
111
- app_config_file = File.join(bugapp_config_dir, "config.json")
112
- if !app_config_file.empty? && File::exist?(app_config_file)
113
- default_config_json=JSON.parse(File.read(app_config_file))
114
- if !default_config_json.nil?
115
-
116
- default_config_json['account_info']['apple_acount_id'] = pindo_single_config.demo_apple_id
117
- default_config_json['app_info']['app_identifier'] = pindo_single_config.crash_bundle_id
118
- default_config_json['app_info']['app_identifier_pushcontent'] = pindo_single_config.crash_bundle_id + ".content"
119
- default_config_json['app_info']['app_identifier_pushservice'] = pindo_single_config.crash_bundle_id + ".service"
120
-
121
- if default_config_json['app_info'] && default_config_json['app_info']['app_identifier_keyboard']
122
- default_config_json['app_info']['app_identifier_keyboard'] = pindo_single_config.crash_bundle_id + ".keyboard"
123
- end
124
- if default_config_json['app_info'] && default_config_json['app_info']['app_identifier_imessage']
125
- default_config_json['app_info']['app_identifier_imessage'] = pindo_single_config.crash_bundle_id + ".imessage"
126
- end
127
-
128
- if default_config_json['app_info'] && default_config_json['app_info']['app_group_id']
129
- default_config_json['app_info']['app_group_id'] = "group." + pindo_single_config.crash_bundle_id
130
- end
131
-
132
- File.open(app_config_file, "w") do |f|
133
- f.write(JSON.pretty_generate(default_config_json))
134
- end
135
- end
136
- end
137
-
138
- git_addpush_repo(path:bugapp_config_dir, message:"report bugs #{@args_bundle_id}")
139
-
140
- end
141
-
142
- end
143
- end
144
- end
145
- end
@@ -1,300 +0,0 @@
1
- require 'highline/import'
2
- require 'xcodeproj'
3
- require 'find'
4
- require 'fileutils'
5
- require 'sigh'
6
- require 'zip'
7
-
8
- module Pindo
9
- class Command
10
- class Deploy < Command
11
- class Resign < Deploy
12
-
13
-
14
- extend Plistbuddyexecutable
15
- plistbuddyexecutable :plistbuddy
16
-
17
- extend Executable
18
- executable :security
19
-
20
- include Command::DeployOptions
21
-
22
- self.summary = '重签名ipa'
23
-
24
- self.description = <<-DESC
25
- 重签名ipa
26
-
27
- 支持功能:
28
- - 自动重新签名指定的IPA文件
29
- - 支持不同证书类型的签名配置
30
- - 自动处理Provisioning Profile配置
31
-
32
- 使用示例:
33
- pindo deploy resign path/to/config.json --ipa=app.ipa
34
- pindo deploy resign ./config.json --ipa=release.ipa
35
- pindo deploy resign config.json --ipa=signed.ipa --adhoc
36
- pindo deploy resign config.json --ipa=test.ipa --dev
37
- DESC
38
-
39
- self.arguments = [
40
- CLAide::Argument.new('path/to/config.json', true),
41
- ]
42
-
43
- def self.options
44
- [
45
- ['--ipa=', 'iap file name.']
46
- ].concat(super)
47
- end
48
-
49
- def initialize(argv)
50
-
51
- @ipa_file_name = argv.option('ipa')
52
- super(argv)
53
- end
54
-
55
- def run
56
-
57
-
58
- args_temp = []
59
- args = get_build_type_args()
60
- args_temp = args_temp | args
61
-
62
-
63
- Pindo::Command::Deploy::Cert::run(args_temp)
64
-
65
- if @ipa_file_name
66
- new_ipa_filename = File.expand_path(@ipa_file_name)
67
- else
68
- current_dir = Dir.pwd
69
- new_project_fullname = ""
70
- Dir.foreach(current_dir) do |file|
71
- if file =~ /(.*).ipa/
72
- new_ipa_filename = File.join(current_dir, file)
73
- break;
74
- end
75
- end
76
- end
77
- if new_ipa_filename && new_ipa_filename != "" then
78
- resign_ipa_name = get_resign_ipa_name(ipa_name: new_ipa_filename)
79
- sign_ipa_with_new_cert(ipa_name: resign_ipa_name)
80
- end
81
-
82
-
83
- end
84
-
85
- def modify_ipa_info_plist(modify_content_path: nil)
86
-
87
-
88
- main_info_plist = File.join(modify_content_path, "Info.plist")
89
- puts main_info_plist
90
-
91
- if !File.exist?("/usr/local/bin/PlistBuddy")
92
- command = 'ln -s /usr/libexec/PlistBuddy /usr/local/bin/PlistBuddy'
93
- system command
94
- end
95
-
96
- old_bundle_id_command = '/usr/local/bin/PlistBuddy -c "Print :CFBundleIdentifier" ' +main_info_plist
97
- puts old_bundle_id_command
98
- old_bundle_id = ""
99
- IO.popen(old_bundle_id_command) { |f| old_bundle_id = f.gets }
100
- puts old_bundle_id
101
-
102
-
103
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + @bundle_id + '" ' + main_info_plist
104
- puts exchange_bundleid_command
105
- system exchange_bundleid_command
106
-
107
- plugin_path = File.join(modify_content_path, "PlugIns")
108
- if File.exist?(plugin_path)
109
- Dir.foreach(plugin_path) do |file|
110
- if file =~ /(.*).appex/
111
-
112
- appex_path = File.join(plugin_path, file);
113
- tmp_info_plist = File.join(appex_path, "Info.plist");
114
-
115
- old_bundle_id_command = '/usr/local/bin/PlistBuddy -c "Print :CFBundleIdentifier" ' +tmp_info_plist
116
- puts old_bundle_id_command
117
- old_plugin_bundle_id = ""
118
- IO.popen(old_bundle_id_command) { |f| old_plugin_bundle_id = f.gets }
119
- puts old_plugin_bundle_id
120
-
121
- puts "puts old_bundle_id = #{old_plugin_bundle_id}"
122
- if old_plugin_bundle_id.include?(".content")
123
- new_plugin_bundle_id = @bundle_id + ".content"
124
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
125
- puts exchange_bundleid_command
126
- system exchange_bundleid_command
127
- end
128
-
129
- if old_plugin_bundle_id.include?(".service")
130
- new_plugin_bundle_id = @bundle_id + ".service"
131
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
132
- puts exchange_bundleid_command
133
- system exchange_bundleid_command
134
- end
135
-
136
- if old_plugin_bundle_id.include?(".imessage")
137
- new_plugin_bundle_id = @bundle_id + ".imessage"
138
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
139
- puts exchange_bundleid_command
140
- system exchange_bundleid_command
141
- end
142
-
143
- if old_plugin_bundle_id.include?(".keyboard")
144
- new_plugin_bundle_id = @bundle_id + ".keyboard"
145
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
146
- puts exchange_bundleid_command
147
- system exchange_bundleid_command
148
- end
149
-
150
- if old_plugin_bundle_id.include?(".siri")
151
- new_plugin_bundle_id = @bundle_id + ".siri"
152
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
153
- puts exchange_bundleid_command
154
- system exchange_bundleid_command
155
- end
156
-
157
- if old_plugin_bundle_id.include?(".widget")
158
- new_plugin_bundle_id = @bundle_id + ".widget"
159
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
160
- puts exchange_bundleid_command
161
- system exchange_bundleid_command
162
- end
163
-
164
- if old_plugin_bundle_id.include?(".siriui")
165
- new_plugin_bundle_id = @bundle_id + ".siriui"
166
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
167
- puts exchange_bundleid_command
168
- system exchange_bundleid_command
169
- end
170
-
171
-
172
- if old_plugin_bundle_id.include?(".extension")
173
- new_plugin_bundle_id = @bundle_id + ".extension"
174
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
175
- puts exchange_bundleid_command
176
- system exchange_bundleid_command
177
- end
178
-
179
- if old_plugin_bundle_id.include?(".extensionad")
180
- new_plugin_bundle_id = @bundle_id + ".extensionad"
181
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
182
- puts exchange_bundleid_command
183
- system exchange_bundleid_command
184
- end
185
-
186
- if old_plugin_bundle_id.include?(".extensionporn")
187
- new_plugin_bundle_id = @bundle_id + ".extensionporn"
188
- exchange_bundleid_command = '/usr/local/bin/PlistBuddy -c "Set :CFBundleIdentifier ' + new_plugin_bundle_id + '" ' + tmp_info_plist
189
- puts exchange_bundleid_command
190
- system exchange_bundleid_command
191
- end
192
-
193
-
194
- end
195
- end
196
-
197
- end
198
-
199
- end
200
-
201
- def get_resign_ipa_name(ipa_name: nil)
202
-
203
- ipa_base_name = File.basename(ipa_name, ".ipa")
204
- ipa_dir = File.dirname(ipa_name)
205
-
206
- resign_ipa_name = ipa_base_name + "_resigned.ipa"
207
- resign_ipa_full_name = File.join(ipa_dir, resign_ipa_name)
208
- FileUtils.cp_r(ipa_name, resign_ipa_full_name)
209
- puts resign_ipa_full_name
210
-
211
- tmp_time = "tmp_" +Time.now.strftime('%y%m%d_%H%M%S')
212
- tmp_dir = File.join(ipa_dir, tmp_time)
213
- if !File.exist?(tmp_dir)
214
- FileUtils.mkdir(tmp_dir)
215
- end
216
-
217
- command = "unzip -q \"#{resign_ipa_full_name}\" -d #{tmp_dir}"
218
-
219
- puts command
220
- system command
221
-
222
- payload_path = File.join(tmp_dir, "Payload")
223
- if File.exist?(payload_path)
224
- FileUtils.rm_rf(resign_ipa_full_name)
225
- end
226
-
227
-
228
- modify_content_path = ""
229
- Dir.foreach(payload_path) do |file|
230
- if file =~ /(.*).app/
231
- modify_content_path = File.join(payload_path, file);
232
- break;
233
- end
234
- end
235
-
236
- modify_ipa_info_plist(modify_content_path:modify_content_path)
237
-
238
- current_dir = Dir.pwd
239
- if File.exist?(payload_path)
240
- Dir.chdir(tmp_dir)
241
- command = "zip -qry \"#{resign_ipa_full_name}\" * "
242
- puts command
243
- system command
244
- Dir.chdir(current_dir)
245
- end
246
-
247
- if File.exist?(resign_ipa_full_name)
248
- FileUtils.rm_rf(tmp_dir)
249
- end
250
-
251
- return resign_ipa_full_name
252
- end
253
-
254
- def sign_ipa_with_new_cert(ipa_name: nil)
255
-
256
- profil_info_array = pindo_single_config.get_cert_info
257
- bundle_id_signing_identity = profil_info_array.first['signing_identity']
258
- # puts "bundle_id_signing_identity : #{bundle_id_signing_identity}"
259
-
260
- profile_dict = resign_profile_dict(profil_info_array: profil_info_array)
261
-
262
- # puts
263
- # puts "profile_dict :"
264
- # puts
265
- # puts profile_dict
266
-
267
-
268
- # resign(ipa, signing_identity, provisioning_profiles, entitlements, ççç, display_name, short_version, bundle_version, new_bundle_id, use_app_entitlements, keychain_path)
269
-
270
- Sigh::Resign.resign(ipa_name, bundle_id_signing_identity, profile_dict, nil, nil, nil, nil, nil, @bundle_id, true, nil)
271
-
272
- end
273
-
274
-
275
- def extract_zip(file, destination)
276
- FileUtils.mkdir_p(destination)
277
- Zip::File.open(file) do |zip_file|
278
- zip_file.each do |f|
279
- fpath = File.join(destination, f.name)
280
- zip_file.extract(f, fpath) unless File.exist?(fpath)
281
- end
282
- end
283
- end
284
-
285
- def resign_profile_dict(profil_info_array: nil)
286
-
287
-
288
- resign_dict = {}
289
- profil_info_array.each do |profil_info|
290
- resign_dict[profil_info["bundle_id"]] = profil_info["profile_path"]
291
- end
292
-
293
- return resign_dict
294
-
295
- end
296
-
297
- end
298
- end
299
- end
300
- end
@@ -1,108 +0,0 @@
1
-
2
- require 'fileutils'
3
-
4
- module Pindo
5
- class Command
6
- class Deploy < Command
7
- class Tag < Deploy
8
-
9
-
10
- include Command::DeployOptions
11
-
12
- self.summary = '发布完成创建tag'
13
-
14
- self.description = <<-DESC
15
- 发布完成创建tag
16
- DESC
17
-
18
- self.arguments = [
19
- CLAide::Argument.new('path/to/config.json', true),
20
- ]
21
-
22
- def self.options
23
- [
24
- ['--d', '删除当前tag']
25
- ].concat(super)
26
- end
27
-
28
- def initialize(argv)
29
- @delete_tag_name = argv.option('d')
30
- super
31
- end
32
-
33
- def run
34
-
35
- pindo_new_project_dir = Dir.pwd
36
- pindo_dir = File::expand_path(pindo_single_config.pindo_dir)
37
- app_config_dir = File.join(pindo_dir, @deploy_identifier)
38
-
39
-
40
- if !@delete_tag_name.nil?
41
- result = remove_tag(local_repo_dir:pindo_new_project_dir, tag_name:@delete_tag_name)
42
- if result
43
- puts
44
- puts "代码仓库路径#{pindo_new_project_dir}"
45
- puts "已删除tag : #{@delete_tag_name}"
46
- puts
47
- puts
48
- end
49
-
50
- result = remove_tag(local_repo_dir:app_config_dir, tag_name:@delete_tag_name)
51
- if result
52
- puts
53
- puts "配置仓库路径#{app_config_dir}"
54
- puts "已删除tag : #{@delete_tag_name}"
55
- puts
56
- puts
57
- end
58
- end
59
-
60
-
61
- time_str = Time.now.strftime('%y%m%d') + "_"
62
- if @config_json && @config_json["app_info"] && @config_json["app_info"]["app_version"]
63
- temp_version = @config_json["app_info"]["app_version"]
64
- end
65
- tag_name = "ios_release_" + temp_version
66
- puts tag_name
67
-
68
- remove_tag(local_repo_dir:pindo_new_project_dir, tag_name:tag_name)
69
- result = add_tag(local_repo_dir:pindo_new_project_dir, tag_name:tag_name)
70
- if result
71
- puts
72
- puts "代码仓库路径#{pindo_new_project_dir}"
73
- puts "已添加tag : #{tag_name}"
74
- puts
75
- puts
76
- end
77
-
78
- remove_tag(local_repo_dir:app_config_dir, tag_name:tag_name)
79
- result = add_tag(local_repo_dir:app_config_dir, tag_name:tag_name)
80
-
81
- if result
82
- puts
83
- puts "配置仓库路径#{app_config_dir}"
84
- puts "已添加tag : #{tag_name}"
85
- puts
86
- puts
87
- end
88
-
89
- # branch_name = "branch_" + temp_version
90
- # puts branch_name
91
-
92
- # add_branch(local_repo_dir: pindo_new_project_dir, branch: branch_name)
93
- # git!(%W(-C #{pindo_new_project_dir} checkout master))
94
- # remove_branch(local_repo_dir: pindo_new_project_dir, branch: branch_name)
95
-
96
-
97
-
98
- end
99
-
100
-
101
-
102
-
103
-
104
- end
105
- end
106
- end
107
- end
108
-