xcodeproj 1.5.9 → 1.6.0

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: ecb4143562de4dcf43ea17c5b6d5cdbab9f849b3f2969b06ffcb86c9e93216c7
4
- data.tar.gz: eec9d4ebbd31001d418fb25364a718dc9b3222eb72faa008ef0056cdbb7356ae
3
+ metadata.gz: 965a58aaa67ae7f0816637cadffecc3e53d6794b7ebe97d21a562b8ceeefd7dc
4
+ data.tar.gz: f2331d54681cec7fa80abab0f9d7f8ca21e04dae8d75fd037d6d71b757cf87e7
5
5
  SHA512:
6
- metadata.gz: 62e49671fbbe8bb7f15cada2df538c835a7ebc517174d6af081c43382c41054a2777878d4fbdfd2e98f9b23c9cc1ecbbff6a3093c48679ae94125cc48be0bc7b
7
- data.tar.gz: 2bbdb4c963eafa81274b84e45168b5ca47565108688589c108cf0533e28c3dd3b93e219a532b09480f3dad5fbd3cb25bc44f9d135c0b653ec80a9649f731aa3d
6
+ metadata.gz: b7ec36d7eeda318e9c8d0eec8755fcbfe5a522abd650f173a86de627072fe200e05efa63125a4d56b4c5a880bf53abf07a649a41cf3c87152730eda0d57f77b5
7
+ data.tar.gz: 65ccb89e5efea8092af076619a8077f324084fc258132bf9763e7f8b27ce0a7e9827ee1e0d1a79700ec48b79c6f6c0d1c0f40c6f45138386969ff85d7b98e759
@@ -27,6 +27,13 @@ module Xcodeproj
27
27
  = # The assignment operator
28
28
  (.*) # The value
29
29
  /x
30
+ private_constant :KEY_VALUE_PATTERN
31
+
32
+ INHERITED = %w($(inherited) ${inherited}).freeze
33
+ private_constant :INHERITED
34
+
35
+ INHERITED_REGEXP = Regexp.union(INHERITED)
36
+ private_constant :INHERITED_REGEXP
30
37
 
31
38
  # @return [Hash{String => String}] The attributes of the settings file
32
39
  # excluding frameworks, weak_framework and libraries.
@@ -132,8 +139,7 @@ module Xcodeproj
132
139
 
133
140
  result = attributes.dup
134
141
  result['OTHER_LDFLAGS'] = list.join(' ') unless list.empty?
135
- inherited = %w($(inherited) ${inherited}).freeze
136
- result.reject! { |_, v| inherited.any? { |i| i == v.to_s.strip } }
142
+ result.reject! { |_, v| INHERITED.any? { |i| i == v.to_s.strip } }
137
143
 
138
144
  result = @includes.map do |incl|
139
145
  path = File.expand_path(incl, @filepath.dirname)
@@ -272,7 +278,9 @@ module Xcodeproj
272
278
  @includes.push include
273
279
  else
274
280
  key, value = extract_key_value(uncommented_line)
275
- hash[key] = value if key
281
+ next unless key
282
+ value.gsub!(INHERITED_REGEXP) { |m| hash.fetch(key, m) }
283
+ hash[key] = value
276
284
  end
277
285
  end
278
286
  hash
@@ -29,7 +29,7 @@ module Xcodeproj
29
29
 
30
30
  # @return [String] The last known object version to Xcodeproj.
31
31
  #
32
- LAST_KNOWN_OBJECT_VERSION = 50
32
+ LAST_KNOWN_OBJECT_VERSION = 51
33
33
 
34
34
  # @return [String] The last known object version to Xcodeproj.
35
35
  #
@@ -227,7 +227,8 @@ module Xcodeproj
227
227
  'SWIFT_ACTIVE_COMPILATION_CONDITIONS' => 'DEBUG',
228
228
  }.freeze,
229
229
  [:release, :swift] => {
230
- 'SWIFT_OPTIMIZATION_LEVEL' => '-Owholemodule',
230
+ 'SWIFT_COMPILATION_MODE' => 'wholemodule',
231
+ 'SWIFT_OPTIMIZATION_LEVEL' => '-O',
231
232
  }.freeze,
232
233
  [:debug, :static_library, :swift] => {
233
234
  }.freeze,
