cocoapods-xcremotecache 0.0.14 → 0.0.16

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: 9929e3043567b27f1a9a8dd2d475876930ed6ba35d654b463776688edcf4f0c4
4
- data.tar.gz: f03ed16f60910db323d0ae5edf3e3d8db4f5c32b722c417990a3cae3184b9fa7
3
+ metadata.gz: 0d10f7d00729ae888941fcef52d599379a094020de82b5540005ae970d814929
4
+ data.tar.gz: 391aee8027c9796ac45b3703b5f5eafc24fd6a555d211e6aa02629ace9f9b887
5
5
  SHA512:
6
- metadata.gz: 14d5fba66c6ed362882a1cd6bcdf6a2e9095f81cca83ab7893020232af51839fc2154e61bdb7621f175873c460bfd5178413fc73d3c6f9c7a08c4354b3880486
7
- data.tar.gz: 7ea3092b9c346a2d75d0df98431a721badc7065449a1f89ab19db8fa58137002907e39a755dfffa789cb2cbe1e491aa4b5ffbee31a694df9752a236981619cc8
6
+ metadata.gz: 9df9bb0c507814034d0af16d24337eaec451a1d0456ff727952c9d76a8abef63384bcf5e8fd436d0ee212d5455e65934d409123bba3d2f9e1a81d3f70b91a39f
7
+ data.tar.gz: c583acfc889027a047b5144919469a2477b4391994f72d82568838a839a44c91fe982c772dcb3c7296c47f7bb27db2da334907b8cd9640fe1ad17aabb9eaf5ea
data/README.md CHANGED
@@ -28,7 +28,7 @@ plugin 'cocoapods-xcremotecache'
28
28
  2. Configure XCRemoteCache at the top of your `Podfile` definition:
