xcodeproj 1.5.7 → 1.5.8

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: bad4a5d9e130051e4ec9f5ba1123c0945646361aa179f50978277f886ac8ae26
4
- data.tar.gz: 3dffd3ec7bd653c19005942c6e61e315819b62d29f96ab854ea4e9863b9e87d1
3
+ metadata.gz: b86a12e55bedc920b8bcf130a7d7db5d82748440f3690e751069b3b4c40a3d96
4
+ data.tar.gz: 0c00b4128824c115a6c60bc37a277b86817d9f4ee6d847fb5894d22d1876a713
5
5
  SHA512:
6
- metadata.gz: ffb0fa8556611d4f0440490fe902e7dbfbbff9155edade6040bb0a5a6490536a01954c93f5784a6cf4da0e40852b1c06844718b2b6645407968b5ba697a47bc6
7
- data.tar.gz: e1f4f116e2faab02c2dcd6031a7a37940fbc22cebfbe20a7c6a56628ce0cedf8b83184a3405bf83d3d2f4c390744197a0db8c57f1da5c11d3137a18f24764b01
6
+ metadata.gz: 6523c14761cd047e135b61689f4f3ee32a5d96b0cb3d773eec237e17267016398d1710ddd3c234c602b07791c914b9c478f1a760da56155697d2d5f49f76c869
7
+ data.tar.gz: fe540d756b206c5a9d21021dc061a30dce101d1ac13360ea70fab57596b777d5f08896bd807ad3fd89c9b5f8574572eb6600a1952cbddb3511089672d6096265
@@ -10,7 +10,8 @@ module Xcodeproj
10
10
 
11
11
  KEY_VALUE_PATTERN = /
12
12
  (
13
- [^=]+ # Any char, but not an assignment operator (non-greedy)
13
+ [^=\[]+ # Any char, but not an assignment operator
14
+ # or subscript (non-greedy)
14
15
  (?: # One or multiple conditional subscripts
15
16
  \[
16
17
  [^\]]* # The subscript key
@@ -21,7 +22,7 @@ module Xcodeproj
21
22
  \]
22
23
  )*
23
24
  )
24
- \s+ # Whitespaces after the key (needed because subscripts
25
+ \s* # Whitespaces after the key (needed because subscripts
25
26
  # always end with ']')
26
27
  = # The assignment operator
27
28
  (.*) # The value
@@ -4,17 +4,17 @@ module Xcodeproj
4
4
  module Constants
5
5
  # @return [String] The last known iOS SDK (stable).
6
6
  #
7
- LAST_KNOWN_IOS_SDK = '10.3'
7
+ LAST_KNOWN_IOS_SDK = '11.3'
8
8
 
9
9
  # @return [String] The last known OS X SDK (stable).
10
10
  #
11
11
  LAST_KNOWN_OSX_SDK = '10.13'
12
12
 
13
13
  # @return [String] The last known tvOS SDK (stable).
14
- LAST_KNOWN_TVOS_SDK = '10.2'
14
+ LAST_KNOWN_TVOS_SDK = '11.3'
15
15
 
16
16
  # @return [String] The last known watchOS SDK (stable).
17
- LAST_KNOWN_WATCHOS_SDK = '3.2'
17
+ LAST_KNOWN_WATCHOS_SDK = '4.3'
18
18
 
19
19
  # @return [String] The last known archive version to Xcodeproj.
20
20
  #
@@ -1,5 +1,5 @@
1
1
  module Xcodeproj
2
2
  # The version of the xcodeproj gem.
3
3
  #
4
- VERSION = '1.5.7'.freeze unless defined? Xcodeproj::VERSION
4
+ VERSION = '1.5.8'.freeze unless defined? Xcodeproj::VERSION
5
5
  end
@@ -318,10 +318,10 @@ module Xcodeproj
318
318
  end
319
319
 
320
320
  unless object_plist.empty?
321
- raise "[!] Xcodeproj doesn't know about the following " \
322
- "attributes #{object_plist.inspect} for the '#{isa}' isa." \
323
- "\nIf this attribute was generated by Xcode please file " \
324
- 'an issue: https://github.com/CocoaPods/Xcodeproj/issues/new'
321
+ UI.warn "[!] Xcodeproj doesn't know about the following " \
322
+ "attributes #{object_plist.inspect} for the '#{isa}' isa." \
323
+ "\nIf this attribute was generated by Xcode please file " \
324
+ 'an issue: https://github.com/CocoaPods/Xcodeproj/issues/new'
325
325
  end
326
326
  end
327
327
 
@@ -154,42 +154,21 @@ module Xcodeproj
154
154
  sorted
155
155
  end
156
156
 
157
- # yes, they are case-sensitive.
158
- # no, Xcode doesn't do this for other PathList settings nor other
159
- # settings ending in SEARCH_PATHS.
160
- ARRAY_SETTINGS = %w(
161
- ALTERNATE_PERMISSIONS_FILES
162
- ARCHS
163
- BUILD_VARIANTS
164
- EXCLUDED_SOURCE_FILE_NAMES
165
- FRAMEWORK_SEARCH_PATHS
166
- GCC_PREPROCESSOR_DEFINITIONS
167
- GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
168
- HEADER_SEARCH_PATHS
169
- INFOPLIST_PREPROCESSOR_DEFINITIONS
170
- LIBRARY_SEARCH_PATHS
171
- OTHER_CFLAGS
172
- OTHER_CPLUSPLUSFLAGS
173
- OTHER_LDFLAGS
174
- REZ_SEARCH_PATHS
175
- SECTORDER_FLAGS
176
- WARNING_CFLAGS
177
- WARNING_LDFLAGS
178
- ).freeze
179
- private_constant :ARRAY_SETTINGS
180
-
181
157
  def normalize_array_settings(settings)
182
158
  return unless settings
159
+
160
+ array_settings = BuildSettingsArraySettingsByObjectVersion[project.object_version]
161
+
183
162
  settings.keys.each do |key|
184
163
  next unless value = settings[key]
185
164
  case value
186
165
  when String
187
- next unless ARRAY_SETTINGS.include?(key)
166
+ next unless array_settings.include?(key)
188
167
  array_value = split_build_setting_array_to_string(value)
189
168
  next unless array_value.size > 1
190
169
  settings[key] = array_value
191
170
  when Array
192
- next if value.size > 1 && ARRAY_SETTINGS.include?(key)
171
+ next if value.size > 1 && array_settings.include?(key)
193
172
  settings[key] = value.join(' ')
194
173
  end
195
174
  end
@@ -211,3 +190,5 @@ module Xcodeproj
211
190
  end
212
191
  end
213
192
  end
193
+
194
+ require 'xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version'
@@ -105,7 +105,11 @@ module Xcodeproj
105
105
  #---------------------------------------------------------------------#
106
106
 
107
107
  def ascii_plist_annotation
108
- " Build configuration list for #{target.isa} \"#{target}\" "
108
+ if target.nil?
109
+ ' Build configuration list for <deleted target> '
110
+ else
111
+ " Build configuration list for #{target.isa} \"#{target}\" "
112
+ end
109
113
  end
110
114
  end
111
115
  end