@@ -371,6 +372,7 @@ module Xcodeproj
371
372
  'GCC_WARN_UNINITIALIZED_AUTOS' => 'YES_AGGRESSIVE',
372
373
  'GCC_WARN_UNUSED_FUNCTION' => 'YES',
373
374
  'GCC_WARN_UNUSED_VARIABLE' => 'YES',
375
+ 'MTL_FAST_MATH' => 'YES',
374
376
  'PRODUCT_NAME' => '$(TARGET_NAME)',
375
377
  },
376
378
  :release => {
@@ -384,7 +386,7 @@ module Xcodeproj
384
386
  'GCC_DYNAMIC_NO_PIC' => 'NO',
385
387
  'GCC_OPTIMIZATION_LEVEL' => '0',
386
388
  'GCC_PREPROCESSOR_DEFINITIONS' => ['DEBUG=1', '$(inherited)'],
387
- 'MTL_ENABLE_DEBUG_INFO' => 'YES',
389
+ 'MTL_ENABLE_DEBUG_INFO' => 'INCLUDE_SOURCE',
388
390
  'ONLY_ACTIVE_ARCH' => 'YES',
389
391
  }.freeze,
390
392
  }.freeze
@@ -414,7 +416,7 @@ module Xcodeproj
414
416
 
415
417
  # @return [Array] The extensions which are associated with header files.
416
418
  #
417
- HEADER_FILES_EXTENSIONS = %w(.h .hh .hpp .ipp .tpp .hxx .def .inl).freeze
419
+ HEADER_FILES_EXTENSIONS = %w(.h .hh .hpp .ipp .tpp .hxx .def .inl .inc).freeze
418
420
 
419
421
  # @return [Array] The keywords Xcode use to identify a build setting can
420
422
  # inherit values from a previous precedence level
@@ -1,5 +1,5 @@
1
1
  module Xcodeproj
2
2
  # The version of the xcodeproj gem.
3
3
  #
4
- VERSION = '1.5.9'.freeze unless defined? Xcodeproj::VERSION
4
+ VERSION = '1.6.0'.freeze unless defined? Xcodeproj::VERSION
5
5
  end
@@ -46,6 +46,10 @@ module Xcodeproj
46
46
  #
47
47
  attr_reader :path
48
48
 
49
+ # @return [Pathname] the directory of the project
50
+ #
51
+ attr_reader :project_dir
52
+
49
53
  # @param [Pathname, String] path @see path
50
54
  # The path provided will be expanded to an absolute path.
51
55
  # @param [Bool] skip_initialization
@@ -64,6 +68,7 @@ module Xcodeproj
64
68
  #
65
69
  def initialize(path, skip_initialization = false, object_version = Constants::DEFAULT_OBJECT_VERSION)
66
70
  @path = Pathname.new(path).expand_path
71
+ @project_dir = @path.dirname
67
72
  @objects_by_uuid = {}
68
73
  @generated_uuids = []
69
74
  @available_uuids = []
@@ -676,6 +681,10 @@ module Xcodeproj
676
681
  # @param [String] deployment_target
677
682
  # the deployment target for the platform.
678
683
  #
684
+ # @param [PBXGroup] product_group
685
+ # the product group, where to add to a file reference of the
686
+ # created target.
687
+ #
679
688
  # @param [Symbol] language
680
689
  # the primary language of the target, can be `:objc` or `:swift`.
681
690
  #
@@ -721,10 +730,16 @@ module Xcodeproj
721
730
  # @param [Array<AbstractTarget>] target_dependencies
722
731
  # targets, which should be added as dependencies.
723
732
  #
733
+ # @param [Symbol] platform
734
+ # the platform of the aggregate target. Can be `:ios` or `:osx`.
735
+ #
736
+ # @param [String] deployment_target
737
+ # the deployment target for the platform.
738
+ #
724
739
  # @return [PBXNativeTarget] the target.
725
740
  #
726
- def new_aggregate_target(name, target_dependencies = [])
727
- ProjectHelper.new_aggregate_target(self, name).tap do |aggregate_target|
741
+ def new_aggregate_target(name, target_dependencies = [], platform = nil, deployment_target = nil)
742
+ ProjectHelper.new_aggregate_target(self, name, platform, deployment_target).tap do |aggregate_target|
728
743
  target_dependencies.each do |dep|
