cocoapods 1.11.2 → 1.11.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +34 -1
- data/lib/cocoapods/gem_version.rb +1 -1
- data/lib/cocoapods/generator/copy_xcframework_script.rb +48 -22
- data/lib/cocoapods/installer/analyzer/sandbox_analyzer.rb +2 -1
- data/lib/cocoapods/installer/analyzer.rb +1 -1
- data/lib/cocoapods/sandbox/file_accessor.rb +10 -1
- data/lib/cocoapods/sources_manager.rb +1 -1
- data/lib/cocoapods/target/build_settings.rb +3 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aae7ed73ff99d6f5553364df8d34c4a26cc9825bd41ee3a59cb7b8d86f290197
|
4
|
+
data.tar.gz: a439077432771a732ad842f4d9c42c147eeebace664c6a4766bf922a91c8dd6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61a5beb8911ca4a8fe200421d757187f0c70f3b30ec3b00712dd32627a9749797a6e693c385163844b78f15bee2f7a686f9faac83a5a83713d69c9c1b61574fe
|
7
|
+
data.tar.gz: a55f30e798efa79abb3f0a7bf103d30cec767661f95b9fe8ef8ff72413bc191b2a5d558f2819ebe6ef7c9f85d029d57dd9bbf1274cfdf34d171399981311b140
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,39 @@ To install or update CocoaPods see this [guide](https://guides.cocoapods.org/usi
|
|
4
4
|
|
5
5
|
To install release candidates run `[sudo] gem install cocoapods --pre`
|
6
6
|
|
7
|
+
## 1.11.3 (2022-03-16)
|
8
|
+
|
9
|
+
##### Enhancements
|
10
|
+
|
11
|
+
* None.
|
12
|
+
|
13
|
+
##### Bug Fixes
|
14
|
+
|
15
|
+
* Fix script breaking when attempting to print a warning.
|
16
|
+
[Igor Makarov](https://github.com/igor-makarov)
|
17
|
+
[#11251](https://github.com/CocoaPods/CocoaPods/issues/11251)
|
18
|
+
|
19
|
+
* Do not consider podspec_repo when analying sandbox for changes.
|
20
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
21
|
+
[#10985](https://github.com/CocoaPods/CocoaPods/pull/10985)
|
22
|
+
|
23
|
+
* Rewrite XCFramework slice selection using plist metadata.
|
24
|
+
[Igor Makarov](https://github.com/igor-makarov)
|
25
|
+
[#11229](https://github.com/CocoaPods/CocoaPods/pull/11229)
|
26
|
+
|
27
|
+
* Fix setting `LD_RUNTIME_SEARCH_PATHS` for aggregate targets that include dynamic xcframeworks.
|
28
|
+
[Dimitris Koutsogiorgas](https://github.com/dnkoutso)
|
29
|
+
[#11158](https://github.com/CocoaPods/CocoaPods/pull/11158)
|
30
|
+
|
31
|
+
* Add catch for YAML syntax error to prevent crash in `cdn_url?` check.
|
32
|
+
[Kanstantsin Shautsou](https://github.com/KostyaSha)
|
33
|
+
[#11010](https://github.com/CocoaPods/CocoaPods/issues/11010)
|
34
|
+
|
35
|
+
* Fix static Swift XCFramework import paths.
|
36
|
+
[Igor Makarov](https://github.com/igor-makarov)
|
37
|
+
[#11058](https://github.com/CocoaPods/CocoaPods/issues/10058)
|
38
|
+
[#11093](https://github.com/CocoaPods/CocoaPods/pull/11093)
|
39
|
+
|
7
40
|
## 1.11.2 (2021-09-13)
|
8
41
|
|
9
42
|
##### Enhancements
|
@@ -17,7 +50,7 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
|
|
17
50
|
[#10912](https://github.com/CocoaPods/CocoaPods/issues/10912)
|
18
51
|
|
19
52
|
|
20
|
-
## 1.11.1 (2021-09-
|
53
|
+
## 1.11.1 (2021-09-12)
|
21
54
|
|
22
55
|
##### Enhancements
|
23
56
|
|
@@ -64,6 +64,10 @@ module Pod
|
|
64
64
|
|
65
65
|
#{Pod::Generator::ScriptPhaseConstants::RSYNC_PROTECT_TMP_FILES}
|
66
66
|
|
67
|
+
#{variant_for_slice}
|
68
|
+
|
69
|
+
#{archs_for_slice}
|
70
|
+
|
67
71
|
copy_dir()
|
68
72
|
{
|
69
73
|
local source="$1"
|
@@ -77,7 +81,9 @@ copy_dir()
|
|
77
81
|
SELECT_SLICE_RETVAL=""
|
78
82
|
|
79
83
|
select_slice() {
|
80
|
-
local
|
84
|
+
local xcframework_name="$1"
|
85
|
+
xcframework_name="${xcframework_name##*/}"
|
86
|
+
local paths=("${@:2}")
|
81
87
|
# Locate the correct slice of the .xcframework for the current architectures
|
82
88
|
local target_path=""
|
83
89
|
|
@@ -93,29 +99,15 @@ select_slice() {
|
|
93
99
|
fi
|
94
100
|
for i in ${!paths[@]}; do
|
95
101
|
local matched_all_archs="1"
|
96
|
-
|
97
|
-
|
98
|
-
|
102
|
+
local slice_archs="$(archs_for_slice "${xcframework_name}/${paths[$i]}")"
|
103
|
+
local slice_variant="$(variant_for_slice "${xcframework_name}/${paths[$i]}")"
|
104
|
+
for target_arch in $target_archs; do
|
105
|
+
if ! [[ "${slice_variant}" == "$target_variant" ]]; then
|
99
106
|
matched_all_archs="0"
|
100
107
|
break
|
101
108
|
fi
|
102
109
|
|
103
|
-
|
104
|
-
if [[ -z "$target_variant" && ("${paths[$i]}" == *"simulator"* || "${paths[$i]}" == *"maccatalyst"*) ]]; then
|
105
|
-
matched_all_archs="0"
|
106
|
-
break
|
107
|
-
fi
|
108
|
-
|
109
|
-
# This regex matches all possible variants of the arch in the folder name:
|
110
|
-
# Let's say the folder name is: ios-armv7_armv7s_arm64_arm64e/CoconutLib.framework
|
111
|
-
# We match the following: -armv7_, _armv7s_, _arm64_ and _arm64e/.
|
112
|
-
# If we have a specific variant: ios-i386_x86_64-simulator/CoconutLib.framework
|
113
|
-
# We match the following: -i386_ and _x86_64-
|
114
|
-
# When the .xcframework wraps a static library, the folder name does not include
|
115
|
-
# any .framework. In that case, the folder name can be: ios-arm64_armv7
|
116
|
-
# We also match _armv7$ to handle that case.
|
117
|
-
local target_arch_regex="[_\\-]${target_arch}([\\/_\\-]|$)"
|
118
|
-
if ! [[ "${paths[$i]}" =~ $target_arch_regex ]]; then
|
110
|
+
if ! echo "${slice_archs}" | tr " " "\\n" | grep -F -q -x "$target_arch"; then
|
119
111
|
matched_all_archs="0"
|
120
112
|
break
|
121
113
|
fi
|
@@ -137,10 +129,10 @@ install_xcframework() {
|
|
137
129
|
local paths=("${@:4}")
|
138
130
|
|
139
131
|
# Locate the correct slice of the .xcframework for the current architectures
|
140
|
-
select_slice "${paths[@]}"
|
132
|
+
select_slice "${basepath}" "${paths[@]}"
|
141
133
|
local target_path="$SELECT_SLICE_RETVAL"
|
142
134
|
if [[ -z "$target_path" ]]; then
|
143
|
-
echo "warning: [CP] Unable to find matching
|
135
|
+
echo "warning: [CP] $(basename ${basepath}): Unable to find matching slice in '${paths[@]}' for the current build architectures ($ARCHS) and platform (${EFFECTIVE_PLATFORM_NAME-${PLATFORM_NAME}})."
|
144
136
|
return
|
145
137
|
fi
|
146
138
|
local source="$basepath/$target_path"
|
@@ -183,6 +175,40 @@ install_xcframework() {
|
|
183
175
|
args.join(' ')
|
184
176
|
end
|
185
177
|
|
178
|
+
def variant_for_slice
|
179
|
+
script = ''
|
180
|
+
script << "variant_for_slice()\n"
|
181
|
+
script << "{\n"
|
182
|
+
script << " case \"$1\" in\n"
|
183
|
+
xcframeworks.each do |xcframework|
|
184
|
+
root = xcframework.path
|
185
|
+
xcframework.slices.each do |slice|
|
186
|
+
script << " #{shell_escape(root.basename.join(slice.path.dirname.relative_path_from(root)))})\n"
|
187
|
+
script << " echo \"#{slice.platform_variant}\"\n"
|
188
|
+
script << " ;;\n"
|
189
|
+
end
|
190
|
+
end
|
191
|
+
script << " esac\n"
|
192
|
+
script << '}'
|
193
|
+
end
|
194
|
+
|
195
|
+
def archs_for_slice
|
196
|
+
script = ''
|
197
|
+
script << "archs_for_slice()\n"
|
198
|
+
script << "{\n"
|
199
|
+
script << " case \"$1\" in\n"
|
200
|
+
xcframeworks.each do |xcframework|
|
201
|
+
root = xcframework.path
|
202
|
+
xcframework.slices.each do |slice|
|
203
|
+
script << " #{shell_escape(root.basename.join(slice.path.dirname.relative_path_from(root)))})\n"
|
204
|
+
script << " echo \"#{slice.supported_archs.sort.join(' ')}\"\n"
|
205
|
+
script << " ;;\n"
|
206
|
+
end
|
207
|
+
end
|
208
|
+
script << " esac\n"
|
209
|
+
script << '}'
|
210
|
+
end
|
211
|
+
|
186
212
|
class << self
|
187
213
|
# @param [Pathname] xcframework_path
|
188
214
|
# the base path of the .xcframework bundle
|
@@ -145,7 +145,8 @@ module Pod
|
|
145
145
|
return true if spec.version != sandbox_version(pod)
|
146
146
|
return true if spec.checksum != sandbox_checksum(pod)
|
147
147
|
return true if resolved_spec_names(pod) != sandbox_spec_names(pod)
|
148
|
-
|
148
|
+
podfile_dep = podfile_dependency(pod)&.tap { |dep| dep.podspec_repo = nil }
|
149
|
+
return true if podfile_dep != sandbox_dependency(pod)
|
149
150
|
return true if sandbox.predownloaded?(pod)
|
150
151
|
return true if folder_empty?(pod)
|
151
152
|
false
|
@@ -125,7 +125,7 @@ module Pod
|
|
125
125
|
validate_platforms(resolver_specs_by_target)
|
126
126
|
specifications = generate_specifications(resolver_specs_by_target)
|
127
127
|
aggregate_targets, pod_targets = generate_targets(resolver_specs_by_target, target_inspections)
|
128
|
-
sandbox_state
|
128
|
+
sandbox_state = generate_sandbox_state(specifications)
|
129
129
|
specs_by_target = resolver_specs_by_target.each_with_object({}) do |rspecs_by_target, hash|
|
130
130
|
hash[rspecs_by_target[0]] = rspecs_by_target[1].map(&:spec)
|
131
131
|
end
|
@@ -179,7 +179,7 @@ module Pod
|
|
179
179
|
end
|
180
180
|
end
|
181
181
|
|
182
|
-
# @return [Array<Pathname>] The paths of the
|
182
|
+
# @return [Array<Pathname>] The paths of the static xcframework bundles
|
183
183
|
# that come shipped with the Pod.
|
184
184
|
#
|
185
185
|
def vendored_static_xcframeworks
|
@@ -188,6 +188,15 @@ module Pod
|
|
188
188
|
end
|
189
189
|
end
|
190
190
|
|
191
|
+
# @return [Array<Pathname>] The paths of the dynamic xcframework bundles
|
192
|
+
# that come shipped with the Pod.
|
193
|
+
#
|
194
|
+
def vendored_dynamic_xcframeworks
|
195
|
+
vendored_xcframeworks.select do |path|
|
196
|
+
Xcode::XCFramework.new(spec.name, path).build_type == BuildType.dynamic_framework
|
197
|
+
end
|
198
|
+
end
|
199
|
+
|
191
200
|
# @return [Array<Pathname>] The paths of the static (fake) framework
|
192
201
|
# bundles that come shipped with the Pod.
|
193
202
|
#
|
@@ -86,7 +86,7 @@ module Pod
|
|
86
86
|
response = OpenURI.open_uri(url.chomp('/') + '/CocoaPods-version.yml', uri_options)
|
87
87
|
response_hash = YAML.load(response.read) # rubocop:disable Security/YAMLLoad
|
88
88
|
response_hash.is_a?(Hash) && !Source::Metadata.new(response_hash).latest_cocoapods_version.nil?
|
89
|
-
rescue ::OpenURI::HTTPError, SocketError
|
89
|
+
rescue Psych::SyntaxError, ::OpenURI::HTTPError, SocketError
|
90
90
|
return false
|
91
91
|
rescue => e
|
92
92
|
raise Informative, "Couldn't determine repo type for URL: `#{url}`: #{e}"
|
@@ -938,6 +938,8 @@ module Pod
|
|
938
938
|
define_build_settings_method :swift_include_paths, :build_setting => true, :memoized => true, :sorted => true, :uniqued => true do
|
939
939
|
paths = dependent_targets.flat_map { |pt| pt.build_settings[@configuration].swift_include_paths_to_import }
|
940
940
|
paths.concat swift_include_paths_to_import if non_library_xcconfig?
|
941
|
+
vendored_static_library_search_paths = dependent_targets.flat_map { |pt| pt.build_settings[@configuration].vendored_static_library_search_paths }
|
942
|
+
paths.concat vendored_static_library_search_paths
|
941
943
|
paths.concat ['$(PLATFORM_DIR)/Developer/usr/lib'] if should_apply_xctunwrap_fix?
|
942
944
|
paths
|
943
945
|
end
|
@@ -1283,7 +1285,7 @@ module Pod
|
|
1283
1285
|
define_build_settings_method :any_vendored_dynamic_artifacts?, :memoized => true do
|
1284
1286
|
pod_targets.any? do |pt|
|
1285
1287
|
pt.file_accessors.any? do |fa|
|
1286
|
-
!fa.vendored_dynamic_artifacts.empty?
|
1288
|
+
!fa.vendored_dynamic_artifacts.empty? || !fa.vendored_dynamic_xcframeworks.empty?
|
1287
1289
|
end
|
1288
1290
|
end
|
1289
1291
|
end
|
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.11.
|
4
|
+
version: 1.11.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: 2022-03-15 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.11.
|
22
|
+
version: 1.11.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.11.
|
29
|
+
version: 1.11.3
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: claide
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -545,7 +545,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
545
545
|
- !ruby/object:Gem::Version
|
546
546
|
version: '0'
|
547
547
|
requirements: []
|
548
|
-
rubygems_version: 3.
|
548
|
+
rubygems_version: 3.1.6
|
549
549
|
signing_key:
|
550
550
|
specification_version: 4
|
551
551
|
summary: The Cocoa library package manager.
|