@@ -0,0 +1,70 @@
1
+ module Xcodeproj
2
+ class Project
3
+ module Object
4
+ class XCBuildConfiguration
5
+ # yes, they are case-sensitive.
6
+ # no, Xcode doesn't do this for other PathList settings nor other
7
+ # settings ending in SEARCH_PATHS.
8
+ module BuildSettingsArraySettingsByObjectVersion
9
+ ARRAY_SETTINGS = %w(
10
+ ALTERNATE_PERMISSIONS_FILES
11
+ ARCHS
12
+ BUILD_VARIANTS
13
+ EXCLUDED_SOURCE_FILE_NAMES
14
+ FRAMEWORK_SEARCH_PATHS
15
+ GCC_PREPROCESSOR_DEFINITIONS
16
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
17
+ HEADER_SEARCH_PATHS
18
+ INFOPLIST_PREPROCESSOR_DEFINITIONS
19
+ LIBRARY_SEARCH_PATHS
20
+ OTHER_CFLAGS
21
+ OTHER_CPLUSPLUSFLAGS
22
+ OTHER_LDFLAGS
23
+ REZ_SEARCH_PATHS
24
+ SECTORDER_FLAGS
25
+ WARNING_CFLAGS
26
+ WARNING_LDFLAGS
27
+ ).to_set.freeze
28
+ private_constant :ARRAY_SETTINGS
29
+
30
+ ARRAY_SETTINGS_OBJECT_VERSION_50 = %w(
31
+ ALTERNATE_PERMISSIONS_FILES
32
+ ARCHS
33
+ BUILD_VARIANTS
34
+ EXCLUDED_SOURCE_FILE_NAMES
35
+ FRAMEWORK_SEARCH_PATHS
36
+ GCC_PREPROCESSOR_DEFINITIONS
37
+ GCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS
38
+ HEADER_SEARCH_PATHS
39
+ INCLUDED_SOURCE_FILE_NAMES
40
+ INFOPLIST_PREPROCESSOR_DEFINITIONS
41
+ LD_RUNPATH_SEARCH_PATHS
42
+ LIBRARY_SEARCH_PATHS
43
+ LOCALIZED_STRING_MACRO_NAMES
44
+ OTHER_CFLAGS
45
+ OTHER_CPLUSPLUSFLAGS
46
+ OTHER_LDFLAGS
47
+ REZ_SEARCH_PATHS
48
+ SECTORDER_FLAGS
49
+ SYSTEM_FRAMEWORK_SEARCH_PATHS
50
+ SYSTEM_HEADER_SEARCH_PATHS
51
+ USER_HEADER_SEARCH_PATHS
52
+ WARNING_CFLAGS
53
+ WARNING_LDFLAGS
54
+ ).to_set.freeze
55
+ private_constant :ARRAY_SETTINGS_OBJECT_VERSION_50
56
+
57
+ def self.[](object_version)
58
+ object_version = object_version.to_i
59
+
60
+ if object_version >= 50
61
+ ARRAY_SETTINGS_OBJECT_VERSION_50
62
+ else
63
+ ARRAY_SETTINGS
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
@@ -181,6 +181,7 @@ module Xcodeproj
181
181
  else
182
182
  build_configuration = project.new(XCBuildConfiguration)
183
183
  build_configuration.name = name
184
+ product_type = self.product_type if respond_to?(:product_type)
184
185
  build_configuration.build_settings = ProjectHelper.common_build_settings(type, platform_name, deployment_target, product_type)
185
186
  build_configuration_list.build_configurations << build_configuration
186
187
  build_configuration
@@ -59,8 +59,10 @@ module Xcodeproj
59
59
  target.build_phases << project.new(PBXFrameworksBuildPhase)
60
60
 
61
61
  # Frameworks
62
- framework_name = (platform == :osx) ? 'Cocoa' : 'Foundation'
63
- target.add_system_framework(framework_name)
62
+ unless type == :static_library
63
+ framework_name = (platform == :osx) ? 'Cocoa' : 'Foundation'
64
+ target.add_system_framework(framework_name)
65
+ end
64
66
 
65
67
  target
66
68
  end
@@ -76,6 +76,7 @@ module Xcodeproj
76
76
  end
77
77
 
78
78
  def uuid_for_path(path)
79
+ require 'digest'
79
80
  Digest::MD5.hexdigest(path).upcase
80
81
  end
81
82
 
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.7
4
+ version: 1.5.8
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-03-22 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: atomos
@@ -84,14 +84,14 @@ dependencies:
84
84
  requirements:
85
85
  - - "~>"
86
86
  - !ruby/object:Gem::Version
87
- version: 0.2.4
87
+ version: 0.2.5
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.4
94
+ version: 0.2.5
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).
@@ -129,6 +129,7 @@ files:
129
129
  - lib/xcodeproj/project/object/container_item_proxy.rb
130
130
  - lib/xcodeproj/project/object/file_reference.rb
131
131
  - lib/xcodeproj/project/object/group.rb
132
+ - lib/xcodeproj/project/object/helpers/build_settings_array_settings_by_object_version.rb
132
133
  - lib/xcodeproj/project/object/helpers/file_references_factory.rb
133
134
  - lib/xcodeproj/project/object/helpers/groupable_helper.rb
134
135
  - lib/xcodeproj/project/object/native_target.rb