729
744
  aggregate_target.add_dependency(dep)
730
745
  end
@@ -250,6 +250,13 @@ module Xcodeproj
250
250
  #
251
251
  attribute :input_paths, Array, []
252
252
 
253
+ # @return [Array<String>] an array of input file list paths of the script.
254
+ #
255
+ # @example
256
+ # "$(SRCROOT)/newInputFile.xcfilelist"
257
+ #
258
+ attribute :input_file_list_paths, Array, []
259
+
253
260
  # @return [Array<String>] an array of output paths of the script.
254
261
  #
255
262
  # @example
@@ -257,6 +264,13 @@ module Xcodeproj
257
264
  #
258
265
  attribute :output_paths, Array, []
259
266
 
267
+ # @return [Array<String>] an array of output file list paths of the script.
268
+ #
269
+ # @example
270
+ # "$(SRCROOT)/newOutputFile.xcfilelist"
271
+ #
272
+ attribute :output_file_list_paths, Array, []
273
+
260
274
  # @return [String] the path to the script interpreter.
261
275
  #
262
276
  # @note Defaults to `/bin/sh`.
@@ -169,6 +169,13 @@ module Xcodeproj
169
169
  GroupableHelper.real_path(self)
170
170
  end
171
171
 
172
+ # @return [Pathname] the path of the file without resolving the
173
+ # source tree.
174
+ #
175
+ def full_path
176
+ GroupableHelper.full_path(self)
177
+ end
178
+
172
179
  # Sets the source tree of the reference.
173
180
  #
174
181
  # @param [Symbol, String] source_tree
@@ -106,6 +106,31 @@ module Xcodeproj
106
106
  end
107
107
  end
108
108
 
109
+ # @param [PBXGroup, PBXFileReference] object
110
+ # The object to analyze.
111
+ #
112
+ # @return [Pathname] The path of the object without resolving the
113
+ # source tree.
114
+ #
115
+ def full_path(object)
116
+ folder = case object.source_tree
117
+ when '<group>'
118
+ parent(object).isa != 'PBXProject' ? full_path(parent(object)) : nil
119
+ when 'SOURCE_ROOT'
120
+ nil
121
+ when '<absolute>'
122
+ Pathname.new('/')
123
+ else
124
+ Pathname.new("${#{object.source_tree}}")
125
+ end
126
+ folder ||= Pathname.new('')
127
+ if object.path
128
+ folder + object.path
129
+ else
130
+ folder
131
+ end
132
+ end
133
+
109
134
  # @param [PBXGroup, PBXFileReference] object
110
135
  # The object to analyze.
111
136
  #
@@ -116,12 +141,12 @@ module Xcodeproj
116
141
  case object.source_tree
117
142
  when '<group>'
118
143
  if parent(object).isa == 'PBXProject'
119
- object.project.path.dirname
144
+ object.project.project_dir
120
145
  else
121
146
  real_path(parent(object))
122
147
  end
123
148
  when 'SOURCE_ROOT'
124
- object.project.path.dirname
149
+ object.project.project_dir
125
150
  when '<absolute>'
126
151
  nil
127
152
  else
@@ -239,7 +239,7 @@ module Xcodeproj
239
239
  container_proxy.container_portal = project.root_object.uuid
240
240
  else
241
241
  subproject_reference = project.reference_for_path(target.project.path)
242
- raise ArgumentError, 'add_dependency got target that belongs to a project is not this project and is not a subproject of this project' unless subproject_reference
242
+ raise ArgumentError, 'add_dependency received target that belongs to a project that is not this project and is not a subproject of this project' unless subproject_reference
243
243
  container_proxy.container_portal = subproject_reference.uuid
244
244
  end
245
245
  container_proxy.proxy_type = Constants::PROXY_TYPES[:native_target]
@@ -354,6 +354,7 @@ module Xcodeproj
354
354
  # 1.9.2 fix, see https://github.com/CocoaPods/Xcodeproj/issues/40.
355
355
  public(attrb.name)
356
356
 
357
+ variable_name = :"@#{attrb.name}"
357
358
  define_method("#{attrb.name}=") do |value|
