cocoapods-xcremotecache 0.0.14 → 0.0.16

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.
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: