xcodeproj 1.5.7 → 1.5.8

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