问题标签 [build-settings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2384 浏览

ios - 断言在生产构建中被击中导致崩溃

我的项目中有几个assert(condition, "message")陈述。

它们用于在开发过程中检查不变条件。我认为它们会在生产/发布版本中被忽略(如本答案所述)。他们不是。相反,它们会在 TestFlight 测试期间导致崩溃。当我评论断言应用程序不会崩溃时。某些事情通常会出错,但不会崩溃。

这可能与我的构建设置有关吗?

我所有的存档方案都使用发布配置:

在此处输入图像描述

断言位于 Cocoa Touch Framework 项目中,用于自定义键盘扩展。

所有项目中的所有目标(Cocoa Touch Framework,以及带有键盘扩展目标的主项目)都有这些构建设置:

怎么了?


编辑:

Sulthan 的回答显示了如何为调试和发布版本全局禁用断言。那不是我需要的。我希望它按预期工作 - 断言应该在调试中启用,但在发布版本中禁用。

默认情况下,它以这种方式工作——它在我的主项目中也以这种方式工作。但它不适用于位于与该主项目链接的框架项目中的断言(此问题中的详细信息)。为什么?如何解决?

0 投票
1 回答
545 浏览

ios - 需要全屏不工作

在 Xcode 项目中,只有在输入以下代码后才能进入全屏视图,而不是简单地启用需要全屏。为什么?而且,我错过了什么吗?

0 投票
1 回答
274 浏览

swift - 如何防止自定义 init 方法在 Xcode 中显示绝对源路径?

在一个新的 Xcode 项目中,我以这种方式添加了一个带有自定义 init 方法的新类:

但是,如果我构建并存档项目,源文件的绝对路径会显示在二进制文件中:

我计划通过互联网分发我的最终项目。如何防止 Xcode 将我的目录布局透露给其他人?我从对类似问题的回答中了解到,在 Xcode 的“构建设置”中,应该将“部署 Prostprocessing”设置为“是”,以便从二进制文件中删除符号,但这在我的情况下似乎不起作用。

0 投票
1 回答
10203 浏览

ios - Xcode 不生成 dSYM 文件

在我的 iOS 项目中,我已将 .dYSM 文件设置Generate Debug SymbolsYes,但未在 DerivedData 文件夹中创建 .dYSM 文件。我在我的 iPhone 上运行这个应用程序。因为我需要它来映射它来做时间分析器,因为时间分析器显示了十六进制地址中的所有符号。这必须被象征性地识别花费时间的任务。

提前致谢。

0 投票
1 回答
80 浏览

unity3d - 如何在 unity3d 的构建设置中单独加载以前的级别

场景 05,场景 03,MEP_Desert,Snow_Scene_01,演示。当玩家死亡时,我需要回到那些级别。什么代码回到了我在构建设置中的上一个级别。我需要在其他关卡中再次重复此操作我将如何在构建设置中执行其他场景?

这是我的代码:

0 投票
3 回答
7867 浏览

ios - Xcode 8 找不到代码签名

升级到 Xcode 8 后,由于以下错误,我无法在设备上进行调试:

我的设置、观察结果以及到目前为止我所做的尝试:

  • 该设备已安装 iOS 10
  • Xcode 7 中设备上的代码签名和调试工作正常(代码签名没有更改)
  • 该应用程序有一个手表应用程序(没有手表应用程序的构建/运行没有改变任何东西)
  • 刷新配置文件,删除所有文件并重新下载它们并没有改变任何东西
  • 从构建设置中删除所有代码签名设置并启用“自动管理签名”,这也没有帮助
  • 我一直在清理构建文件夹
  • 我试过重启设备、xcode、mac
  • 我的同事在同一个项目中报告了同样的问题
  • 我尝试恢复 Xcode 8 建议的更改(构建设置,警告修复,...)
0 投票
0 回答
401 浏览

xcode8 - Xcode 8 升级后出现 ld 错误:“无法映射文件,errno=22”

我正在做一个我们已经进行了几年的项目。刚刚升级到 Xcode 8,现在无法构建测试(主要构建工作正常)。这是错误:

在输出中,我看到带有 -arch 标志的 clang 命令:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64

我不知道是什么导致使用 -arch 标志。我没有更改与架构(或其他任何内容)相关的构建设置中的任何内容。除了升级到 Xcode 8 并转换到 Swift 3 之外没有任何变化(整个项目中只有一个 Swift 文件,其余的是 Objective-c,但是那个 Swift 文件是测试项目中单元测试调用的那个) .

有谁知道 Xcode 8 中可能发生了什么变化导致这种情况?或者我该如何解决?

谢谢,

0 投票
0 回答
665 浏览

ios - 修改包含 iOS 应用程序的框架构建设置

我们开发了一个开源框架,可以使用各种预处理器标志来启用/禁用某些功能。至关重要的是,这些功能仅在(框架用户)实际需要时才编译,因为它们可能会影响 App Store 提交。在运行时配置功能不是一个选项。

该框架作为标准 iOS 框架出现,即它动态链接并嵌入到宿主应用程序中,因此有自己的构建设置,与宿主应用程序不同。

为了允许上述配置,框架项目使用xcconfig其根目录中的一个文件,该文件包含一个挂钩到框架目录之外的可选文件:

这允许用户在框架目录之外提供配置文件,例如,如果您使用 git 子模块,这很重要。

我们还提供了一个链接/嵌入框架的示例应用程序(通过 Xcode 子项目)并需要提供配置,但与框架位于同一目录/存储库中,因此无法使用挂钩。

任何有创意的想法如何解决这个问题?我们考虑过的几件事:

  • 将第二个钩子添加到框架目录/存储库中的路径,这不起作用,因为如果用户签出包含示例应用程序的框架,将始终使用示例应用程序的配置

  • 也许有一个环境变量可以用来检测宿主应用程序的源目录?类似的东西#include? "$(SRCROOT)/FrameWorkConfigurationFlags.xcconfig",但$(SRCROOT)不是框架的目录,而是主机应用程序的目录。似乎有特殊处理<DEVELOPER_DIR>,但我也不能在包含路径中使用一般环境变量。

  • 我们可以重构我们的示例应用程序以使用 CocoaPods 签出和嵌入框架,并忽略已经存在的本地副本,但我们不希望需要任何额外的技术来使用示例应用程序

  • 编写自定义构建脚本阶段...

0 投票
2 回答
3049 浏览

ios - xcode 使用 buildscript 添加嵌入式二进制文件

我从第三方获得了一个动态框架,由于缺少符号,它在链接器阶段无法在基于X86_64的架构上编译,我已经要求他们反复将此架构与他们的框架捆绑在一起,但他们直到现在才能够这样做.

现在我的问题如下,无论如何我都找不到使用构建设置添加阶段嵌入式二进制阶段,在构建/链接器过程中嵌入式二进制文件如何链接到应用程序?

我知道如果他们这样做,我可能不得不从框架中剥离拱门,但它胜过无法编译框架。

0 投票
0 回答
176 浏览

objective-c - Xcode 8 默认构建设置被破坏

使用 Xcode 7,一切都运行良好。例如,我能够成功构建和测试 Socket Rocket 项目。
在对 Xcode 8.1 进行更新后,我的所有项目都停止构建,因为默认构建设置已被更改或损坏。
例如,由于 ARC 现在已禁用,因此 Socket Rocket 无法构建(请注意,项目设置保持不变)。另一个我的项目因警告忽略函数的返回值而失败(我更喜欢设置-Werror,但已启用新警告等等)。

我可以逐个项目地修复构建设置,但工作量很大而且很烦人,但更大的问题是这会影响与我一起工作的其他开发人员,我更愿意避免这种情况。

所以我的问题是我该如何解决这个问题?如何更改(修复)用于我机器上所有项目的默认构建设置?

我的朋友确实更新了 Xcode(并使用了我遇到问题的同一个项目)并且没有遇到这个问题。显然,当我升级 Xcode 时出现了问题(没有报告错误)。

我在 Mac OS 和 iOS 上遇到了这个问题,在构建设置 Xcode 时显示levels,最右边的列名分别是macOS defaultiOS Default

在此处输入图像描述