我们的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代码?如果可能,我在构建设置中做错了什么时候打破这个?
谢谢!
答案 0 :(得分:0)
简短回答:不。我相信你想做的事情是不可能的!需要为armv7重建第三方静态库。继续追捕他们,直到他们更新他们的图书馆。
答案 1 :(得分:0)
哦,我忘了我发布了这个问题......
最终我能够在所有iOS设备上进行调试,因为问题的根源既不在armv7-only库中,也不在我的项目/目标设置中。
问题在于我用来创建iOS的iOS Xcode模板" Framework"目标。 (旧版iOS Universal framework from Karl Stenerud)。
我们的代码库很大,它的许多主要块都服务于MacOS和iOS版本的应用程序,而且我们希望将这些主要块封装为" SDK" s,包括库,标题,资源和文件。所以---我们一直在使用Framework目标。由于没有内部"框架" iOS的目标模板 - 我们使用了第三方模板。
此模板用户构建脚本,它有一个错误,在某些情况下从构建中省略了平台,因此导致构建错误,并且无法调试。
最后一句话---模板的更新删除了这个问题。