cocoapods 1.9.0.beta.2 → 1.9.0.beta.3
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 +4 -4
- data/CHANGELOG.md +34 -0
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_resources_script.rb +1 -1
- data/lib/cocoapods/generator/prepare_artifacts_script.rb +1 -1
- data/lib/cocoapods/installer/analyzer.rb +8 -7
- data/lib/cocoapods/installer/project_cache/target_cache_key.rb +12 -2
- data/lib/cocoapods/installer/xcode/pods_project_generator/file_references_installer.rb +4 -1
- data/lib/cocoapods/installer/xcode/pods_project_generator/pod_target_installer.rb +4 -2
- data/lib/cocoapods/sandbox/path_list.rb +24 -2
- data/lib/cocoapods/target/build_settings.rb +35 -6
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '090f2135af901aa68538da5553e60544a3a6426353296708272dfd57717bce8d'
|
4
|
+
data.tar.gz: 9d6a6cfa64727bce678f7c66b8b985f293c78fc0e3bd7d79b8d8c9b0d2a695a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64d5011e5653537b95d7d6e32843289b93f604d36b5fefce4d2b7bb14d7ac3dd0b0cf309ba9e530e2d58f9bc7e7fbb67a31659e0afcdc66782906a00f201f165
|
7
|
+
data.tar.gz: 94242285df5c8147d52e88c3b5e72e4993955ae6546550085c0a1e457dad67ec56372a36e3790f2d302ac191d3a974b7ae11bb7dcc89b4f5a643f325f6cf2437
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,40 @@ To install or update CocoaPods see this [guide](http://docs.cocoapods.org/guides
|
|
4
4
|
|
5
5
|
To install release candidates run `[sudo] gem install cocoapods --pre`
|
6
6
|
|
7
|
+
## 1.9.0.beta.3 (2020-02-04)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* PathList optimizations related to file system reads.
|
12
|
+
[manuyavuz](https://github.com/manuyavuz)
|
13
|
+
[#9428](https://github.com/CocoaPods/CocoaPods/pull/9428)
|
14
|
+
|
15
|
+
##### Bug Fixes
|
16
|
+
|
17
|
+
* Apply Xcode 11 `XCTUnwrap` fix to library and framework targets.
|
18
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
19
|
+
[#9500](https://github.com/CocoaPods/CocoaPods/pull/9500)
|
20
|
+
|
21
|
+
* Fix resources script when building a project from a symlink.
|
22
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
23
|
+
[#9423](https://github.com/CocoaPods/CocoaPods/issues/9423)
|
24
|
+
|
25
|
+
* Fix `pod install` crash on projects with atypical configuration names.
|
26
|
+
[Paul Beusterien](https://github.com/paulb777)
|
27
|
+
[#9465](https://github.com/CocoaPods/CocoaPods/pull/9465)
|
28
|
+
|
29
|
+
* Fix an issue that caused iOS archives to be invalid when including a vendored XCFramework
|
30
|
+
[Eric Amorde](https://github.com/amorde)
|
31
|
+
[#9458](https://github.com/CocoaPods/CocoaPods/issues/9458)
|
32
|
+
|
33
|
+
* Fix a bug where an incremental install missed library resources.
|
34
|
+
[Igor Makarov](https://github.com/igor-makarov)
|
35
|
+
[#9431](https://github.com/CocoaPods/CocoaPods/pull/9431)
|
36
|
+
|
37
|
+
* Fix an issue that caused an incorrect warning to be emitted for CLI targets with static libraries
|
38
|
+
[Eric Amorde](https://github.com/amorde)
|
39
|
+
[#9498](https://github.com/CocoaPods/CocoaPods/issues/9498)
|
40
|
+
|
7
41
|
## 1.9.0.beta.2 (2019-12-17)
|
8
42
|
|
9
43
|
##### Enhancements
|
@@ -216,7 +216,7 @@ EOS
|
|
216
216
|
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ]
|
217
217
|
then
|
218
218
|
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
219
|
-
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
219
|
+
OTHER_XCASSETS=$(find -L "$PWD" -iname "*.xcassets" -type d)
|
220
220
|
while read line; do
|
221
221
|
if [[ $line != "${PODS_ROOT}*" ]]; then
|
222
222
|
XCASSET_FILES+=("$line")
|
@@ -334,15 +334,16 @@ module Pod
|
|
334
334
|
#
|
335
335
|
def analyze_host_targets_in_podfile(aggregate_targets, embedded_aggregate_targets)
|
336
336
|
target_definitions_by_uuid = {}
|
337
|
-
|
337
|
+
cli_host_with_dynamic_linkage = []
|
338
338
|
cli_product_type = 'com.apple.product-type.tool'
|
339
339
|
# Collect aggregate target definitions by uuid to later lookup host target
|
340
340
|
# definitions and verify their compatibility with their embedded targets
|
341
341
|
aggregate_targets.each do |target|
|
342
342
|
target.user_targets.each do |user_target|
|
343
|
-
|
344
|
-
|
345
|
-
|
343
|
+
target_definition = target.target_definition
|
344
|
+
target_definitions_by_uuid[user_target.uuid] = target_definition
|
345
|
+
if user_target.product_type == cli_product_type && target_definition.build_type.linkage == :dynamic
|
346
|
+
cli_host_with_dynamic_linkage << user_target
|
346
347
|
end
|
347
348
|
end
|
348
349
|
end
|
@@ -368,10 +369,10 @@ module Pod
|
|
368
369
|
end
|
369
370
|
end
|
370
371
|
|
371
|
-
unless
|
372
|
-
UI.warn "The Podfile contains command line tool target(s) (#{
|
372
|
+
unless cli_host_with_dynamic_linkage.empty?
|
373
|
+
UI.warn "The Podfile contains command line tool target(s) (#{cli_host_with_dynamic_linkage.map(&:name).to_sentence}) which are attempting to integrate dynamic frameworks or libraries." \
|
373
374
|
"\n" \
|
374
|
-
'This may not behave as expected, because command line tools are usually distributed as a single binary and cannot contain their own dynamic
|
375
|
+
'This may not behave as expected, because command line tools are usually distributed as a single binary and cannot contain their own dynamic dependencies.'
|
375
376
|
end
|
376
377
|
|
377
378
|
unless embedded_targets_missing_hosts.empty?
|
@@ -51,10 +51,13 @@ module Pod
|
|
51
51
|
return :project if (other.key_hash.keys - key_hash.keys).any?
|
52
52
|
return :project if other.key_hash['CHECKSUM'] != key_hash['CHECKSUM']
|
53
53
|
return :project if other.key_hash['SPECS'] != key_hash['SPECS']
|
54
|
-
return :project if other.key_hash['FILES'] != key_hash['FILES']
|
55
54
|
return :project if other.key_hash['PROJECT_NAME'] != key_hash['PROJECT_NAME']
|
56
55
|
end
|
57
56
|
|
57
|
+
this_files = key_hash['FILES']
|
58
|
+
other_files = other.key_hash['FILES']
|
59
|
+
return :project if this_files != other_files
|
60
|
+
|
58
61
|
this_build_settings = key_hash['BUILD_SETTINGS_CHECKSUM']
|
59
62
|
other_build_settings = other.key_hash['BUILD_SETTINGS_CHECKSUM']
|
60
63
|
return :project if this_build_settings != other_build_settings
|
@@ -155,7 +158,14 @@ module Pod
|
|
155
158
|
build_settings[configuration] = Digest::MD5.hexdigest(aggregate_target.build_settings(configuration).xcconfig.to_s)
|
156
159
|
end
|
157
160
|
|
158
|
-
|
161
|
+
contents = {
|
162
|
+
'BUILD_SETTINGS_CHECKSUM' => build_settings,
|
163
|
+
}
|
164
|
+
if aggregate_target.includes_resources?
|
165
|
+
relative_file_paths = aggregate_target.resource_paths_by_config.values.flatten.uniq
|
166
|
+
contents['FILES'] = relative_file_paths.sort_by(&:downcase)
|
167
|
+
end
|
168
|
+
TargetCacheKey.new(sandbox, :aggregate, contents)
|
159
169
|
end
|
160
170
|
end
|
161
171
|
end
|
@@ -65,7 +65,10 @@ module Pod
|
|
65
65
|
# @return [void]
|
66
66
|
#
|
67
67
|
def refresh_file_accessors
|
68
|
-
file_accessors.
|
68
|
+
file_accessors.reject do |file_accessor|
|
69
|
+
pod_name = file_accessor.spec.name
|
70
|
+
sandbox.local?(pod_name)
|
71
|
+
end.map(&:path_list).uniq.each(&:read_file_system)
|
69
72
|
end
|
70
73
|
|
71
74
|
# Prepares the main groups to which all files will be added for the respective target
|
@@ -163,8 +163,10 @@ module Pod
|
|
163
163
|
def remove_pod_target_xcconfig_overrides_from_target(build_settings_by_config, native_target)
|
164
164
|
native_target.build_configurations.each do |configuration|
|
165
165
|
build_settings = build_settings_by_config[target.user_build_configurations[configuration.name]]
|
166
|
-
build_settings.
|
167
|
-
|
166
|
+
unless build_settings.nil?
|
167
|
+
build_settings.merged_pod_target_xcconfigs.each_key do |setting|
|
168
|
+
configuration.build_settings.delete(setting)
|
169
|
+
end
|
168
170
|
end
|
169
171
|
end
|
170
172
|
end
|
@@ -51,12 +51,15 @@ module Pod
|
|
51
51
|
unless root.exist?
|
52
52
|
raise Informative, "Attempt to read non existent folder `#{root}`."
|
53
53
|
end
|
54
|
-
|
55
54
|
dirs = []
|
56
55
|
files = []
|
57
56
|
root_length = root.cleanpath.to_s.length + File::SEPARATOR.length
|
58
|
-
|
57
|
+
escaped_root = escape_path_for_glob(root)
|
58
|
+
Dir.glob(escaped_root + '**/*', File::FNM_DOTMATCH).each do |f|
|
59
59
|
directory = File.directory?(f)
|
60
|
+
# Ignore `.` and `..` directories
|
61
|
+
next if directory && f =~ /\.\.?$/
|
62
|
+
|
60
63
|
f = f.slice(root_length, f.length - root_length)
|
61
64
|
next if f.nil?
|
62
65
|
|
@@ -214,6 +217,25 @@ module Pod
|
|
214
217
|
end
|
215
218
|
end
|
216
219
|
|
220
|
+
# Escapes the glob metacharacters from a given path so it can used in
|
221
|
+
# Dir#glob and similar methods.
|
222
|
+
#
|
223
|
+
# @note See CocoaPods/CocoaPods#862.
|
224
|
+
#
|
225
|
+
# @param [String, Pathname] path
|
226
|
+
# The path to escape.
|
227
|
+
#
|
228
|
+
# @return [Pathname] The escaped path.
|
229
|
+
#
|
230
|
+
def escape_path_for_glob(path)
|
231
|
+
result = path.to_s
|
232
|
+
characters_to_escape = ['[', ']', '{', '}', '?', '*']
|
233
|
+
characters_to_escape.each do |character|
|
234
|
+
result.gsub!(character, "\\#{character}")
|
235
|
+
end
|
236
|
+
Pathname.new(result)
|
237
|
+
end
|
238
|
+
|
217
239
|
#-----------------------------------------------------------------------#
|
218
240
|
end
|
219
241
|
end
|
@@ -492,9 +492,15 @@ module Pod
|
|
492
492
|
attr_reader :test_xcconfig
|
493
493
|
alias test_xcconfig? test_xcconfig
|
494
494
|
|
495
|
+
# @return [Boolean]
|
496
|
+
# whether settings are being generated for an application bundle
|
497
|
+
#
|
495
498
|
attr_reader :app_xcconfig
|
496
499
|
alias app_xcconfig? app_xcconfig
|
497
500
|
|
501
|
+
# @return [Boolean]
|
502
|
+
# whether settings are being generated for an library bundle
|
503
|
+
#
|
498
504
|
attr_reader :library_xcconfig
|
499
505
|
alias library_xcconfig? library_xcconfig
|
500
506
|
|
@@ -683,6 +689,12 @@ module Pod
|
|
683
689
|
file_accessors.flat_map(&:vendored_xcframeworks).map { |path| Xcode::XCFramework.new(path) }
|
684
690
|
end
|
685
691
|
|
692
|
+
# @return [Array<String>]
|
693
|
+
define_build_settings_method :system_framework_search_paths, :build_setting => true, :memoized => true, :sorted => true, :uniqued => true do
|
694
|
+
return ['$(PLATFORM_DIR)/Developer/usr/lib'] if should_apply_xctunwrap_fix?
|
695
|
+
[]
|
696
|
+
end
|
697
|
+
|
686
698
|
#-------------------------------------------------------------------------#
|
687
699
|
|
688
700
|
# @!group Libraries
|
@@ -737,16 +749,18 @@ module Pod
|
|
737
749
|
|
738
750
|
# @return [Array<String>]
|
739
751
|
define_build_settings_method :library_search_paths, :build_setting => true, :memoized => true, :sorted => true, :uniqued => true do
|
740
|
-
|
752
|
+
library_search_paths = should_apply_xctunwrap_fix? ? ['$(PLATFORM_DIR)/Developer/usr/lib'] : []
|
753
|
+
return library_search_paths if library_xcconfig? && target.build_as_static?
|
741
754
|
|
742
|
-
|
743
|
-
|
755
|
+
library_search_paths.concat library_search_paths_to_import.dup
|
756
|
+
library_search_paths.concat dependent_targets.flat_map { |pt| pt.build_settings[@configuration].vendored_dynamic_library_search_paths }
|
744
757
|
if library_xcconfig?
|
745
|
-
|
758
|
+
library_search_paths.delete(target.configuration_build_dir(CONFIGURATION_BUILD_DIR_VARIABLE))
|
746
759
|
else
|
747
|
-
|
760
|
+
library_search_paths.concat(dependent_targets.flat_map { |pt| pt.build_settings[@configuration].library_search_paths_to_import })
|
748
761
|
end
|
749
|
-
|
762
|
+
|
763
|
+
library_search_paths
|
750
764
|
end
|
751
765
|
|
752
766
|
# @return [Array<String>]
|
@@ -837,6 +851,7 @@ module Pod
|
|
837
851
|
define_build_settings_method :swift_include_paths, :build_setting => true, :memoized => true, :sorted => true, :uniqued => true do
|
838
852
|
paths = dependent_targets.flat_map { |pt| pt.build_settings[@configuration].swift_include_paths_to_import }
|
839
853
|
paths.concat swift_include_paths_to_import if non_library_xcconfig?
|
854
|
+
paths.concat ['$(PLATFORM_DIR)/Developer/usr/lib'] if should_apply_xctunwrap_fix?
|
840
855
|
paths
|
841
856
|
end
|
842
857
|
|
@@ -966,6 +981,20 @@ module Pod
|
|
966
981
|
end
|
967
982
|
end
|
968
983
|
|
984
|
+
# Xcode 11 causes an issue with frameworks or libraries before 12.2 deployment target that link or are part of
|
985
|
+
# test bundles that use XCTUnwrap. Apple has provided an official work around for this.
|
986
|
+
#
|
987
|
+
# @see https://developer.apple.com/documentation/xcode_release_notes/xcode_11_release_notes
|
988
|
+
#
|
989
|
+
# @return [Boolean] Whether to apply the fix or not.
|
990
|
+
#
|
991
|
+
define_build_settings_method :should_apply_xctunwrap_fix?, :memoized => true do
|
992
|
+
library_xcconfig? &&
|
993
|
+
target.platform.name == :ios &&
|
994
|
+
Version.new(target.platform.deployment_target) < Version.new('12.2') &&
|
995
|
+
frameworks_to_import.include?('XCTest')
|
996
|
+
end
|
997
|
+
|
969
998
|
#-------------------------------------------------------------------------#
|
970
999
|
end
|
971
1000
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.9.0.beta.
|
4
|
+
version: 1.9.0.beta.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eloy Duran
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2020-02-04 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: cocoapods-core
|
@@ -19,14 +19,14 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.9.0.beta.
|
22
|
+
version: 1.9.0.beta.3
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.9.0.beta.
|
29
|
+
version: 1.9.0.beta.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|