pindo 4.6.9

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 (120) hide show
  1. checksums.yaml +7 -0
  2. data/bin/pindo +35 -0
  3. data/lib/pindo/base/aeshelper.rb +31 -0
  4. data/lib/pindo/base/deviceinfo.rb +90 -0
  5. data/lib/pindo/base/executable.rb +224 -0
  6. data/lib/pindo/base/githelper.rb +489 -0
  7. data/lib/pindo/base/hashhelper.rb +134 -0
  8. data/lib/pindo/base/plaininformative.rb +15 -0
  9. data/lib/pindo/base/plistbuddyexecutable.rb +121 -0
  10. data/lib/pindo/base/standarderror.rb +14 -0
  11. data/lib/pindo/client/applovinclient.rb +156 -0
  12. data/lib/pindo/client/aws3sclient.rb +183 -0
  13. data/lib/pindo/client/bossclient.rb +229 -0
  14. data/lib/pindo/client/bossconfigclient.rb +175 -0
  15. data/lib/pindo/client/giteeclient.rb +65 -0
  16. data/lib/pindo/client/httpclient.rb +40 -0
  17. data/lib/pindo/client/pgyerclient.rb +439 -0
  18. data/lib/pindo/client/tgateclient.rb +103 -0
  19. data/lib/pindo/command.rb +101 -0
  20. data/lib/pindo/config/pindoconfig.rb +439 -0
  21. data/lib/pindo/config/pindouserlocalconfig.rb +81 -0
  22. data/lib/pindo/deploy/Fastfile +233 -0
  23. data/lib/pindo/deploy/build.rb +167 -0
  24. data/lib/pindo/deploy/bundleid.rb +245 -0
  25. data/lib/pindo/deploy/cert.rb +508 -0
  26. data/lib/pindo/deploy/check.rb +79 -0
  27. data/lib/pindo/deploy/configproj.rb +89 -0
  28. data/lib/pindo/deploy/confusecode.rb +248 -0
  29. data/lib/pindo/deploy/confuseproj.rb +112 -0
  30. data/lib/pindo/deploy/fabric.rb +58 -0
  31. data/lib/pindo/deploy/getitcinfo.rb +248 -0
  32. data/lib/pindo/deploy/iap.rb +796 -0
  33. data/lib/pindo/deploy/initconfig.rb +128 -0
  34. data/lib/pindo/deploy/itcapp.rb +147 -0
  35. data/lib/pindo/deploy/itcinfo.rb +369 -0
  36. data/lib/pindo/deploy/pem.rb +55 -0
  37. data/lib/pindo/deploy/pullconfig.rb +46 -0
  38. data/lib/pindo/deploy/pushconfig.rb +83 -0
  39. data/lib/pindo/deploy/quswark.rb +146 -0
  40. data/lib/pindo/deploy/quswauth.rb +67 -0
  41. data/lib/pindo/deploy/reportbug.rb +135 -0
  42. data/lib/pindo/deploy/resign.rb +338 -0
  43. data/lib/pindo/deploy/tag.rb +108 -0
  44. data/lib/pindo/deploy/updateconfig.rb +129 -0
  45. data/lib/pindo/deploy/uploadipa.rb +63 -0
  46. data/lib/pindo/deploy.rb +44 -0
  47. data/lib/pindo/dev/autobuild.rb +204 -0
  48. data/lib/pindo/dev/autoresign.rb +186 -0
  49. data/lib/pindo/dev/confusecode.rb +127 -0
  50. data/lib/pindo/dev/confuseproj.rb +111 -0
  51. data/lib/pindo/dev/createbuild.rb +159 -0
  52. data/lib/pindo/dev/debug.rb +141 -0
  53. data/lib/pindo/dev/pub.rb +171 -0
  54. data/lib/pindo/dev/renewcert.rb +142 -0
  55. data/lib/pindo/dev.rb +23 -0
  56. data/lib/pindo/env/dreamstudio.rb +53 -0
  57. data/lib/pindo/env/flutter.rb +59 -0
  58. data/lib/pindo/env/flutter.sh +116 -0
  59. data/lib/pindo/env/quarkenv.rb +58 -0
  60. data/lib/pindo/env/swarkenv.rb +62 -0
  61. data/lib/pindo/env/workhard.rb +56 -0
  62. data/lib/pindo/env.rb +17 -0
  63. data/lib/pindo/ipa/autoresign.rb +188 -0
  64. data/lib/pindo/ipa/import.rb +261 -0
  65. data/lib/pindo/ipa/output.rb +396 -0
  66. data/lib/pindo/ipa.rb +22 -0
  67. data/lib/pindo/lib/forcepush.rb +159 -0
  68. data/lib/pindo/lib/lint.rb +115 -0
  69. data/lib/pindo/lib/push.rb +143 -0
  70. data/lib/pindo/lib/update.rb +75 -0
  71. data/lib/pindo/lib.rb +18 -0
  72. data/lib/pindo/module/appselect.rb +200 -0
  73. data/lib/pindo/module/appstore_in_app_purchase.rb +1803 -0
  74. data/lib/pindo/module/appstore_metadata_connect_api_helper.rb +12 -0
  75. data/lib/pindo/module/appstore_metadata_fastlane_helper.rb +922 -0
  76. data/lib/pindo/module/buildconfighelper.rb +13 -0
  77. data/lib/pindo/module/buildhelper.rb +76 -0
  78. data/lib/pindo/module/commonconfuseproj.rb +271 -0
  79. data/lib/pindo/module/config_project.sh +143 -0
  80. data/lib/pindo/module/configprojhelper.rb +631 -0
  81. data/lib/pindo/module/iap_tier.json +813 -0
  82. data/lib/pindo/module/icon_contents.json +116 -0
  83. data/lib/pindo/module/imessage_icon.json +91 -0
  84. data/lib/pindo/module/imgset_contents.json +21 -0
  85. data/lib/pindo/module/launchimg_contents.json +21 -0
  86. data/lib/pindo/module/pemcreate.rb +63 -0
  87. data/lib/pindo/module/pgyerhelper.rb +339 -0
  88. data/lib/pindo/module/xcodebuildpre.rb +258 -0
  89. data/lib/pindo/module/xcodehelper.rb +521 -0
  90. data/lib/pindo/options/appconfigoptions.rb +23 -0
  91. data/lib/pindo/options/deployoptions.rb +363 -0
  92. data/lib/pindo/pgyer/apptest.rb +104 -0
  93. data/lib/pindo/pgyer/comment.rb +95 -0
  94. data/lib/pindo/pgyer/download.rb +105 -0
  95. data/lib/pindo/pgyer/login.rb +61 -0
  96. data/lib/pindo/pgyer/upload.rb +234 -0
  97. data/lib/pindo/pgyer.rb +17 -0
  98. data/lib/pindo/repo/clone.rb +78 -0
  99. data/lib/pindo/repo/create.rb +55 -0
  100. data/lib/pindo/repo/login.rb +64 -0
  101. data/lib/pindo/repo/search.rb +60 -0
  102. data/lib/pindo/repo.rb +16 -0
  103. data/lib/pindo/setup.rb +60 -0
  104. data/lib/pindo/upgrade.rb +56 -0
  105. data/lib/pindo/utils/applovin.rb +213 -0
  106. data/lib/pindo/utils/boss.rb +209 -0
  107. data/lib/pindo/utils/clearcert.rb +60 -0
  108. data/lib/pindo/utils/device.rb +279 -0
  109. data/lib/pindo/utils/icon.rb +91 -0
  110. data/lib/pindo/utils/icon.sh +133 -0
  111. data/lib/pindo/utils/podindex.rb +56 -0
  112. data/lib/pindo/utils/podindex.sh +30 -0
  113. data/lib/pindo/utils/renewproj.rb +146 -0
  114. data/lib/pindo/utils/tgate.rb +159 -0
  115. data/lib/pindo/utils/xcassets.rb +46 -0
  116. data/lib/pindo/utils/xcassets.sh +88 -0
  117. data/lib/pindo/utils.rb +29 -0
  118. data/lib/pindo/version.rb +110 -0
  119. data/lib/pindo.rb +34 -0
  120. metadata +364 -0
