akcache 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e111a87e7b115115b7fe107f4973a6860e4932a9fd60bf39a618b1ecef70a71a
4
- data.tar.gz: e64335df77ccde462d563a4824d56e8ddb8e121f25b63154fd04447d3d435953
3
+ metadata.gz: a09a77cf0dd1f6e164eedf0a94b3e2f87009416c2ca271acb24a2823c26dd190
4
+ data.tar.gz: 636c83770b0dfc9d78219333daf57cb33b548d69c4f58a85eb753a5355f62f6f
5
5
  SHA512:
6
- metadata.gz: 9ae37bcf39f37c9189f204fde4a90bb38dc0902058cd0c82c83d43dc32ba867e5d250fdc39ccfa9ef177e75fab597e4ad707016ed6b1dab0b54d85ccc26499f2
7
- data.tar.gz: 73c4cace947c1c93670f139d568edcb7d8091ddd7a406da832c7c8fa5363c1647843a20a09293ac064cd9b935cb7f205489b5853ee8c960316a990232f7986ca
6
+ metadata.gz: 8ca2435c52e371036a4465960eb3504ecf587628becff5f3dd1a15ff5f92b745bcf02ad5d77d23dad0aac0614cd196d3f7c1b906b976dc04e8ff5e42b9b976bd
7
+ data.tar.gz: 8b2185ff6a399a12af7c297c690596d8ac4989d0d3e30bfc41276186fdc98196050773f2a3b0e2aa84a163cfa2e18a81ae6a493011e607c0b9f633bedc2b0346
data/kcache.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
12
12
  spec.email = ["1433233832@qq.com"]
13
13
 
14
14
  spec.summary = "a cache tool"
15
- spec.description = "a cache tool that can promote xcode build time"
15
+ spec.description = "a cache tool that can reduce xcode archive time"
16
16
  spec.homepage = "https://github.com/yusheng00"
17
17
  spec.license = "MIT"
18
18
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kcache
4
- VERSION = "1.1.0"
4
+ VERSION = "1.1.1"
5
5
  end
data/lib/kcache.rb CHANGED
@@ -40,7 +40,7 @@ $podfile_spec_checksums = nil
40
40
  $file_md5_hash = {}
41
41
  $exclude_target = []
42
42
 
43
- class CacheManager
43
+ class CacheManager
44
44
 
45
45
  def get_cache_root
46
46
  return Dir.home + "/ysCache"
@@ -82,23 +82,24 @@ $exclude_target = []
82
82
  end
83
83
  return wrapper_project_paths.uniq
84
84
  end
85
+
85
86
 
86
87
  def backup_project(project)
87
- command = "cp \"#{project.path}/project.pbxproj\" \"#{project.path}/project.ysTest_backup_pbxproj\""
88
+ command = "cp \"#{project.path}/project.pbxproj\" \"#{project.path}/ysTest_backup.pbxproj\""
88
89
  raise unless system command
89
90
  end
90
91
 
91
92
  def clean_temp_files
92
- command = "rm -rf Pods/*.xcodeproj/project.ysTest_backup_pbxproj"
93
- raise unless system command
93
+ # command = "rm -rf Pods/*.xcodeproj/ysTest_backup.pbxproj"
94
+ # raise unless system command
94
95
 
95
96
  command = "rm -rf Pods/*.xcodeproj/*.#{FILE_NAME_TARGET_CONTEXT}"
96
97
  raise unless system command
97
98
  end
98
99
 
99
100
  def restore_project(project)
100
- if File.exist? "#{project.path}/project.ysTest_backup_pbxproj"
101
- command = "mv \"#{project.path}/project.ysTest_backup_pbxproj\" \"#{project.path}/project.pbxproj\""
101
+ if File.exist? "#{project.path}/ysTest_backup.pbxproj"
102
+ command = "mv \"#{project.path}/ysTest_backup.pbxproj\" \"#{project.path}/project.pbxproj\""
102
103
  raise unless system command
103
104
  end
104
105
  end
@@ -152,6 +153,7 @@ $exclude_target = []
152
153
  file_path = file.file_ref.real_path.to_s
153
154
  files.push file_path
154
155
  end
156
+
155
157
  #获取所有头文件(.h)
156
158
  target.headers_build_phase.files.each do | file |
157
159
  file_path = file.file_ref.real_path.to_s
