【问题标题】:How can I run com.apple.tools.info-plist-utility?如何运行 com.apple.tools.info-plist-utility?
【发布时间】:2015-04-14 16:35:58
【问题描述】:

我正在使用 XCode 构建一个 iPhone 应用程序,我想以与下面显示的 XCode 构建步骤相同的方式从外部处理 info plist 文件

Processing /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist TestAppGen-Info.plist
mkdir /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app
cd /Users/kte/Projects/TestAppGen
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
<com.apple.tools.info-plist-utility> TestAppGen-Info.plist -genpkginfo /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/PkgInfo -expandbuildsettings -format xml -o /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist

此构建日志摘录引用了一个 com.apple.tools.info-plist-utility,它是我从网络上的各种来源收集的,是一个内部 XCode 实用程序。

是否可以从命令行运行 com.apple.tools.info-plist-utility?

【问题讨论】:

    标签: xcode build plist utility


    【解决方案1】:

    您可以使用名为 PlistBuddy 的工具,/usr/libexec/PlistBuddy,查看它的手册页。

    但您还需要将 plist 转换回二进制 plist 文件。这可以在构建脚本中像这样完成

    plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH"
    

    【讨论】:

      【解决方案2】:

      “plutil”答案是一个很好的开始。不幸的是,Xcode 构建过程对 Info.plist 文件的作用比将其转换为二进制文件更多,例如在我的系统上,它在字段中添加:

      -MinimumOSVersion
      -平台名称
      -CFBundleExecutable
      -SDK名称
      -CFBundleResourceSpecification
      -CFBundleSupportedPlatforms

      根据Apple documentation,您不应该自己设置其中一些值:

      最低操作系统版本

      MinimumOSVersion(字符串)。当你 构建一个 iPhone 应用程序,Xcode 注意目标操作系统(由 基本 SDK 选择)作为 MinimimOSVersion 属性。不要 在 Info.plist 文件;它是一个 系统写入的属性。当你 将您的应用程序发布到应用程序 商店,商店表示iPhone 您的应用程序所在的操作系统版本 可以基于此属性运行。这是 相当于 Mac 上的 LSMinimumSystemVersion 属性 操作系统。

      我在尝试重新签署我的应用程序作为自定义构建过程的一部分时遇到了各种问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        • 2017-06-01
        • 1970-01-01
        • 2018-12-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多