358
359
  attrb.validate_value(value)
359
360
 
@@ -361,7 +362,7 @@ module Xcodeproj
361
362
  return value if previous_value == value
362
363
  mark_project_as_dirty!
363
364
  previous_value.remove_referrer(self) if previous_value
364
- instance_variable_set("@#{attrb.name}", value)
365
+ instance_variable_set(variable_name, value)
365
366
  value.add_referrer(self) if value
366
367
  end
367
368
  end
@@ -392,12 +393,13 @@ module Xcodeproj
392
393
  attrb.classes = isas
393
394
  add_attribute(attrb)
394
395
 
396
+ variable_name = :"@#{attrb.name}"
395
397
  define_method(attrb.name) do
396
398
  # Here we are in the context of the instance
397
- list = instance_variable_get("@#{attrb.name}")
399
+ list = instance_variable_get(variable_name)
398
400
  unless list
399
401
  list = ObjectList.new(attrb, self)
400
- instance_variable_set("@#{attrb.name}", list)
402
+ instance_variable_set(variable_name, list)
401
403
  end
402
404
  list
403
405
  end
@@ -428,12 +430,13 @@ module Xcodeproj
428
430
  attrb.classes_by_key = classes_by_key
429
431
  add_attribute(attrb)
430
432
 
433
+ variable_name = :"@#{attrb.name}"
431
434
  define_method(attrb.name) do
432
435
  # Here we are in the context of the instance
433
- list = instance_variable_get("@#{attrb.name}")
436
+ list = instance_variable_get(variable_name)
434
437
  unless list
435
438
  list = ObjectList.new(attrb, self)
436
- instance_variable_set("@#{attrb.name}", list)
439
+ instance_variable_set(variable_name, list)
437
440
  end
438
441
  list
439
442
  end
@@ -55,8 +55,7 @@ module Xcodeproj
55
55
  target.product_reference = product
56
56
 
57
57
  # Build phases
58
- target.build_phases << project.new(PBXSourcesBuildPhase)
59
- target.build_phases << project.new(PBXFrameworksBuildPhase)
58
+ build_phases_for_target_type(type).each { |phase| target.build_phases << project.new(phase) }
60
59
 
61
60
  # Frameworks
62
61
  unless type == :static_library
@@ -116,9 +115,7 @@ module Xcodeproj
116
115
  target.product_reference = product
117
116
 
118
117
  # Build phases
119
- target.build_phases << project.new(PBXSourcesBuildPhase)
120
- target.build_phases << project.new(PBXFrameworksBuildPhase)
121
- target.build_phases << project.new(PBXResourcesBuildPhase)
118
+ build_phases_for_target_type(:bundle).each { |phase| target.build_phases << project.new(phase) }
122
119
 
123
120
  target
124
121
  end
@@ -133,13 +130,19 @@ module Xcodeproj
133
130
  # @param [String] name
134
131
  # the name of the aggregate target.
135
132
  #
133
+ # @param [Symbol] platform
134
+ # the platform of the aggregate target. Can be `:ios` or `:osx`.
135
+ #
136
+ # @param [String] deployment_target
137
+ # the deployment target for the platform.
138
+ #
136
139
  # @return [PBXAggregateTarget] the target.
137
140
  #
138
- def self.new_aggregate_target(project, name)
141
+ def self.new_aggregate_target(project, name, platform, deployment_target)
139
142
  target = project.new(PBXAggregateTarget)
140
143
  project.targets << target
141
144
  target.name = name
142
- target.build_configuration_list = configuration_list(project)
145
+ target.build_configuration_list = configuration_list(project, platform, deployment_target)
143
146
  target
144
147
  end
145
148
 
@@ -293,7 +296,7 @@ module Xcodeproj
293
296
  # @param [Object] object
294
297
  # the object to copy.
295
298
  #
296
- # @return [Object] The deeply copy of the obejct object.
299
+ # @return [Object] The deep copy of the object.
297
300
  #
298
301
  def self.deep_dup(object)
299
302
  case object
@@ -310,6 +313,27 @@ module Xcodeproj
310
313
  end
311
314
  end
312
315
 
