文件是通用的(三个切片),但它不包含在iOS上的静态库的(n)ARMv7-s切片错误,无论如何绕过?

我升级了Xcode版本,当使用外部静态库时,我得到这个消息:

ld:文件是通用的(3片),但不包含(n)armv7s片断:/ file / location用于架构armv7s clang:错误:linker命令失败,退出代码1(使用-v来查看调用)

如果图书馆的开发者还没有更新他们的图书馆,是否有任何方法可以绕过这一点,并添加对图书馆的支持?

如果你想删除对任何体系结构的支持,例如ARMv7-s ,请使用菜单Project – > Build Settings – >从“有效体系结构”中删除体系结构。

您可以使用此作为临时解决scheme,直到库已更新。 您必须从主项目中删除架构,而不是从库中删除。

或者,您可以将您的debuggingconfiguration的“Build Active Architecture Only”标志设置为Yes。 将版本configuration的“Build Active Architecture Only”保留为“否”,只有在发布之前,您才能获得提醒,以便升级正在使用的任何第三方库。

我只是简单地在目标的构build设置中将“仅构build活动架构”切换为“是”,现在就可以了!

尝试从项目的“有效架构”中删除armv7s以解决iOS 5.1手机的这个问题

我只是在这里发布了一个修复,在这种情况下也适用 – 基本上,你在外部库中做了一个hex的查找和replace,以使它认为它是ARMv7的代码。 您应该可以使用lipo将其分解为3个静态库,复制/修改ARMv7,然后再次使用lipo为所有4个体系结构组装一个新库。

Flurry支持iPhone 5(ARMv7s)正如我在昨天的post中提到的那样,Flurry在星期三公布之后立即开始研究iOS SDK的一个版本,以支持新iPhone 5中的ARMv7s处理器。

我很高兴地告诉你,这项工作已经完成,SDK现在可以在网站上find。

使用菜单Project – > Build Settings – >

然后从“有效的体系结构”中删除armv7s。 如果标准已被select,然后删除,然后添加armv7。

如果这发生在某人身上。 我build立了我自己的库,使用第三方代码。 当我构build它来交付,我不小心留下了我的iPhone 4S插入,所以Xcodebuild立我的库只为插入式架构,而不是下面的项目设置。 删除任何插入的设备,重build图书馆,链接,你应该没问题。

希望它有帮助。

在我的情况下,我链接到一个有点旧的第三方库(在iOS 6上开发,在XCode 5 / iOS 7上)。 因此,我不得不更新第三方库,做一个清洁和生成,现在它成功地build立。