Files
tutti/apps/mobile/ios/cocoapods_pathname_workaround.rb
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

47 lines
1.6 KiB
Ruby

# CocoaPods intermittently fails while resolving pnpm-backed local Pod paths
# with `ArgumentError: pathname contains null byte`. Preserve CocoaPods'
# filesystem-group behavior without resolving those symlinks through
# Pathname#realdirpath.
module CocoaPodsPathnameWorkaround
def group_for_path_in_group(
absolute_pathname,
group,
reflect_file_system_structure,
base_path = nil
)
unless absolute_pathname.absolute?
raise ArgumentError, "Paths must be absolute #{absolute_pathname}"
end
unless base_path.nil? || base_path.absolute?
raise ArgumentError, "Paths must be absolute #{base_path}"
end
relative_base = base_path.nil? ? group.real_path : base_path.cleanpath
relative_pathname = absolute_pathname.relative_path_from(relative_base)
relative_dir = relative_pathname.dirname
if reflect_file_system_structure
path = relative_base
relative_dir.each_filename do |name|
break if name.to_s.downcase.include? '.lproj'
next if name == '.'
path += name
group = group.children.find { |child| child.display_name == name } ||
group.new_group(name, path)
end
end
if relative_dir.basename.to_s.downcase.include? '.lproj'
group_name = variant_group_name(absolute_pathname)
lproj_parent_dir = absolute_pathname.dirname.dirname
group = @variant_groups_by_path_and_name[[lproj_parent_dir, group_name]] ||=
group.new_variant_group(group_name, lproj_parent_dir)
end
group
end
end
Pod::Project.prepend(CocoaPodsPathnameWorkaround)