316
+ # Returns the build phases, in order, that appear by default
317
+ # on a target of the given type.
318
+ #
319
+ # @param [Symbol] type
320
+ # the name of the target type.
321
+ #
322
+ # @return [Array<String>] The list of build phase class names for the target type.
323
+ #
324
+ def self.build_phases_for_target_type(type)
325
+ case type
326
+ when :static_library, :dynamic_library
327
+ %w(Headers Sources Frameworks)
328
+ when :framework
329
+ %w(Headers Sources Frameworks Resources)
330
+ when :command_line_tool
331
+ %w(Sources Frameworks)
332
+ else
333
+ %w(Sources Frameworks Resources)
334
+ end.map { |phase| "PBX#{phase}BuildPhase" }
335
+ end
336
+
313
337
  #-----------------------------------------------------------------------#
314
338
  end
315
339
  end
@@ -1,6 +1,8 @@
1
1
  module Xcodeproj
2
2
  class Project
3
3
  class UUIDGenerator
4
+ require 'digest'
5
+
4
6
  def initialize(project)
5
7
  @project = project
6
8
  @new_objects_by_uuid = {}
@@ -76,7 +78,6 @@ module Xcodeproj
76
78
  end
77
79
 
78
80
  def uuid_for_path(path)
79
- require 'digest'
80
81
  Digest::MD5.hexdigest(path).upcase
81
82
  end
82
83
 
@@ -116,7 +116,7 @@ module Xcodeproj
116
116
  path = if !root_project_dir_path.to_s.empty?
117
117
  root_project.path + root_project_dir_path
118
118
  else
119
- root_project.path.dirname
119
+ root_project.project_dir
120
120
  end
121
121
  relative_path = target_project.path.relative_path_from(path).to_s
122
122
  relative_path = target_project.path.basename if relative_path == '.'
@@ -151,6 +151,41 @@ module Xcodeproj
151
151
  @xml_element.attributes['skipped'] = bool_to_string(flag)
152
152
  end
153
153
 
154
+ # @return [Bool]
155
+ # Whether or not this TestableReference (test bundle) should be run in parallel or not
156
+ #
157
+ def parallelizable?
158
+ string_to_bool(@xml_element.attributes['parallelizable'])
159
+ end
160
+
161
+ # @param [Bool] flag
162
+ # Set whether or not this TestableReference (test bundle) should be run in parallel or not
163
+ #
164
+ def parallelizable=(flag)
165
+ @xml_element.attributes['parallelizable'] = bool_to_string(flag)
166
+ end
167
+
168
+ # @return [String]
169
+ # The execution order for this TestableReference (test bundle)
170
+ #
171
+ def test_execution_ordering
172
+ @xml_element.attributes['testExecutionOrdering']
173
+ end
174
+
175
+ # @param [String] order
176
+ # Set the execution order for this TestableReference (test bundle)
177
+ #
178
+ def test_execution_ordering=(order)
179
+ @xml_element.attributes['testExecutionOrdering'] = order
180
+ end
181
+
182
+ # @return [Bool]
183
+ # Whether or not this TestableReference (test bundle) should be run in randomized order.
184
+ #
185
+ def randomized?
186
+ test_execution_ordering == 'random'
187
+ end
188
+
154
189
  # @return [Array<BuildableReference>]
155
190
  # The list of BuildableReferences this action will build.
156
191
  # (The list usually contains only one element)
@@ -168,21 +203,21 @@ module Xcodeproj
168
203
  @xml_element.add_element(ref.xml_element)
169
204
  end
170
205
 
171
- # @return [Array<SkippedTest>]
206
+ # @return [Array<Test>]
172
207
  # The list of SkippedTest this action will skip.
173
208
  #
174
209
  def skipped_tests
175
210
  return [] if @xml_element.elements['SkippedTests'].nil?
176
211
  @xml_element.elements['SkippedTests'].get_elements('Test').map do |node|
177
- TestableReference::SkippedTest.new(node)
212
+ Test.new(node)
178
213
  end
179
214
  end
180
215
 
181
- # @param [Array<SkippedTest>] tests
216
+ # @param [Array<Test>] tests
182
217
  # Set the list of SkippedTest this action will skip.
183
218
  #
184
219
  def skipped_tests=(tests)
