我遇到了一个似乎是 Xcode 14.3 引入的错误,尽管它可能是由其他原因引起的。
在我的构建阶段中,我有一个名为“[CP] Embed Pods Frameworks”的阶段。这会调用一个名为 Pods-myapp-frameworks.sh 的脚本,当其中一个框架位于符号链接的文件夹中时,该脚本会失败。
构建日志中突出显示的文本显示了问题。它用相对于符号链接的路径来解析符号链接,需要绝对路径。
路径在脚本中的以下代码中解析(我的脚本副本中的第 42 - 45 行):
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
readlink默认为相对路径。添加 -f 使其输出成为绝对路径,一切都很好:
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink -f "${source}")"
fi
但是,这个脚本看起来像是已经生成的。我可以编辑它,并且在重建时它不会被覆盖,但我怀疑下次添加 Pod 或类似内容时我会回到原来的位置。
那么:这个脚本从哪里来?如果生成了,如何让它生成正确的 readlink 代码?这是 Xcode 中的错误还是我自己创建的错误?
更新至 CocoaPods 1.12.1 以获取修复。更多详情请访问 https://github.com/CocoaPods/CocoaPods/pull/11828
我已经解决了通过运行
sudo gem install cocoapods
将 cocoapods 更新到最新版本的问题。