cocoapods 1.9.0.beta.3 → 1.9.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: '090f2135af901aa68538da5553e60544a3a6426353296708272dfd57717bce8d'
4
- data.tar.gz: 9d6a6cfa64727bce678f7c66b8b985f293c78fc0e3bd7d79b8d8c9b0d2a695a8
3
+ metadata.gz: 24f875616a403c4ddb34d0a8b7af2f7d8d63ba851fe9ff6d6fc84200a51ee373
4
+ data.tar.gz: 5e279cf00975ca84acc690b8aa7a731d53e676ca0143d570d1e7bbcbaa4c02ba
5
5
  SHA512:
6
- metadata.gz: 64d5011e5653537b95d7d6e32843289b93f604d36b5fefce4d2b7bb14d7ac3dd0b0cf309ba9e530e2d58f9bc7e7fbb67a31659e0afcdc66782906a00f201f165
7
- data.tar.gz: 94242285df5c8147d52e88c3b5e72e4993955ae6546550085c0a1e457dad67ec56372a36e3790f2d302ac191d3a974b7ae11bb7dcc89b4f5a643f325f6cf2437
6
+ metadata.gz: de961666641f51fbf193e6fd9918b4d1eb0c4faf047fd6ac81379257ce6883feaafbcf235847e3442110c2432da7cf9a8f3539f1999804ab2045cd762878ef02
7
+ data.tar.gz: 4a498dbb1231ec3a6162e86064956b00f198dc483be6838bf9b8236fa2573fac5b65f566f7ae71eaff50231f214b043a191790ef802a278135d3920e5360b54a
@@ -4,6 +4,23 @@ 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 (2020-02-25)
8
+
9
+ ##### Enhancements
10
+
11
+ * None.
12
+
13
+ ##### Bug Fixes
14
+
15
+ * Also apply Xcode 11 `XCTUnwrap` fix to library and framework targets that weakly link `XCTest`.
16
+ [Dimitris Koutsogiorgas](https://github.com/dnkoutso)
17
+ [#9518](https://github.com/CocoaPods/CocoaPods/pull/9518)
18
+
19
+ * Fix dSYM handling for XCFrameworks.
20
+ [Eric Amorde](https://github.com/amorde)
21
+ [#9530](https://github.com/CocoaPods/CocoaPods/issues/9530)
22
+
23
+
7
24
  ## 1.9.0.beta.3 (2020-02-04)
8
25
 
9
26
  ##### Enhancements
@@ -1,5 +1,5 @@
1
1
  module Pod
2
2
  # The version of the CocoaPods command line tool.
3
3
  #
4
- VERSION = '1.9.0.beta.3'.freeze unless defined? Pod::VERSION
4
+ VERSION = '1.9.0'.freeze unless defined? Pod::VERSION
5
5
  end
@@ -129,27 +129,29 @@ module Pod
129
129
  # Copies and strips a vendored dSYM
130
130
  install_dsym() {
131
131
  local source="$1"
132
+ warn_missing_arch=${2:-true}
132
133
  if [ -r "$source" ]; then
133
- # Copy the dSYM into a the targets temp dir.
134
+ # Copy the dSYM into the targets temp dir.
134
135
  echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \\"- CVS/\\" --filter \\"- .svn/\\" --filter \\"- .git/\\" --filter \\"- .hg/\\" --filter \\"- Headers\\" --filter \\"- PrivateHeaders\\" --filter \\"- Modules\\" \\"${source}\\" \\"${DERIVED_FILES_DIR}\\""
135
136
  rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
136
137
 
137
138
  local basename
138
- basename="$(basename -s .framework.dSYM "$source")"
139
- binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
139
+ basename="$(basename -s .dSYM "$source")"
140
+ binary_name="$(ls "$source/Contents/Resources/DWARF")"
141
+ binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
140
142
 
141
143
  # Strip invalid architectures so "fat" simulator / device frameworks work on device
142
144
  if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
143
- strip_invalid_archs "$binary"
145
+ strip_invalid_archs "$binary" "$warn_missing_arch"
144
146
  fi
145
147
 
146
148
  if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
147
149
  # Move the stripped file into its final destination.
148
150
  echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \\"- CVS/\\" --filter \\"- .svn/\\" --filter \\"- .git/\\" --filter \\"- .hg/\\" --filter \\"- Headers\\" --filter \\"- PrivateHeaders\\" --filter \\"- Modules\\" \\"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\\" \\"${DWARF_DSYM_FOLDER_PATH}\\""
149
- rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
151
+ rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
150
152
  else
151
153
  # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
152
- touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
154
+ touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
153
155
  fi
154
156
  fi
155
157
  }
@@ -180,13 +182,16 @@ module Pod
180
182
  # Strip invalid architectures
181
183
  strip_invalid_archs() {
182
184
  binary="$1"
185
+ warn_missing_arch=${2:-true}
183
186
  # Get architectures for current target binary
184
187
  binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
185
188
  # Intersect them with the architectures we are building for
186
189
  intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\\n' | sort | uniq -d)"
187
190
  # If there are no archs supported by this binary then warn the user
188
191
  if [[ -z "$intersected_archs" ]]; then
189
- echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
192
+ if [[ "$warn_missing_arch" == "true" ]]; then
193
+ echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
194
+ fi
190
195
  STRIP_BINARY_RETVAL=0
191
196
  return
192
197
  fi
@@ -212,7 +217,8 @@ module Pod
212
217
  install_framework "$artifact"
213
218
  ;;
214
219
  *.dSYM)
215
- install_dsym "$artifact"
220
+ # Suppress arch warnings since XCFrameworks will include many dSYM files
221
+ install_dsym "$artifact" "false"
216
222
  ;;
217
223
  *.bcsymbolmap)
218
224
  install_bcsymbolmap "$artifact"
@@ -259,6 +265,18 @@ module Pod
259
265
  SH
260
266
  script
261
267
  end
268
+
269
+ # @param [Xcode::FrameworkPaths] framework_path
270
+ # the framework path containing the dSYM
271
+ #
272
+ # @return [String, Nil] the name of the dSYM binary, if found
273
+ #
274
+ def dsym_binary_name(framework_path)
275
+ return nil if framework_path.dsym_path.nil?
276
+ if (path = Pathname.glob(framework_path.dsym_path.join('Contents/Resources/DWARF', '**/*')).first)
277
+ File.basename(path)
278
+ end
279
+ end
262
280
  end
263
281
  end
264
282
  end
@@ -136,7 +136,8 @@ module Pod
136
136
 
137
137
  install_xcframework() {
138
138
  local basepath="$1"
139
- local embed="$2"
139
+ local dsym_folder="$2"
140
+ local embed="$3"
140
141
  shift
141
142
  local paths=("$@")
142
143
 
@@ -165,6 +166,17 @@ module Pod
165
166
  fi
166
167
 
167
168
  install_framework "$basepath/$target_path" "$embed"
169
+
170
+ if [[ -z "$dsym_folder" || ! -d "$dsym_folder" ]]; then
171
+ return
172
+ fi
173
+
174
+ dsyms=($(ls "$dsym_folder"))
175
+
176
+ local target_dsym=""
177
+ for i in ${!dsyms[@]}; do
178
+ install_artifact "$dsym_folder/${dsyms[$i]}" "$CONFIGURATION_BUILD_DIR" "true"
179
+ done
168
180
  }
169
181
 
170
182
  SH
@@ -186,12 +198,6 @@ module Pod
186
198
  args = install_xcframework_args(xcframework.path, static_slices, true)
187
199
  contents_by_config[config] << %( install_xcframework #{args}\n)
188
200
  end
189
-
190
- dsyms = PrepareArtifactsScript.dsym_paths(xcframework.path)
191
- dsyms.each do |path|
192
- source = shell_escape("${PODS_ROOT}/#{path.relative_path_from(sandbox_root)}")
193
- contents_by_config[config] << %( install_artifact #{source} "${TARGET_BUILD_DIR}" "true"\n)
194
- end
195
201
  end
196
202
  end
197
203
 
@@ -215,6 +221,12 @@ module Pod
215
221
 
216
222
  def install_xcframework_args(root, slices, static)
217
223
  args = [shell_escape("${PODS_ROOT}/#{root.relative_path_from(sandbox_root)}")]
224
+ dsym_folder_arg = if (dsym_folder = PrepareArtifactsScript.dsym_folder(root))
225
+ shell_escape("${PODS_ROOT}/#{dsym_folder.relative_path_from(sandbox_root)}")
226
+ else
227
+ '""'
228
+ end
229
+ args << dsym_folder_arg
218
230
  embed = static ? 'false' : 'true'
219
231
  args << shell_escape(embed)
220
232
  slices.each do |slice|
@@ -229,14 +241,11 @@ module Pod
229
241
  #
230
242
  # @return [Array<Pathname>] all found .dSYM paths
231
243
  #
232
- def dsym_paths(xcframework_path)
244
+ def dsym_folder(xcframework_path)
233
245
  basename = File.basename(xcframework_path, '.xcframework')
234
246
  dsym_basename = basename + '.dSYMs'
235
247
  path = xcframework_path.dirname + dsym_basename
236
- return [] unless File.directory?(path)
237
-
238
- pattern = path + '*.dSYM'
239
- Dir.glob(pattern).map { |s| Pathname.new(s) }
248
+ Pathname.new(path) if File.directory?(path)
240
249
  end
241
250
  end
242
251
  end
@@ -992,7 +992,7 @@ module Pod
992
992
  library_xcconfig? &&
993
993
  target.platform.name == :ios &&
994
994
  Version.new(target.platform.deployment_target) < Version.new('12.2') &&
995
- frameworks_to_import.include?('XCTest')
995
+ (frameworks_to_import + weak_frameworks_to_import).uniq.include?('XCTest')
996
996
  end
997
997
 
998
998
  #-------------------------------------------------------------------------#
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.3
4
+ version: 1.9.0
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: 2020-02-04 00:00:00.000000000 Z
14
+ date: 2020-02-25 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.3
22
+ version: 1.9.0
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.3
29
+ version: 1.9.0
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: claide
32
32
  requirement: !ruby/object:Gem::Requirement