Skip to content

Commit f42d797

Browse files
Fix for CocoaPods 1.10.0 (#2)
Co-authored-by: alexander-vorobyev-corp-mail <[email protected]>
1 parent 7aa1880 commit f42d797

File tree

1 file changed

+75
-1
lines changed

1 file changed

+75
-1
lines changed

lib/cocoapods-binary/Integration.rb

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,4 +286,78 @@ class EmbedFrameworksScript
286286
end
287287
end
288288
end
289-
end
289+
end
290+
291+
module Pod
292+
module Generator
293+
class CopydSYMsScript
294+
old_method = instance_method(:generate)
295+
define_method(:generate) do
296+
script = old_method.bind(self).()
297+
script = script.gsub(/-av/, "-r -L -p -t -g -o -D -v")
298+
end
299+
end
300+
end
301+
end
302+
303+
module Pod
304+
module Generator
305+
class CopyXCFrameworksScript
306+
old_method = instance_method(:script)
307+
define_method(:script) do
308+
script = old_method.bind(self).()
309+
script = script.gsub(/-av/, "-r -L -p -t -g -o -D -v")
310+
end
311+
end
312+
end
313+
end
314+
315+
Pod::Installer::Xcode::PodsProjectGenerator::PodTargetInstaller.define_singleton_method(:dsym_paths) do |target|
316+
dsym_paths = target.framework_paths.values.flatten.reject { |fmwk_path| fmwk_path.dsym_path.nil? }.map(&:dsym_path)
317+
dsym_paths.concat(target.xcframeworks.values.flatten.flat_map { |xcframework| xcframework_dsyms(xcframework.path) })
318+
dsym_paths.uniq
319+
end
320+
321+
module Pod
322+
class Installer
323+
class Xcode
324+
class PodsProjectGenerator
325+
class PodTargetIntegrator
326+
old_method = instance_method(:add_copy_xcframeworks_script_phase)
327+
define_method(:add_copy_xcframeworks_script_phase) do |native_target|
328+
script_path = "${PODS_ROOT}/#{target.copy_xcframeworks_script_path.relative_path_from(target.sandbox.root)}"
329+
330+
input_paths_by_config = {}
331+
output_paths_by_config = {}
332+
333+
xcframeworks = target.xcframeworks.values.flatten
334+
335+
if use_input_output_paths? && !xcframeworks.empty?
336+
input_file_list_path = target.copy_xcframeworks_script_input_files_path
337+
input_file_list_relative_path = "${PODS_ROOT}/#{input_file_list_path.relative_path_from(target.sandbox.root)}"
338+
input_paths_key = UserProjectIntegrator::TargetIntegrator::XCFileListConfigKey.new(input_file_list_path, input_file_list_relative_path)
339+
input_paths = input_paths_by_config[input_paths_key] = []
340+
341+
framework_paths = xcframeworks.map { |xcf| "${PODS_ROOT}/#{xcf.path.relative_path_from(target.sandbox.root)}" }
342+
input_paths.concat framework_paths
343+
344+
output_file_list_path = target.copy_xcframeworks_script_output_files_path
345+
output_file_list_relative_path = "${PODS_ROOT}/#{output_file_list_path.relative_path_from(target.sandbox.root)}"
346+
output_paths_key = UserProjectIntegrator::TargetIntegrator::XCFileListConfigKey.new(output_file_list_path, output_file_list_relative_path)
347+
output_paths_by_config[output_paths_key] = xcframeworks.map do |xcf|
348+
"#{Target::BuildSettings::XCFRAMEWORKS_BUILD_DIR_VARIABLE}/#{xcf.name}"
349+
end
350+
end
351+
352+
if xcframeworks.empty?
353+
UserProjectIntegrator::TargetIntegrator.remove_copy_xcframeworks_script_phase_from_target(native_target)
354+
else
355+
UserProjectIntegrator::TargetIntegrator.create_or_update_copy_xcframeworks_script_phase_to_target(
356+
native_target, script_path, input_paths_by_config, output_paths_by_config)
357+
end
358+
end
359+
end
360+
end
361+
end
362+
end
363+
end

0 commit comments

Comments
 (0)