@@ -296,7 +298,7 @@ $exclude_target = []
296
298
  if target_context[:target_md5] != target_md5 or target_context[:product_md5] != get_file_md5(target_cache_dir + "/" + FILE_NAME_PRODUCT)
297
299
  command = "rm -rf \"#{target_cache_dir}\""
298
300
  raise unless system command
299
- puts "<ERROR> #{target.name} target md5 dose not match: #{target_cache_dir}"
301
+ puts "<ERROR> #{target.name} target md5 does not match: #{target_cache_dir}"
300
302
  end
301
303
 
302
304
  dependency_exit = true
@@ -306,12 +308,12 @@ $exclude_target = []
306
308
  dependency_file = item[0]
307
309
  dependency_md5 = item[1]
308
310
  unless File.exist? dependency_file
309
- # puts "<WARNING> #{target.name} dependency file miss: #{dependency_file}"
311
+ puts "<WARNING> #{target.name} dependency file miss: #{dependency_file}"
310
312
  dependency_exit = false
311
313
  break
312
314
  end
313
315
  unless get_file_md5(dependency_file) == dependency_md5
314
- # puts "<WARNING> #{target.name} dependency file md5 dose not match: #{dependency_file}"
316
+ puts "<WARNING> #{target.name} dependency file md5 does not match: #{dependency_file}"
315
317
  dependency_exit = false
316
318
  break
317
319
  end
@@ -352,8 +354,6 @@ $exclude_target = []
352
354
 
353
355
  def inject_copy_action(project, target, target_context)
354
356
  target_cache_dir = target_context[:hit_target_cache_dir]
355
- target_product_dir = target_context[:build_product_dir]
356
- build_intermediate_dir = target_context[:build_intermediate_dir]
357
357
 
358
358
  target.build_phases.delete_if { | build_phase |
359
359
  build_phase.class == Xcodeproj::Project::Object::PBXHeadersBuildPhase or
@@ -361,14 +361,9 @@ $exclude_target = []
361
361
  build_phase.class == Xcodeproj::Project::Object::PBXResourcesBuildPhase
362
362
  }
363
363
 
364
- # if target.name == "EURLocalizedStrings"
365
- # target.build_phases.delete_if { |phase|
366
- # phase.class == Xcodeproj::Project::Object::PBXShellScriptBuildPhase
367
- # }
368
- # end
369
364
  command_exec = "\"#{$0}\""
370
365
  inject_phase = target.new_shell_script_build_phase("ys_copy_#{target.name}")
371
- inject_phase.shell_script = "#{command_exec} #{"copy"} \"#{target_cache_dir}\" \"#{target_product_dir}\" \"#{build_intermediate_dir}\""
366
+ inject_phase.shell_script = "#{command_exec} #{"copy"} \"#{target_cache_dir}\""
372
367
  inject_phase.show_env_vars_in_log = '1'
373
368
  end
374
369
 
@@ -378,10 +373,10 @@ $exclude_target = []
378
373
  start_time = Time.now
379
374
  target_cache_dir = ARGV[1]
380
375
  cache_product_path = target_cache_dir + "/#{FILE_NAME_PRODUCT}"
381
-
376
+
382
377
  [SYMROOT, CONFIGURATION_BUILD_DIR, CONFIGURATION_TEMP_DIR, OBJROOT, TARGET_BUILD_DIR, TARGET_TEMP_DIR, SRCROOT, FULL_PRODUCT_NAME].sort.each do | key |
383
378
  unless ENV.has_key? key and ENV[key] and ENV[key].size > 0
384
- raise "<INFO> #{target.name} should have #{key}"
379
+ raise "<INFO> #{$0} should have #{key}"
385
380
  break
386
381
  end
387
382
  end
@@ -412,7 +407,6 @@ $exclude_target = []
412
407
  def add_cache(target, target_info)
413
408
  target_md5 = target_info[:target_md5]
414
409
  product_dir = target_info[CONFIGURATION_BUILD_DIR]
415
- # intermediate_dir = target_info[TARGET_TEMP_DIR]
416
410
  full_product_name = target_info[FULL_PRODUCT_NAME]
417
411
 
418
412
  Dir.glob("#{product_dir}/**/*.modulemap").each do | modulemap |
@@ -521,8 +515,7 @@ $exclude_target = []
521
515
 
522
516
 
523
517
  def project_task_begin
