此bounty已结束。此问题的答案有资格获得+50声望奖励。赏金宽限期20小时后结束。Terminator希望引起更多关注这个问题。
我读了链接:非法的选项-- f错误当我试图使用产品->存档在xcode..
我试图从source="$(readlink -f“${source}”)中删除“-f”标记...并得到Rsync错误:某些文件无法传输(代码23)
我试图添加这个代码到podfile,但它不工作
post_install do |installer|
installer.pods_project.targets.each do |target|
shell_script_path = "Pods/Target Support Files/#{target.name}/#{target.name}-frameworks.sh"
if File::exists?(shell_script_path)
shell_script_input_lines = File.readlines(shell_script_path)
shell_script_output_lines = shell_script_input_lines.map { |line| line.sub("source=\"$(readlink \"${source}\")\"", "source=\"$(readlink -f \"${source}\")\"") }
File.open(shell_script_path, 'w') do |f|
shell_script_output_lines.each do |line|
f.write line
end
end
end
end
**注意:**我使用的是mac m1,应用程序在模拟器上运行良好
2条答案
按热度按时间cygmwpex1#
您使用的是旧版本的macOS。
命令在我的系统上运行正常:
您可以尝试将脚本更改为使用显式路径
/usr/bin/readlink
,以防您选择了一些名为readlink的意外脚本。或者,您可以安装GNU readlink并使用它
58wvjzkj2#
您遇到的问题是因为macOS上的
readlink
命令不像Linux上那样支持-f
选项。Linux上的-f
选项用于通过解析所有符号链接来提供规范的绝对名称。通过使用
readlink
和realpath
的组合,可以在macOS上实现类似的效果。在这种情况下,您需要将readlink -f
替换为macOS中的等效命令,即readlink
和realpath
的组合。尝试以以下方式更改您的脚本:
替换:
有:
但是,请注意,
realpath
默认情况下并非适用于所有版本的macOS。如果您的机器上没有它,您可以使用Homebrew通过运行brew install coreutils
来安装它。安装coreutils后,您可以使用grealpath
作为realpath
的替代品。所以更新的行将是:
关于Podfile代码,您也需要进行类似的调整。用等效命令替换
-f
选项。希望这有助于解决您的问题。