Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode:项目设置与目标设置_Xcode_Settings_Target - Fatal编程技术网

Xcode:项目设置与目标设置

Xcode:项目设置与目标设置,xcode,settings,target,Xcode,Settings,Target,我正在为我们的一位客户在MacOSX上创建一个静态库,以及一个小型cmd行应用程序来测试静态库。cmd行项目有两个额外的库搜索路径,这意味着我在发布模式下链接到调试版本,几乎发疯了,所以我试图摆脱这两个路径,但我找不到它们的指定位置。我在查看项目信息,但结果发现它们是在目标信息中指定的 我不明白区别?!为什么有两套基本相同的设置?!有人能告诉我吗 一个项目可以包含多个目标。例如,我编写的一个应用程序有四个部分——应用程序本身、一个快速查看插件、一个框架和一个包含Mac OS 10.6特定功能的捆

我正在为我们的一位客户在MacOSX上创建一个静态库,以及一个小型cmd行应用程序来测试静态库。cmd行项目有两个额外的库搜索路径,这意味着我在发布模式下链接到调试版本,几乎发疯了,所以我试图摆脱这两个路径,但我找不到它们的指定位置。我在查看项目信息,但结果发现它们是在目标信息中指定的


我不明白区别?!为什么有两套基本相同的设置?!有人能告诉我吗

一个项目可以包含多个目标。例如,我编写的一个应用程序有四个部分——应用程序本身、一个快速查看插件、一个框架和一个包含Mac OS 10.6特定功能的捆绑包,这些功能可以动态加载

项目设置应用于项目中的每个目标。然后,如果需要,每个目标都可以覆盖单个设置—例如,我的项目的目标SDK设置为10.5,但特定于10.6的捆绑包将其目标SDK设置为10.6


在某些情况下,某些设置在项目设置中没有意义-我猜其中一个是搜索路径。

在一个项目中通常有多个目标-例如,您可能有一个框架项目,其中一个目标用于构建动态.framework包,另一个目标用于构建静态库。或者,您的应用程序可能有一个用于构建应用程序本身的目标,以及一个用于构建需要安装的帮助程序命令行工具的目标


只要可能,我建议在最高级别更改设置(在项目设置中,同时更改调试和发布配置),并且仅在必要时自定义目标设置。更好的是,将尽可能多的设置移到xcconfig文件中,这似乎是一种更明确的方式来指定构建设置。

前言:您可以发布目标。你的最终产品是目标。不是项目。将一个项目视为多个目标之上的保护伞

举一个更现实的例子,假设Uber和Lyft都是由your(伞形)公司开发的

公司有以下三个环境:

  • 调试
  • 质量保证
  • 释放
调试和发布配置随您创建的每个新项目一起提供。您可以创建任意数量的附加配置

这需要3种配置。要添加QA配置,请按照教程进行操作

我是否将此应用于目标或项目? 我把它应用到这个项目中

好的,所以配置只用于项目,不用于目标。对吗? 不对!我知道这让人困惑。您必须将项目视为一个大容器,在其中创建配置

然后针对每个目标(非项目),针对以下选项卡:

常规、资源标签、构建阶段、构建规则、信息:

不同的配置之间没有区别

签名和功能选项卡:

您可以在团队之间切换,并与其他团队签署。如果您希望使用企业证书签署测试版,但使用应用商店证书签署应用商店版本,则此选项非常有用

生成设置选项卡:

对于本节中的几乎每个变量,您都可以根据配置给出不同的值。要自定义的常见生成设置有:

  • 架构-“”
  • 生成选项“”
  • 包装
    • 设置每个配置所需的plist
    • 更改捆绑标识(打包>>产品捆绑标识)。如果为字段切换值,则在plist中您将看到:
  • 签字
    • 代码签名标识
    • 代码签名样式(手动或自动)
    • 开发团队
    • 配置配置文件
  • 苹果叮当声-优化级别
如果值不同,则行的值将为

<Multiple values>

基本上,您必须扩展该值,以查看为调试提供的值以及为发布或QA配置提供的值

如果所有的值都是相同的,那么您将只看到给定给它们的值。默认情况下,这些值是相同的

长话短说,这允许您在3个不同的环境(开发、质量保证、发布)中使用相同的代码(项目)拥有2个不同的应用程序(目标)。您可以使用配置创建不同的环境

要了解更多信息,我强烈建议您深入阅读更多信息,并了解什么是配置文件(xcconfig)。这比你想象的要简单得多。它主要是一个键值对:


推论问题:我应该如何将静态库包含到cmd行应用程序项目中?通过拖放到源文件列表中?或者从构建设置?@iKenndac,你能解释为什么“某些设置在项目设置中没有意义”?我在每个项目中只有一个目标,我仍然对设置搜索路径感到困惑。