29
29
  ```ruby
30
30
  xcremotecache({
31
- 'cache_addresses' => ['http://localhost:8080/cache/pods'],
31
+ 'cache_addresses' => ['http://localhost:8080/cache/pods'],
32
32
  'primary_repo' => 'https://your.primary.repo.git',
33
33
  'mode' => 'consumer'
34
34
  })
@@ -48,13 +48,14 @@ An object that is passed to the `xcremotecache` can contain all properties suppo
48
48
  | `exclude_build_configurations` | Comma-separated list of configurations that shouldn't use XCRemoteCache | `[]`| ⬜️ |
49
49
  | `final_target` | A target name that is build at the end of the build chain. Relevant only for a 'producer' mode to mark a given sha as ready to use from cache | `Debug` | ⬜️ |
50
50
  | `check_build_configuration` | A build configuration for which the remote cache availability is performed. Relevant only for a 'consumer' mode | `Debug` | ⬜️ |
51
- | `check_platform` | A platform for which the remote cache availability is performed. Relevant only for a 'consumer' mode | `iphonesimulator` | ⬜️
51
+ | `check_platform` | A platform for which the remote cache availability is performed. Relevant only for a 'consumer' mode | `iphonesimulator` | ⬜️
52
52
  | `modify_lldb_init` | Controls if the pod integration should modify `~/.lldbinit` | `true` | ⬜️ |
53
53
  | `xccc_file` | The path where should be placed the `xccc` binary (in the pod installation phase) | `{podfile_dir}/.rc/xccc` | ⬜️ |
54
54
  | `remote_commit_file` | The path of the file with the remote commit sha (in the pod installation phase) | `{podfile_dir}/.rc/arc.rc`| ⬜️ |
55
55
  | `prettify_meta_files` | A Boolean value that opts-in pretty JSON formatting for meta files | `false` | ⬜️ |
56
56
  | `fake_src_root` | An arbitrary source location shared between producers and consumers. Should be unique for a project. | `/xxxxxxxxxx` | ⬜️ |
57
57
  | `disable_certificate_verification` | A Boolean value that opts-in SSL certificate validation is disabled | `false` | ⬜️ |
58
+ | `exclude_sdks_configurations` | array of sdks to not integrate XCRemoteCache (e.g. "watchos*, watchsimulator*") (Experimental) | `[]`| ⬜️ |
58
59
 
59
60
  ## Uninstalling
60
61
 
@@ -3,9 +3,9 @@
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
5
5
  # You may obtain a copy of the License at
6
- #
6
+ #
7
7
  # http://www.apache.org/licenses/LICENSE-2.0
8
- #
8
+ #
9
9
  # Unless required by applicable law or agreed to in writing, software
10
10
  # distributed under the License is distributed on an "AS IS" BASIS,
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -29,42 +29,44 @@ module CocoapodsXCRemoteCacheModifier
29
29
  FAT_ARCHIVE_NAME_INFIX = 'arm64-x86_64'
30
30
  XCRC_COOCAPODS_ROOT_KEY = 'XCRC_COOCAPODS_ROOT'
31
31
 
32
- # List of plugins' user properties that should not be copied to .rcinfo
32
+ # List of plugins' user properties that should not be copied to .rcinfo
33
33
  CUSTOM_CONFIGURATION_KEYS = [
34
- 'enabled',
34
+ 'enabled',
35
35
  'xcrc_location',
36
36
  'exclude_targets',
37
37
  'exclude_build_configurations',
38
38
  'final_target',
39
- 'check_build_configuration',
40
- 'check_platform',
39
+ 'check_build_configuration',
40
+ 'check_platform',
41
41
  'modify_lldb_init',
42
42
  'fake_src_root',
43
+ 'exclude_sdks_configurations'
43
44
  ]
44
45
 
45
46
  class XCRemoteCache
46
47
  @@configuration = nil
47
48
 
48
- def self.configure(c)
49
+ def self.configure(c)
49
50
  @@configuration = c
50
51
  end
51
52
 
52
53
  def self.set_configuration_default_values
53
54
  default_values = {
54
55
  'mode' => 'consumer',
55
- 'enabled' => true,
56
+ 'enabled' => true,
56
57
  'xcrc_location' => "XCRC",
57
58
  'exclude_build_configurations' => [],
58
59
  'check_build_configuration' => 'Debug',
59
- 'check_platform' => 'iphonesimulator',
60
- 'modify_lldb_init' => true,
60
+ 'check_platform' => 'iphonesimulator',
61
+ 'modify_lldb_init' => true,
61
62
  'xccc_file' => "#{BIN_DIR}/xccc",
62
63
  'remote_commit_file' => "#{BIN_DIR}/arc.rc",
63
64
  'exclude_targets' => [],
64
65
  'prettify_meta_files' => false,
65
66
  'fake_src_root' => "/#{'x' * 10 }",
66
67
  'disable_certificate_verification' => false,
67
- 'custom_rewrite_envs' => []
68
+ 'custom_rewrite_envs' => [],
69
+ 'exclude_sdks_configurations' => []
68
70
  }
69
71
  @@configuration.merge! default_values.select { |k, v| !@@configuration.key?(k) }
70
72
  # Always include XCRC_COOCAPODS_ROOT_KEY in custom_rewrite_envs
@@ -75,12 +77,12 @@ module CocoapodsXCRemoteCacheModifier
75
77
 
76
78
  def self.validate_configuration()
77
79
  required_values = [
78
- 'cache_addresses',
80
+ 'cache_addresses',
79
81
  'primary_repo',
80
82
  'check_build_configuration',
81
83
  'check_platform'
82
84
  ]
83
-
85
+
84
86
  missing_configuration_values = required_values.select { |v| !@@configuration.key?(v) }
85
87
  unless missing_configuration_values.empty?
86
88
  throw "XCRemoteCache not fully configured. Make sure all required fields are provided. Missing fields are: #{missing_configuration_values.join(', ')}."
@@ -105,13 +107,24 @@ module CocoapodsXCRemoteCacheModifier
105
107
  end
106
108
 
107
109
  # @param target [Target] target to apply XCRemoteCache
108
- # @param repo_distance [Integer] distance from the git repo root to the target's $SRCROOT
110
+ # @param repo_distance [Integer] distance from the git repo root to the target's $SRCROOT
109
111
  # @param xc_location [String] path to the dir with all XCRemoteCache binaries, relative to the repo root
110
112
  # @param xc_cc_path [String] path to the XCRemoteCache clang wrapper, relative to the repo root
111
113
  # @param mode [String] mode name ('consumer', 'producer', 'producer-fast' etc.)
112
114
  # @param exclude_build_configurations [String[]] list of targets that should have disabled remote cache
113
115
  # @param final_target [String] name of target that should trigger marking
114
- def self.enable_xcremotecache(target, repo_distance, xc_location, xc_cc_path, mode, exclude_build_configurations, final_target, fake_src_root)
116
+ # @param exclude_sdks_configurations [String[]] list of sdks that should have disabled remote cache
117
+ def self.enable_xcremotecache(
118
+ target,
119
+ repo_distance,
120
+ xc_location,
121
+ xc_cc_path,
122
+ mode,
123
+ exclude_build_configurations,
124
+ final_target,
125
+ fake_src_root,
126
+ exclude_sdks_configurations
127
+ )
115
128
  srcroot_relative_xc_location = parent_dir(xc_location, repo_distance)
116
129
  # location of the entrite CocoaPods project, relative to SRCROOT
117
130
  srcroot_relative_project_location = parent_dir('', repo_distance)
@@ -120,22 +133,27 @@ module CocoapodsXCRemoteCacheModifier
120
133
  # apply only for relevant Configurations
121
134
  next if exclude_build_configurations.include?(config.name)
122
135
  if mode == 'consumer'
123
- config.build_settings['CC'] = ["$SRCROOT/#{parent_dir(xc_cc_path, repo_distance)}"]
136
+ reset_build_setting(config.build_settings, 'CC', "$SRCROOT/#{parent_dir(xc_cc_path, repo_distance)}", exclude_sdks_configurations)
124
137
  elsif mode == 'producer' || mode == 'producer-fast'
125
138
  config.build_settings.delete('CC') if config.build_settings.key?('CC')
126
139
  end
127
- config.build_settings['SWIFT_EXEC'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xcswiftc"]
128
- config.build_settings['LIBTOOL'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xclibtool"]
129
- config.build_settings['LD'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xcld"]
130
- config.build_settings['LDPLUSPLUS'] = ["$SRCROOT/#{srcroot_relative_xc_location}/xcldplusplus"]
131
- config.build_settings['SWIFT_USE_INTEGRATED_DRIVER'] = ['NO']
132
-
133
- config.build_settings['XCREMOTE_CACHE_FAKE_SRCROOT'] = fake_src_root
134
- config.build_settings['XCRC_PLATFORM_PREFERRED_ARCH'] = ["$(LINK_FILE_LIST_$(CURRENT_VARIANT)_$(PLATFORM_PREFERRED_ARCH):dir:standardizepath:file:default=arm64)"]
135
- config.build_settings[XCRC_COOCAPODS_ROOT_KEY] = ["$SRCROOT/#{srcroot_relative_project_location}"]
140
+ reset_build_setting(config.build_settings, 'SWIFT_EXEC', "$SRCROOT/#{srcroot_relative_xc_location}/xcswiftc", exclude_sdks_configurations)
141
+ reset_build_setting(config.build_settings, 'LIBTOOL', "$SRCROOT/#{srcroot_relative_xc_location}/xclibtool", exclude_sdks_configurations)
142
+ # Setting LIBTOOL to '' breaks SwiftDriver intengration so resetting it to the original value 'libtool' for all excluded configurations
143
+ add_build_setting_for_sdks(config.build_settings, 'LIBTOOL', 'libtool', exclude_sdks_configurations)
144
+ reset_build_setting(config.build_settings, 'LD', "$SRCROOT/#{srcroot_relative_xc_location}/xcld", exclude_sdks_configurations)
145
+ reset_build_setting(config.build_settings, 'LDPLUSPLUS', "$SRCROOT/#{srcroot_relative_xc_location}/xcldplusplus", exclude_sdks_configurations)
146
+ reset_build_setting(config.build_settings, 'LIPO', "$SRCROOT/#{srcroot_relative_xc_location}/xclipo", exclude_sdks_configurations)
147
+ reset_build_setting(config.build_settings, 'SWIFT_USE_INTEGRATED_DRIVER', 'NO', exclude_sdks_configurations)
148
+
149
+ reset_build_setting(config.build_settings, 'XCREMOTE_CACHE_FAKE_SRCROOT', fake_src_root, exclude_sdks_configurations)
150
+ reset_build_setting(config.build_settings, 'XCRC_PLATFORM_PREFERRED_ARCH', "$(LINK_FILE_LIST_$(CURRENT_VARIANT)_$(PLATFORM_PREFERRED_ARCH):dir:standardizepath:file:default=arm64)", exclude_sdks_configurations)
151
+ reset_build_setting(config.build_settings, XCRC_COOCAPODS_ROOT_KEY, "$SRCROOT/#{srcroot_relative_project_location}", exclude_sdks_configurations)
136
152
  debug_prefix_map_replacement = '$(SRCROOT' + ':dir:standardizepath' * repo_distance + ')'
137
- add_cflags!(config.build_settings, '-fdebug-prefix-map', "#{debug_prefix_map_replacement}=$(XCREMOTE_CACHE_FAKE_SRCROOT)")
138
- add_swiftflags!(config.build_settings, '-debug-prefix-map', "#{debug_prefix_map_replacement}=$(XCREMOTE_CACHE_FAKE_SRCROOT)")
153
+ add_cflags!(config.build_settings, '-fdebug-prefix-map', "#{debug_prefix_map_replacement}=$(XCREMOTE_CACHE_FAKE_SRCROOT)", exclude_sdks_configurations)
154
+ add_swiftflags!(config.build_settings, '-debug-prefix-map', "#{debug_prefix_map_replacement}=$(XCREMOTE_CACHE_FAKE_SRCROOT)", exclude_sdks_configurations)
155
+ delete_build_setting(config.build_settings, 'XCRC_DISABLED')
156
+ add_build_setting_for_sdks(config.build_settings, 'XCRC_DISABLED', 'YES', exclude_sdks_configurations)
139
157
  end
140
158
 
141
159
  # Prebuild
@@ -156,7 +174,7 @@ module CocoapodsXCRemoteCacheModifier
156
174
  prebuild_script.dependency_file = "$(TARGET_TEMP_DIR)/prebuild.d"
157
175
 
158
176
  # Move prebuild (last element) to the position before compile sources phase (to make it real 'prebuild')
159
- if !existing_prebuild_script
177
+ if !existing_prebuild_script
160
178
  compile_phase_index = target.build_phases.index(target.source_build_phase)
161
179
  target.build_phases.insert(compile_phase_index, target.build_phases.delete(prebuild_script))
162
180
  end
@@ -184,7 +202,7 @@ module CocoapodsXCRemoteCacheModifier
184
202
  ]
185
203
  postbuild_script.dependency_file = "$(TARGET_TEMP_DIR)/postbuild.d"
186
204
  # Move postbuild (last element) to the position after compile sources phase (to make it real 'postbuild')
187
- if !existing_postbuild_script
205
+ if !existing_postbuild_script
188
206
  compile_phase_index = target.build_phases.index(target.source_build_phase)
189
207
  target.build_phases.insert(compile_phase_index + 1, target.build_phases.delete(postbuild_script))
190
208
  end
@@ -214,6 +232,7 @@ module CocoapodsXCRemoteCacheModifier
214
232
  config.build_settings.delete('CC') if config.build_settings.key?('CC')
215
233
  config.build_settings.delete('SWIFT_EXEC') if config.build_settings.key?('SWIFT_EXEC')
216
234
  config.build_settings.delete('LIBTOOL') if config.build_settings.key?('LIBTOOL')
235
+ config.build_settings.delete('LIPO') if config.build_settings.key?('LIPO')
217
236
  config.build_settings.delete('LD') if config.build_settings.key?('LD')
218
237
  config.build_settings.delete('LDPLUSPLUS') if config.build_settings.key?('LDPLUSPLUS')
219
238
  config.build_settings.delete('SWIFT_USE_INTEGRATED_DRIVER') if config.build_settings.key?('SWIFT_USE_INTEGRATED_DRIVER')
@@ -226,9 +245,9 @@ module CocoapodsXCRemoteCacheModifier
226
245
  end
227
246
 
228
247
  # User project is not generated from scratch (contrary to `Pods`), delete all previous XCRemoteCache phases
229
- target.build_phases.delete_if {|phase|
248
+ target.build_phases.delete_if {|phase|
230
249
  # Some phases (e.g. PBXSourcesBuildPhase) don't have strict name check respond_to?
231
- if phase.respond_to?(:name)
250
+ if phase.respond_to?(:name)
232
251
  phase.name != nil && phase.name.start_with?("[XCRC]")
233
252
  end
234
253
  }
@@ -240,9 +259,9 @@ module CocoapodsXCRemoteCacheModifier
240
259
  end
241
260
 
242
261
  def self.download_xcrc_if_needed(local_location)
243
- required_binaries = ['xcld', 'xcldplusplus', 'xclibtool', 'xcpostbuild', 'xcprebuild', 'xcprepare', 'xcswiftc']
262
+ required_binaries = ['xcld', 'xcldplusplus', 'xclibtool', 'xclipo', 'xcpostbuild', 'xcprebuild', 'xcprepare', 'xcswiftc']
244
263
  binaries_exist = required_binaries.reduce(true) do |exists, filename|
245
- file_path = File.join(local_location, filename)
264
+ file_path = File.join(local_location, filename)
246
265
  exists = exists && File.exist?(file_path)
247
266
  end
248
267
 
@@ -256,13 +275,13 @@ module CocoapodsXCRemoteCacheModifier
256
275
 
257
276
  if !system("unzip #{local_package_location} -d #{local_location}")
258
277
  throw "Unzipping XCRemoteCache failed"
259
- end
278
+ end
260
279
  end
261
280
 
262
281
  def self.download_latest_xcrc_release(local_package_location)
263
282
  release_url = 'https://api.github.com/repos/spotify/XCRemoteCache/releases/latest'
264
283
  asset_url = nil
265
-
284
+
266
285
  URI.open(release_url) do |f|
267
286
  assets_array = JSON.parse(f.read)['assets']
268
287
  # Pick fat archive
@@ -270,7 +289,7 @@ module CocoapodsXCRemoteCacheModifier
270
289
  asset_url = asset_array['url']
271
290
  end
272
291
 
273
- if asset_url.nil?
292
+ if asset_url.nil?
274
293
  throw "Downloading XCRemoteCache failed"
275
294
  end
276
295
 
@@ -281,9 +300,8 @@ module CocoapodsXCRemoteCacheModifier
281
300
  end
282
301
  end
283
302
 
284
- def self.add_cflags!(options, key, value)
285
- return if options.fetch('OTHER_CFLAGS',[]).include?(value)
286
- options['OTHER_CFLAGS'] = remove_cflags!(options, key) << "#{key}=#{value}"
303
+ def self.add_cflags!(options, key, value, exclude_sdks_configurations)
304
+ reset_build_setting(options, 'OTHER_CFLAGS', remove_cflags!(options, key) << "#{key}=#{value}", exclude_sdks_configurations)
287
305
  end
288
306
 
289
307
  def self.remove_cflags!(options, key)
@@ -293,9 +311,8 @@ module CocoapodsXCRemoteCacheModifier
293
311
  options['OTHER_CFLAGS']
294
312
  end
295
313
 
296
- def self.add_swiftflags!(options, key, value)
297
- return if options.fetch('OTHER_SWIFT_FLAGS','').include?(value)
298
- options['OTHER_SWIFT_FLAGS'] = remove_swiftflags!(options, key) + " #{key} #{value}"
314
+ def self.add_swiftflags!(options, key, value, exclude_sdks_configurations)
315
+ reset_build_setting(options, 'OTHER_SWIFT_FLAGS', remove_swiftflags!(options, key) + " #{key} #{value}", exclude_sdks_configurations)
299
316
  end
300
317
 
301
318
  def self.remove_swiftflags!(options, key)
@@ -303,6 +320,34 @@ module CocoapodsXCRemoteCacheModifier
303
320
  options['OTHER_SWIFT_FLAGS']
304
321
  end
305
322
 
323
+ def self.add_build_setting(build_settings, key, value, exclude_sdks_configurations)
324
+ build_settings[key] = value
325
+ for exclude_sdks_configuration in exclude_sdks_configurations
326
+ build_settings["#{key}[sdk=#{exclude_sdks_configuration}]"] = [""]
327
+ end
328
+ end
329
+
330
+ # Deletes all previous build settings for a key, and sets a new value to all configurations
331
+ # but the sdks in exclude_sdks_configurations
332
+ def self.reset_build_setting(build_settings, key, value, exclude_sdks_configurations)
333
+ delete_build_setting(build_settings, key)
334
+ add_build_setting(build_settings, key, value, exclude_sdks_configurations)
335
+ end
336
+
337
+ # Delete all build setting for a key, including settings like "[skd=*,arch=*]"
338
+ def self.delete_build_setting(build_settings, key)
339
+ for build_setting_key in build_settings.keys
340
+ build_settings.delete(build_setting_key) if build_setting_key == key || build_setting_key.start_with?("#{key}[")
341
+ end
342
+ end
343
+
344
+ # Sets value for a key only for a subset of sdk configurations
345
+ def self.add_build_setting_for_sdks(build_settings, key, value, sdk_configurations)
346
+ for sdk_configuration in sdk_configurations
347
+ build_settings["#{key}[sdk=#{sdk_configuration}]"] = value
348
+ end
349
+ end
350
+
306
351
  # Uninstall the XCRemoteCache
307
352
  def self.disable_xcremotecache(user_project, pods_project = nil)
308
353
  user_project.targets.each do |target|
@@ -336,7 +381,7 @@ module CocoapodsXCRemoteCacheModifier
336
381
  File.open(lldbinit_path) { |file|
337
382
  while(line = file.gets) != nil
338
383
  line = line.strip
339
- if line == LLDB_INIT_COMMENT
384
+ if line == LLDB_INIT_COMMENT
340
385
  # skip current and next lines
341
386
  file.gets
342
387
  next
@@ -351,7 +396,7 @@ module CocoapodsXCRemoteCacheModifier
351
396
  def self.add_lldbinit_rewrite(lines_content, user_proj_directory,fake_src_root)
352
397
  all_lines = lines_content.clone
353
398
  all_lines << LLDB_INIT_COMMENT
354
- all_lines << "settings set target.source-map #{fake_src_root} #{user_proj_directory}"
399
+ all_lines << "settings set target.source-map #{fake_src_root} #{user_proj_directory}"
355
400
  all_lines << ""
356
401
  all_lines
357
402
  end
@@ -413,8 +458,8 @@ module CocoapodsXCRemoteCacheModifier
413
458
  # Remote cache is still disabled - no need to force Pods projects/targets regeneration
414
459
  next
415
460
  end
416
-
417
- # Force rebuilding all Pods project, because XCRC build steps and settings need to be added to Pods project/targets
461
+
462
+ # Force rebuilding all Pods project, because XCRC build steps and settings need to be added to Pods project/targets
418
463
  # It is relevant only when 'incremental_installation' is enabled, otherwise installed_cache_path does not exist on a disk
419
464
  installed_cache_path = installer_context.sandbox.project_installation_cache_path
420
465
  if !was_previously_enabled && File.exist?(installed_cache_path)
@@ -431,7 +476,7 @@ module CocoapodsXCRemoteCacheModifier
431
476
 
432
477
  user_project = installer_context.umbrella_targets[0].user_project
433
478
 
434
- begin
479
+ begin
435
480
  user_proj_directory = File.dirname(user_project.path)
436
481
  set_configuration_default_values
437
482
 
@@ -452,6 +497,7 @@ module CocoapodsXCRemoteCacheModifier
452
497
  check_build_configuration = @@configuration['check_build_configuration']
453
498
  check_platform = @@configuration['check_platform']
454
499
  fake_src_root = @@configuration['fake_src_root']
500
+ exclude_sdks_configurations = @@configuration['exclude_sdks_configurations'] || []
455
501
 
456
502
  xccc_location_absolute = "#{user_proj_directory}/#{xccc_location}"
457
503
  xcrc_location_absolute = "#{user_proj_directory}/#{xcrc_location}"
@@ -475,7 +521,7 @@ module CocoapodsXCRemoteCacheModifier
475
521
  next if target.name.start_with?("Pods-")
476
522
  next if target.name.end_with?("Tests")
477
523
  next if exclude_targets.include?(target.name)
478
- enable_xcremotecache(target, 1, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root)
524
+ enable_xcremotecache(target, 1, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root, exclude_sdks_configurations)
479
525
  end
480
526
 
481
527
  # Create .rcinfo into `Pods` directory as that .xcodeproj reads configuration from .xcodeproj location
@@ -488,18 +534,18 @@ module CocoapodsXCRemoteCacheModifier
488
534
  next if target.source_build_phase.files_references.empty?
489
535
  next if target.name.end_with?("Tests")
490
536
  next if exclude_targets.include?(target.name)
491
- enable_xcremotecache(target, 1, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root)
537
+ enable_xcremotecache(target, 1, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root, exclude_sdks_configurations)
492
538
  end
493
539
  generated_project.save()
494
540
  end
495
541
 
496
542
  # Manual Pods/.rcinfo generation
497
-
543
+
498
544
  # all paths in .rcinfo are relative to the root so paths used in Pods.xcodeproj need to be aligned
499
545
  pods_path = Pathname.new(pods_proj_directory)
500
546
  root_path = Pathname.new(user_proj_directory)
501
547
  root_path_to_pods = root_path.relative_path_from(pods_path)
502
-
548
+
503
549
  pods_rcinfo = root_rcinfo.merge({
504
550
  'remote_commit_file' => "#{root_path_to_pods}/#{remote_commit_file}",
505
551
  'xccc_file' => "#{root_path_to_pods}/#{xccc_location}"
@@ -511,7 +557,7 @@ module CocoapodsXCRemoteCacheModifier
511
557
 
512
558
  # Enabled/disable XCRemoteCache for the main (user) project
513
559
  begin
514
- # TODO: Do not compile xcc again. `xcprepare` compiles it in pre-install anyway
560
+ # TODO: Do not compile xcc again. `xcprepare` compiles it in pre-install anyway
515
561
  prepare_result = YAML.load`#{xcrc_location_absolute}/xcprepare --configuration #{check_build_configuration} --platform #{check_platform}`