@@ -0,0 +1,55 @@
1
+ require 'fileutils'
2
+
3
+ module Pindo
4
+ class Command
5
+ class Deploy < Command
6
+ class Pem < Deploy
7
+
8
+
9
+ include Command::DeployOptions
10
+ include Pemcreate
11
+
12
+ self.summary = '创建App的push证书'
13
+
14
+ self.description = <<-DESC
15
+ 创建App的push证书
16
+ DESC
17
+
18
+ self.arguments = [
19
+ CLAide::Argument.new('path/to/config.json', true),
20
+ ]
21
+
22
+ def run
23
+
24
+ login(apple_id:@apple_id)
25
+
26
+ pem_type="prod"
27
+ if @args_dev_flag
28
+ pem_type = "dev"
29
+ end
30
+
31
+ temp_dir = "push_" + Time.now.to_i.to_s
32
+ push_path = File.join(File.expand_path('~/Desktop/'), temp_dir)
33
+ FileUtils.mkdir_p(push_path) unless File.exist?(push_path)
34
+ puts push_path
35
+
36
+ x509_cert_path = create_certificate(bundle_id:@bundle_id,type: pem_type, output_path:push_path);
37
+
38
+ if File.exist?(x509_cert_path) && File.exist?(push_path)
39
+ app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
40
+ push_repo_dir = File.join(app_config_dir, "push")
41
+
42
+ if !File.exist?(push_repo_dir)
43
+ FileUtils.mkdir(push_repo_dir)
44
+ end
45
+ FileUtils.cp_r(File.join(push_path, "."), push_repo_dir)
46
+
47
+ git_addpush_repo(path:app_config_dir, message:"add push cert")
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
55
+
@@ -0,0 +1,46 @@
1
+ require 'fileutils'
2
+
3
+ module Pindo
4
+ class Command
5
+ class Deploy < Command
6
+
7
+ class Pullconfig < Deploy
8
+
9
+ self.summary = '下载并更新App配置仓库'
10
+ self.description = <<-DESC
11
+ 下载并更新App配置仓库.
12
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('bundleid', true)
16
+ ]
17
+
18
+ def initialize(argv)
19
+ @args_appconfig_repo_name = argv.shift_argument
20
+ super
21
+ @additional_args = argv.remainder!
22
+ end
23
+
24
+ def validate!
25
+ super
26
+
27
+ if @args_appconfig_repo_name.nil?
28
+ say "You need input a bundle id"
29
+ @args_appconfig_repo_name = ask('App Config Repo Name : ') || nil
30
+ end
31
+ help! 'You need input a repo name' if @args_appconfig_repo_name.nil? || @args_appconfig_repo_name.empty?
32
+ end
33
+
34
+ def run
35
+
36
+ app_config_dir = clong_buildconfig_repo(repo_name: @args_appconfig_repo_name)
37
+ current=Dir.pwd
38
+ if !app_config_dir.eql?(current) && File.exist?(File.join(app_config_dir, 'config.json'))
39
+ FileUtils.cp_r(File.join(app_config_dir, "config.json"), current)
40
+ end
41
+ end
42
+
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,83 @@
1
+ require 'fileutils'
2
+ require 'json'
3
+
4
+ module Pindo
5
+ class Command
6
+ class Deploy < Command
7
+
8
+ class Pushconfig < Deploy
9
+
10
+ self.summary = '将app配置上传并且推送到远程仓库'
11
+
12
+ self.description = <<-DESC
13
+ 将app配置上传并且推送到远程仓库
14
+ DESC
15
+
16
+ self.arguments = [
17
+ CLAide::Argument.new('path/to/config.json', true)
18
+ ]
19
+
20
+ def self.options
21
+ [
22
+
23
+ ].concat(super)
24
+ end
25
+
26
+ def initialize(argv)
27
+ @args_appconfig = argv.shift_argument || './config.json'
28
+ super
29
+ @additional_args = argv.remainder!
30
+ end
31
+
32
+ def validate!
33
+ super
34
+
35
+ if !@args_appconfig.empty? && File::file?(@args_appconfig)
36
+ @args_appconfig_dir=File::expand_path(File::dirname(@args_appconfig))
37
+ @args_appconfig_fullname=File::join(@args_appconfig_dir, File::basename(@args_appconfig))
38
+ end
39
+
40
+ configJson=JSON.parse(File.read(@args_appconfig_fullname))
41
+ if configJson['account_info'] && configJson['account_info']['apple_acount_id']
42
+ @apple_id = configJson['account_info']['apple_acount_id']
43
+ end
44
+
45
+ if configJson['app_info'] && configJson['app_info']['app_identifier']
46
+ @bundle_id = configJson['app_info']['app_identifier']
47
+ end
48
+
49
+ help! 'Need correct config.json with a bundle id' if @bundle_id.nil? || @bundle_id.empty?
50
+
51
+ end
52
+
53
+ def run
54
+
55
+ app_config_dir = clong_buildconfig_repo(repo_name: @deploy_repo_name)
56
+
57
+ if !File.exist?(app_config_dir)
58
+ puts "Error !!!"
59
+ return
60
+ end
61
+
62
+ current=Dir.pwd
63
+
64
+ if File.exist?(File.join(current, 'config.json'))
65
+ FileUtils.cp_r(File.join(current, "config.json"), app_config_dir)
66
+ end
67
+
68
+ Dir.chdir(app_config_dir)
69
+ files_list = git! ['status', '--porcelain']
70
+ if !files_list.empty?
71
+ git! ['add', "-A"]
72
+ git! ['commit', '-m "update config.json"']
73
+ git! ['push']
74
+ else
75
+ puts "no thing commint"
76
+ end
77
+ Dir.chdir(current)
78
+
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,146 @@
1
+ require 'highline/import'
2
+ require 'fileutils'
3
+ require 'json'
4
+ require 'xcodeproj'
5
+ require 'match'
6
+ require 'yaml'
7
+
8
+ module Pindo
9
+ class Command
10
+ class Deploy < Command
11
+ class Quswark < Deploy
12
+
13
+ include Command::DeployOptions
14
+
15
+ self.summary = 'Xcode工程设置swark或quark'
16
+
17
+ self.description = <<-DESC
18
+ Xcode工程设置swark或quark
19
+ DESC
20
+
21
+ self.arguments = [
22
+ CLAide::Argument.new('path/to/config.json', true),
23
+ ]
24
+
25
+ def self.options
26
+ [
27
+
28
+ ].concat(super)
29
+ end
30
+
31
+ def initialize(argv)
32
+ super
33
+ @additional_args = argv.remainder!
34
+ end
35
+
36
+ def run
37
+
38
+ if @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("quark")
39
+ quark_run
40
+ elsif @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("swark")
41
+ swark_run
42
+ else
43
+ swark_run
44
+ end
45
+
46
+ end
47
+
48
+
49
+ def swark_run
50
+
51
+ Pindo::Command::Env::Swarkenv::run([])
52
+ Pindo::Command::Deploy::Quswauth::run([])
53
+
54
+ new_project_dir = Dir.pwd
55
+
56
+ swark_host_name= File.join(new_project_dir, "Swark.host.yaml")
57
+ host_json = {}
58
+
59
+ host_json["remote"] = {}
60
+ host_url = ""
61
+ host_json["remote"]["test"] = ""
62
+
63
+ if @config_json && @config_json['app_setting'] && @config_json['app_setting']['app_client_url']
64
+ host_url = File.join(@config_json['app_setting']['app_client_url'], 'api/v3/init')
65
+ end
66
+
67
+ if @config_json && @config_json['app_setting'] && @config_json['app_setting']['kGUKeyAppClientHost']
68
+ host_url = File.join(@config_json['app_setting']['kGUKeyAppClientHost'], 'api/v3/init')
69
+ end
70
+
71
+ host_json["remote"]["pre"] = host_url
72
+ host_json["remote"]["prod"] = host_url
73
+
74
+
75
+ embed_name = "vdisk.dat"
76
+ category_name = "VMDemo"
77
+ if @config_json['project_info'] && @config_json['project_info']['project_name']
78
+ category_name = @config_json['project_info']['project_name']
79
+ category_name = category_name.gsub(/ /, '');
80
+ category_name = category_name.gsub(/\'/, '');
81
+ embed_name = category_name + ".dat"
82
+ end
83
+ host_json["embed"] = embed_name
84
+
85
+ yaml_to_save = File.open(swark_host_name,"w")
86
+ YAML::dump(host_json,yaml_to_save)
87
+ yaml_to_save.close
88
+
89
+
90
+ swark_mode = 'prod'
91
+ if @args_adhoc_flag || @args_dev_flag
92
+ swark_mode = 'pre'
93
+ end
94
+ command = 'swark host ' + swark_mode
95
+
96
+ # if @config_json['project_info']['xcode_build_type'] && @config_json["project_info"]["xcode_build_type"].include?("swark") && @config_json["project_info"]["xcode_build_type"].include?("confuse")
97
+ # command = command + " --strip-compatibility-swift51"
98
+ # end
99
+ system command
100
+
101
+ end
102
+
103
+ def quark_run
104
+
105
+ Pindo::Command::Env::Quarkenv::run([])
106
+
107
+ new_project_dir = Dir.pwd
108
+
109
+ quark_mode = 'prod'
110
+ if @args_adhoc_flag || @args_dev_flag
111
+ quark_mode = 'test'
112
+ end
113
+ command = 'quark host ' + quark_mode
114
+ system command
115
+
116
+ quark_json_file = File.join(new_project_dir, "QuarkData/Quark.lock")
117
+ quark_json = JSON.parse(File.read(quark_json_file))
118
+
119
+ if @config_json && @config_json['app_setting'] && @config_json['app_setting']['app_client_url']
120
+ quark_json['remote'] = File.join(@config_json['app_setting']['app_client_url'], 'api/init')
121
+ end
122
+
123
+ embed_name = "Meety.dat"
124
+ category_name = "PodsDummy"
125
+ if @config_json['project_info'] && @config_json['project_info']['project_name']
126
+ category_name = @config_json['project_info']['project_name']
127
+ category_name = category_name.gsub(/ /, '');
128
+ category_name = category_name.gsub(/\'/, '');
129
+ embed_name = category_name + ".dat"
130
+ end
131
+ quark_json['embed'] = embed_name
132
+ quark_json['category'] = category_name
133
+ quark_json['env'] = quark_mode
134
+
135
+ File.open(quark_json_file, "w") do |file|
136
+ file.write(JSON.pretty_generate(quark_json))
137
+ file.close
138
+ end
139
+
140
+ end
141
+
142
+
143
+ end
144
+ end
145
+ end
146
+ end
@@ -0,0 +1,67 @@
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
+ DESC
18
+
19
+ self.arguments = [
20
+ CLAide::Argument.new('path/to/config.json', true),
21
+ ]
22
+
23
+ def self.options
24
+ [
25
+
26
+ ].concat(super)
27
+ end
28
+
29
+ def initialize(argv)
30
+ super
31
+ @additional_args = argv.remainder!
32
+ end
33
+
34
+ def run
35
+
36
+ swark_authorize_run
37
+ end
38
+
39
+ def swark_authorize_run
40
+
41
+ app_config_dir = File.join(File::expand_path(pindo_single_config.pindo_dir), @deploy_identifier)
42
+ swark_authorize_file = File.join(app_config_dir, "swark_authorize.json")
43
+ if File.exist?(swark_authorize_file)
44
+ swark_authorize_json=JSON.parse(File.read(swark_authorize_file))
45
+ unless swark_authorize_json && swark_authorize_json['swark_authorize_status']
46
+
47
+ command = "swark authorize "
48
+ command = command + swark_authorize_json["swark_authorize_teamid"] + "." + swark_authorize_json["swark_authorize_bundleid"]
49
+ puts
50
+ puts
51
+ puts command
52
+ puts
53
+ system command
54
+
55
+ swark_authorize_json['swark_authorize_status'] = true
56
+ File.open(swark_authorize_file, "w") do |f|
57
+ f.write(JSON.pretty_generate(swark_authorize_json))
58
+ end
59
+ git_addpush_repo(path:app_config_dir, message:"swark authorize success !!!")
60
+ end
61
+ end
62
+
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,135 @@
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
+ DESC
13
+
14
+ self.arguments = [
15
+ CLAide::Argument.new('bundleid', true)
16
+ ]
17
+
18
+ def initialize(argv)
19
+ @args_bundle_id = argv.shift_argument
20
+ super
21
+ @additional_args = argv.remainder!
22
+ end
23
+
24
+ def validate!
25
+ super
26
+
27
+ if @args_bundle_id.nil?
28
+ say "You need input a bundle id"
29
+ @args_bundle_id = ask('Bundle Id : ') || nil
30
+ end
31
+ help! 'You need input a bundle id' if @args_bundle_id.nil? || @args_bundle_id.empty?
32
+ end
33
+
34
+ def run
35
+
36
+ current=Dir.pwd
37
+
38
+ app_config_dir = clong_buildconfig_repo(repo_name: @args_bundle_id)
39
+
40
+ bugapp_config_dir = clong_buildconfig_repo(repo_name: pindo_single_config.crash_bundle_id)
41
+
42
+ if File.exist?(File.join(bugapp_config_dir, "config.json"))
43
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "config.json"))
44
+ end
45
+ if File.exist?(File.join(app_config_dir, "config.json"))
46
+ FileUtils.cp_r(File.join(app_config_dir, "config.json"), File.join(bugapp_config_dir, "config.json"))
47
+ end
48
+
49
+ if File.exist?(File.join(bugapp_config_dir, "Podfile.lock"))
50
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "Podfile.lock"))
51
+ end
52
+ if File.exist?(File.join(app_config_dir, "Podfile.lock"))
53
+ FileUtils.cp_r(File.join(app_config_dir, "Podfile.lock"), File.join(bugapp_config_dir, "Podfile.lock"))
54
+ end
55
+
56
+
57
+ if File.exist?(File.join(bugapp_config_dir, "Replaced.json"))
58
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "Replaced.json"))
59
+ end
60
+ if File.exist?(File.join(app_config_dir, "Replaced.json"))
61
+ FileUtils.cp_r(File.join(app_config_dir, "Replaced.json"), File.join(bugapp_config_dir, "Replaced.json"))
62
+ end
63
+
64
+ if File.exist?(File.join(bugapp_config_dir, "Symash.json"))
65
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "Symash.json"))
66
+ end
67
+ if File.exist?(File.join(app_config_dir, "Symash.json"))
68
+ FileUtils.cp_r(File.join(app_config_dir, "Symash.json"), File.join(bugapp_config_dir, "Symash.json"))
69
+ end
70
+
71
+ if File.exist?(File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
72
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
73
+ end
74
+ if File.exist?(File.join(app_config_dir, "Backup_MapBundleName.json"))
75
+ FileUtils.cp_r(File.join(app_config_dir, "Backup_MapBundleName.json"), File.join(bugapp_config_dir, "Backup_MapBundleName.json"))
76
+ end
77
+
78
+
79
+ if File.exist?(File.join(bugapp_config_dir, "DupMethodCache.json"))
80
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "DupMethodCache.json"))
81
+ end
82
+ if File.exist?(File.join(app_config_dir, "DupMethodCache.json"))
83
+ FileUtils.cp_r(File.join(app_config_dir, "DupMethodCache.json"), File.join(bugapp_config_dir, "DupMethodCache.json"))
84
+ end
85
+
86
+
87
+ if File.exist?(File.join(bugapp_config_dir, "import-sympkg.plist"))
88
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "import-sympkg.plist"))
89
+ end
90
+ if File.exist?(File.join(app_config_dir, "import-sympkg.plist"))
91
+ FileUtils.cp_r(File.join(app_config_dir, "import-sympkg.plist"), File.join(bugapp_config_dir, "import-sympkg.plist"))
92
+ end
93
+
94
+ if File.exist?(File.join(bugapp_config_dir, "MergeClassFiles"))
95
+ FileUtils.rm_rf(File.join(bugapp_config_dir, "MergeClassFiles"))
96
+ end
97
+ if File.exist?(File.join(app_config_dir, "MergeClassFiles"))
98
+ FileUtils.cp_r(File.join(app_config_dir, "MergeClassFiles"), File.join(bugapp_config_dir, "MergeClassFiles"))
99
+ end
100
+
101
+ app_config_file = File.join(bugapp_config_dir, "config.json")
102
+ if !app_config_file.empty? && File::exist?(app_config_file)
103
+ default_config_json=JSON.parse(File.read(app_config_file))
104
+ if !default_config_json.nil?
105
+
106
+ default_config_json['account_info']['apple_acount_id'] = pindo_single_config.demo_apple_id
107
+ default_config_json['app_info']['app_identifier'] = pindo_single_config.crash_bundle_id
108
+ default_config_json['app_info']['app_identifier_pushcontent'] = pindo_single_config.crash_bundle_id + ".content"
109
+ default_config_json['app_info']['app_identifier_pushservice'] = pindo_single_config.crash_bundle_id + ".service"
110
+
111
+ if default_config_json['app_info'] && default_config_json['app_info']['app_identifier_keyboard']
112
+ default_config_json['app_info']['app_identifier_keyboard'] = pindo_single_config.crash_bundle_id + ".keyboard"
113
+ end
114
+ if default_config_json['app_info'] && default_config_json['app_info']['app_identifier_imessage']
115
+ default_config_json['app_info']['app_identifier_imessage'] = pindo_single_config.crash_bundle_id + ".imessage"
116
+ end
117
+
118
+ if default_config_json['app_info'] && default_config_json['app_info']['app_group_id']
119
+ default_config_json['app_info']['app_group_id'] = "group." + pindo_single_config.crash_bundle_id
120
+ end
121
+
122
+ File.open(app_config_file, "w") do |f|
123
+ f.write(JSON.pretty_generate(default_config_json))
124
+ end
125
+ end
126
+ end
127
+
128
+ git_addpush_repo(path:bugapp_config_dir, message:"report bugs #{@args_bundle_id}")
129
+
130
+ end
131
+
132
+ end
133
+ end
134
+ end
135
+ end