我从命令行运行xcodebuild,经常更改PRODUCT_NAME以区分版本和服务器端点(即MyProduct.r1234staging)。这将建立几个相关的目标,这些目标是静态库,然后是最终应用程序。在命令的xcode 3版本中,PRODUCT_NAME仅影响最终产品,而不影响库。但是,现在似乎也正在为这些库设置这些名称(即,构建libMyProduct.r1234staging.a)。

这是预期的行为吗?

最佳答案

我如何解决这个问题:

  • 在build设置的用户定义部分下添加CUSTOM_BUNDLE_IDENTIFIER和CUSTOM_PRODUCT_NAME。
  • 使用CUSTOM_PRODUCT_NAME将.xcconfig文件添加到项目中,然后
    CUSTOM_BUNDLE_IDENTIFIER设置为标称值。
  • 在info.plist中,将产品名称设置为$ {CUSTOM_PRODUCT_NAME},并将捆绑包名称设置为$ {CUSTOM_BUNDLE_IDENTIFIER}。
  • 在build设置下将产品名称设置为$ {CUSTOM_PRODUCT_NAME}。

  • 当我想更改某些值时,我创建一个新的xcconfig文件,并使用xcodebuild的-xcconfig参数指定该xcconfig文件。这使您可以即时更改设置。

    关于xcodebuild PRODUCT_NAME参数会影响所有目标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5357066/

    10-13 07:03