【问题标题】:Where are ${EXECUTABLE_NAME} and ${PRODUCT_NAME} defined${EXECUTABLE_NAME} 和 ${PRODUCT_NAME} 在哪里定义
【发布时间】:2012-02-02 03:15:44
【问题描述】:

我在哪里可以找到有关如何修改这些的信息

  • ${EXECUTABLE_NAME}
  • ${PRODUCT_NAME}

这些仅显示在 .plist 文件中,但实际值在哪里。

如果我们可以直接在 .plist 中修改我们想要的内容,为什么我们需要这些。

我是新手,这就是为什么我无法理解这些,我还查看了苹果信息属性列表键参考,但没有找到这些 ${} 值。

【问题讨论】:

  • 值得注意的是,如果您使用xcconfig,您可以通过命令行工具更改这些值。即您将它们设置为您想要的任何内容,然后归档并发布一个构建

标签: iphone objective-c ios xcode plist


【解决方案1】:

我认为 $ 代表变量 productName & executableName 因为 $ 在 unix 中使用。这些变量在应用程序的构建设置中设置。所以你不应该直接在 plist 文件中更改产品名称。相反,请转到构建设置,搜索产品名称并进行更改。

【讨论】:

  • 在构建设置中我只能看到产品名称其他可执行变量不存在
  • 值得注意的是,如果您使用xcconfig,您可以通过命令行工具更改这些值。即,您将它们设置为您想要的任何内容,然后归档并发布构建
【解决方案2】:

PRODUCT_NAMEPackaging 部分的目标Build Settings 中定义。默认情况下,它与您的项目同名。

编辑:

PRODUCT_NAME 默认是目标的名称(在本例中为MyDemoApp)。 EXECUTABLE_NAME 是以下内容的串联:

$EXECUTABLE_PREFIX$PRODUCT_NAME$EXECUTABLE_SUFFIX

详见EXECUTABLE_NAME的参考。

更新

新的参考可以在这里找到http://help.apple.com/xcode/mac/8.3/#/itcaec37c2a6

EXECUTABLE_NAME
指定目标生成的二进制文件的名称。

【讨论】:

  • Opps,我的Product Name 的默认值是$(TARGET_NAME),虽然它等于我的项目名称..
  • 那么 $(TARGET_NAME) 存储在哪里?
  • @Jim Thio:这是目标上的名称,您可以通过单击上面视图中的目标来更改。默认情况下,目标与项目具有相同的名称,因此在我的示例中,目标的名称也是“MyDemoApp”。
  • @Hercules 查看您的-Info.plist 文件,其中一些值已定义,因此无需打开 Xcode 即可更改
【解决方案3】:

Xcode ${<variable_name>} 语法

Xcode 变量可以定义在不同的级别,使用Resolved。你可以使用Build Settings -> Levels标签来管理它

所有变量都在Build Settings 中侦听。每个设置都有自己的声明

Product Name - PRODUCT_NAME

这些设置保存在buildSettings块中

<project_name>.xcodeproj/project.pbxproj

您可以使用搜索视图查找任何变量,并使用Help Inspector 查找声明和其他有用信息

Xcode 没有暴露一些设置

EXECUTABLE_NAME

但是您可以使用User-Defined Settings 获取甚至覆盖该值

reader_EXECUTABLE_NAME = $(EXECUTABLE_NAME)
EXECUTABLE_NAME = $EXECUTABLE_PREFIX$PRODUCT_NAME$EXECUTABLE_SUFFIX

[SWIFT_MODULE_NAME, PRODUCT_MODULE_NAME, PRODUCT_NAME, EXECUTABLE_NAME]

[TARGET_NAME]

【讨论】:

    【解决方案4】:

    特别是关于${PRODUCT_NAME} 是如何按顺序定义的:

    1. 最初默认为目标名称:$(TARGET_NAME)
    2. 您可以通过搜索产品名称在“构建设置”中重置它

    注意:如果任何值是从 ${PRODUCTS_NAME} 派生的,并且您将其更改为 some-constant-value,那么它将不再是计算值。

    例如如果您将CFBundleName 的值从其默认的${PRODUCT_NAME} 更改为My cool App,那么您的应用程序在跳板上的名称将显示为“我的酷应用程序”。它将不再显示为“无论您的目标名称是什么”

    【讨论】:

      猜你喜欢
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 2013-03-08
      • 1970-01-01
      • 2017-08-26
      • 2016-03-22
      • 2016-02-19
      相关资源
      最近更新 更多