4

我们的 iOS 应用程序依赖于目前仅适用于 armv6+armv7 的商业第三方静态库。因此,我无法为 armv7s 构建我们的应用程序。只有armv6+armv7+模拟器。

我们的构建在 iPhone-5 上部署并运行没有问题 - 它运行 armv7 代码。

但是,我找不到直接在 iPhone 5 上调试的方法。当我连接 iPhone-5 并尝试构建以进行调试时,我收到如下链接器错误:

"No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7)."

最初,我认为可能是我的调试配置的“仅构建活动架构”设置导致 Xcode 在连接 iPhone-5 (armv7s) 时不尝试为 armv7 构建。

但是当我将其设置为“否”(始终为所有支持的架构构建 Xcode)时,我得到了一大堆其他构建错误(摘录如下 --- 我们有很多目标,每个目标都会发出类似的错误)。

=== BUILD NATIVE TARGET ASPCommon OF PROJECT ASPCommon WITH CONFIGURATION Debug ===
Check dependencies
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).

** BUILD FAILED **

The following build commands failed:
    Check dependencies
(1 failure)
Command /bin/sh failed with exit code 65

此目标没有依赖关系,它仅针对 iOS SDK 框架构建,并且在连接 iPad 4/iPhone 5 以外的任何设备时构建良好。

最后我的问题:是否可以直接在 armv7s 设备上调试 armv7 代码?如果可能的话,我什么时候在构建设置中做错来打破这个?

谢谢!

4

2 回答 2

0

简短回答:不。我相信您尝试做的事情是不可能的!第三方静态库需要为armv7s重建。继续追捕他们,直到他们更新他们的图书馆。

于 2014-05-22T15:15:06.807 回答
0

哦,我忘了我发布了这个问题……</p>

最终我能够在所有 iOS 设备上进行调试,因为问题的根源既不在 armv7-only 库中,也不在我的项目/目标设置中。

问题出在我用来创建 iOS“框架”目标的 iOS Xcode 模板中。(来自 Karl Stenerud 的旧版 iOS 通用框架)。

我们的代码库很大,它的许多主要块都服务于 MacOS 和 iOS 版本的应用程序,而且我们希望将这些主要块封装为“SDK”,包括库、标题、资源和文档。所以 --- 我们一直在为此使用框架目标。由于 iOS 没有内部“框架”目标模板 - 我们使用了第 3 方模板。

这个模板用户构建脚本,它有一个错误,在某些情况下从构建中省略了平台,因此导致我们的构建错误,并且无法调试。

最后一句话——模板的更新消除了这个问题。

于 2014-05-25T09:34:37.687 回答