185
- @xml_element.delete_element('SkippedTests') unless @xml_element.elements['SkippedTests'].nil?
220
+ @xml_element.delete_element('SkippedTests')
186
221
  if tests.nil?
187
222
  return
188
223
  end
@@ -192,7 +227,7 @@ module Xcodeproj
192
227
  end
193
228
  end
194
229
 
195
- # @param [SkippedTest] skipped_test
230
+ # @param [Test] skipped_test
196
231
  # The SkippedTest to add to the list of tests this action will skip
197
232
  #
198
233
  def add_skipped_test(skipped_test)
@@ -200,7 +235,51 @@ module Xcodeproj
200
235
  entries.add_element(skipped_test.xml_element)
201
236
  end
202
237
 
203
- class SkippedTest < XMLElementWrapper
238
+ # @return [Bool]
239
+ # Whether or not this TestableReference (test bundle) should use a whitelist or not
240
+ #
241
+ def use_test_selection_whitelist?
242
+ string_to_bool(@xml_element.attributes['useTestSelectionWhitelist'])
243
+ end
244
+
245
+ # @param [Bool] flag
246
+ # Set whether or not this TestableReference (test bundle) should use a whitelist or not
247
+ #
248
+ def use_test_selection_whitelist=(flag)
249
+ @xml_element.attributes['useTestSelectionWhitelist'] = bool_to_string(flag)
250
+ end
251
+
252
+ # @return [Array<Test>]
253
+ # The list of SelectedTest this action will run.
254
+ #
255
+ def selected_tests
256
+ return [] if @xml_element.elements['SelectedTests'].nil?
257
+ @xml_element.elements['SelectedTests'].get_elements('Test').map do |node|
258
+ Test.new(node)
259
+ end
260
+ end
261
+
262
+ # @param [Array<Test>] tests
263
+ # Set the list of SelectedTest this action will run.
264
+ #
265
+ def selected_tests=(tests)
266
+ @xml_element.delete_element('SelectedTests')
267
+ return if tests.nil?
268
+ entries = @xml_element.add_element('SelectedTests')
269
+ tests.each do |selected|
270
+ entries.add_element(selected.xml_element)
271
+ end
272
+ end
273
+
274
+ # @param [Test] selected_test
275
+ # The SelectedTest to add to the list of tests this action will run.
276
+ #
277
+ def add_selected_test(selected_test)
278
+ entries = @xml_element.elements['SelectedTests'] || @xml_element.add_element('SelectedTests')
279
+ entries.add_element(selected_test.xml_element)
280
+ end
281
+
282
+ class Test < XMLElementWrapper
204
283
  # @param [REXML::Element] node
205
284
  # The 'Test' XML node that this object will wrap.
206
285
  # If nil, will create a default XML node to use.
@@ -226,6 +305,11 @@ module Xcodeproj
226
305
  end
227
306
  end
228
307
 
308
+ # Aliased to`Test` for compatibility
309
+ # @todo Remove in Xcodeproj 2
310
+ #
311
+ SkippedTest = Test
312
+
229
313
  # @todo handle 'AdditionalOptions' tag
230
314
  end
231
315
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xcodeproj
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.9
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Duran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2018-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: atomos
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.2
19
+ version: 0.1.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.1.2
26
+ version: 0.1.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: CFPropertyList
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -84,14 +84,14 @@ dependencies:
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: 0.2.5
87
+ version: 0.2.6
88
88
  type: :runtime
89
89
  prerelease: false
90
90
  version_requirements: !ruby/object:Gem::Requirement
91
91
  requirements:
92
92
  - - "~>"
93
93
  - !ruby/object:Gem::Version
94
- version: 0.2.5
94
+ version: 0.2.6
95
95
  description: Xcodeproj lets you create and modify Xcode projects from Ruby. Script
96
96
  boring management tasks or build Xcode-friendly libraries. Also includes support
97
97
  for Xcode workspaces (.xcworkspace) and configuration files (.xcconfig).
@@ -181,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  version: '0'
182
182
  requirements: []
183
183
  rubyforge_project:
184
- rubygems_version: 2.7.6
184
+ rubygems_version: 2.7.7
185
185
  signing_key:
186
186
  specification_version: 3
187
187
  summary: Create and modify Xcode projects from Ruby.