我可以直接在仅为armv6和armv7构建的iPhone-5(armv7s)iOS应用程序上进行调试吗?

时间:2013-05-06 07:22:40

标签: iphone ios debugging build

我们的iOS应用程序依赖于目前仅适用于armv6 + armv7的商业第三方static-lib。出于这个原因,我无法为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构建。

但是当我将其设置为“NO”(一直为所有支持的架构构建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代码?如果可能,我在构建设置中做错了什么时候打破这个?

谢谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

哦,我忘了我发布了这个问题......

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

问题在于我用来创建iOS的iOS Xcode模板" Framework"目标。 (旧版iOS Universal framework from Karl Stenerud)。

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

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

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