【问题标题】:iOS build script fails on defaults read commandiOS 构建脚本在默认读取命令上失败
【发布时间】:2021-10-04 06:37:51
【问题描述】:

我有一个带有构建阶段脚本的 iOS 应用程序,它使用以下命令读取 plist 文件:

defaults read "/full/path/to/plist/file" CFBundleExecutable

...但它失败并显示以下错误消息:

The domain/default pair of (/full/path/to/plist/file.plist, CFBundleExecutable) does not exist

文件的完整路径是正确的,我仔细检查了文件确实包含密钥CFBundleExecutable。我还尝试了其他键,例如CFBundleName。在完整路径的末尾运行带有和不带有.plist 的命令均失败。

我还在终端中运行了该命令以查看它是否正常工作,但该命令在那里也失败了。

【问题讨论】:

    标签: ios xcode bash macos build


    【解决方案1】:

    事实证明,macOS(或defaults 命令行工具)似乎有一个错误。 “特殊”文件夹,例如 DocumentsDesktop 在命令行环境中的行为不同,因此我观察到以下情况:

    • 如果 Info.plist 位于 DesktopDocuments 的子文件夹中,defaults read 命令将失败
    • 只要将Info.plist 放入任何其他文件夹(例如Developer 文件夹),相同的defaults read 命令就会成功

    我不确定这是因为这两个文件夹都需要特殊权限(macOS 会询问应用程序是否请求访问其中任何一个),还是因为它们是 iCloud Drive 的一部分,并且可能存在后台有一些奇怪的符号链接。

    无论哪种方式,如果您遇到类似的错误,只需尝试将您的项目放在~/Developer 的子文件夹中(或任何其他非默认、非特殊文件夹)。

    【讨论】:

      猜你喜欢
      • 2021-08-03
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2020-03-16
      • 2018-02-18
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多