524
-
525
- clean_temp_files
518
+
526
519
  projects = get_projects
527
520
  total_count = 0
528
521
  hit_count = 0
@@ -534,11 +527,18 @@ $exclude_target = []
534
527
  get_custom_config_information
535
528
 
536
529
  pre_targets_info = {}
530
+
531
+ projects.each do |project|
532
+ restore_project(project)
533
+ backup_project(project)
534
+ end
535
+
536
+ clean_temp_files
537
+
538
+ projects = get_projects
539
+
537
540
  projects.each do |project|
538
541
  project.native_targets.each do |target|
539
- target.build_phases.delete_if { |phase|
540
- phase.class == Xcodeproj::Project::Object::PBXShellScriptBuildPhase and phase.name.include? "ys_"
541
- }
542
542
  if can_cache_target(target)
543
543
  total_count = total_count + 1
544
544
  source_files = get_target_source_files(target)
@@ -568,8 +568,8 @@ $exclude_target = []
568
568
  end
569
569
  end
570
570
  end
571
-
572
- while 1
571
+
572
+ while true
573
573
  projects.each do |project|
574
574
  project.native_targets.each do |target|
575
575
  target_info = pre_targets_info[target]
@@ -595,14 +595,14 @@ $exclude_target = []
595
595
  end
596
596
 
597
597
  if miss_target_cache_set.include? "#{dependency_target}"
598
- puts "<INFO> #{target.name} #{target_md5} hit cache, but dependency target #{dependency_target}-#{dependency_target_md5} dose not hit"
598
+ puts "<INFO> #{target.name} #{target_md5} hit cache, but dependency target #{dependency_target}-#{dependency_target_md5} does not hit"
599
599
  target_really_miss = true
600
600
  all_dependency_target_exist = false
601
601
  break
602
602
  end
603
603
 
604
604
  unless hit_target_md5_cache_set.include? "#{dependency_target}-#{dependency_target_md5}"
605
- puts "<INFO> #{target.name} #{target_md5} hit cache, but dependency target #{dependency_target}-#{dependency_target_md5} dose not hit"
605
+ puts "<INFO> #{target.name} #{target_md5} hit cache, but dependency target #{dependency_target}-#{dependency_target_md5} does not hit"
606
606
  all_dependency_target_exist = false
607
607
  target_really_miss = true
608
608
  break
@@ -640,10 +640,7 @@ $exclude_target = []
640
640
  end
641
641
 
642
642
  File.write("#{project.path}/#{target.name}.#{FILE_NAME_TARGET_CONTEXT}", target_info.to_yaml)
643
-
644
643
  end
645
-
646
- backup_project(project)
647
644
  project.save
648
645
  end
649
646
  if total_count == hit_count + miss_count + error_count
@@ -801,7 +798,6 @@ $exclude_target = []
801
798
 
802
799
  puts "<INFO> total add cache count: #{total_add_count}"
803
800
  end
804
-
805
801
 
806
802
  end
807
803
 
data/lib/pod_plugin.rb ADDED
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akcache
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - yusheng
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-26 00:00:00.000000000 Z
11
+ date: 2021-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xcodeproj
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
- description: a cache tool that can promote xcode build time
27
+ description: a cache tool that can reduce xcode archive time
28
28
  email:
29
29
  - 1433233832@qq.com
30
30
  executables:
@@ -49,6 +49,7 @@ files:
49
49
  - lib/kcache.rb
50
50
  - lib/kcache/README.md
51
51
  - lib/kcache/version.rb
52
+ - lib/pod_plugin.rb
52
53
  homepage: https://github.com/yusheng00
53
54
  licenses:
54
55
  - MIT
@@ -56,7 +57,7 @@ metadata:
56
57
  homepage_uri: https://github.com/yusheng00
57
58
  source_code_uri: https://github.com/yusheng00
58
59
  changelog_uri: https://github.com/yusheng00
59
- post_install_message:
60
+ post_install_message:
60
61
  rdoc_options: []
61
62
  require_paths:
62
63
  - lib
@@ -71,8 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
72
  - !ruby/object:Gem::Version
72
73
  version: '0'
73
74
  requirements: []
74
- rubygems_version: 3.0.6
75
- signing_key:
75
+ rubygems_version: 3.1.6
76
+ signing_key:
76
77
  specification_version: 4
77
78
  summary: a cache tool
78
79
  test_files: []