516
562
  unless prepare_result['result'] || mode != 'consumer'
517
563
  # Uninstall the XCRemoteCache for the consumer mode
@@ -529,7 +575,7 @@ module CocoapodsXCRemoteCacheModifier
529
575
  # Attach XCRC to the app targets
530
576
  user_project.targets.each do |target|
531
577
  next if exclude_targets.include?(target.name)
532
- enable_xcremotecache(target, 0, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root)
578
+ enable_xcremotecache(target, 0, xcrc_location, xccc_location, mode, exclude_build_configurations, final_target,fake_src_root, exclude_sdks_configurations)
533
579
  end
534
580
 
535
581
  # Set Target sourcemap
@@ -3,9 +3,9 @@
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
5
5
  # You may obtain a copy of the License at
6
- #
6
+ #
7
7
  # http://www.apache.org/licenses/LICENSE-2.0
8
- #
8
+ #
9
9
  # Unless required by applicable law or agreed to in writing, software
10
10
  # distributed under the License is distributed on an "AS IS" BASIS,
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module CocoapodsXcremotecache
16
- VERSION = "0.0.14"
16
+ VERSION = "0.0.16"
17
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-xcremotecache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartosz Polaczyk
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-08-26 00:00:00.000000000 Z
12
+ date: 2023-04-15 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: CocoaPods plugin that enables XCRemoteCache with the project.
15
15
  email: