Ios 在xCode 6中发现意外的Mach-O标头代码:1918975009

Ios 在xCode 6中发现意外的Mach-O标头代码:1918975009,ios,xcode,xcode6,mach-o,Ios,Xcode,Xcode6,Mach O,错误的原因是什么 Found an unexpected Mach-O header code: 1918975009 in xCode 6 Found an unexpected Mach-O header code: 191897500. 我归档了我的项目,以作为一个ad hoc构建发送,它构建/链接/归档很好,但当我在xCode管理器中并选择Export->ad hoc时 我得到了错误 Found an unexpected Mach-O header code: 191897500

错误的原因是什么

Found an unexpected Mach-O header code: 1918975009 in xCode 6
Found an unexpected Mach-O header code: 191897500. 
我归档了我的项目,以作为一个
ad hoc
构建发送,它构建/链接/归档很好,但当我在
xCode
管理器中并选择
Export->ad hoc

我得到了错误

Found an unexpected Mach-O header code: 1918975009 in xCode 6
Found an unexpected Mach-O header code: 191897500. 

我也犯了同样的错误。在我的例子中,它是由一个通用框架引起的,我不小心将它复制到了应用程序的资源中(这是不必要的,因为框架直接合并到iOS AFAIK上的主可执行文件中)

因此,选择您的目标,单击“构建阶段”选项卡,并查看“复制捆绑资源”列表,查看是否复制包含桌面体系结构(i386或x86_64)的库或框架


很可能,复制这样的文件是错误的,但如果出于某种原因,您必须这样做,显然它只能包含与iOS兼容的体系结构。

我也遇到过同样的错误,无法将其跟踪到复制包资源中的库/框架,或者库的版本不正确

作为一种解决方法,我发现我可以从命令行执行导出构建,而且它似乎可以工作:

xcodebuild -exportArchive -exportFormat ipa \
-archivePath /path/to/app.xcarchive/ \
-exportPath /path/to/app.ipa \
-exportProvisioningProfile "Name of provisioning profile"

这里的“配置文件名”是在Xcode中显示的配置文件名(不是配置文件的路径)

我也遇到了这个问题,我能够解决它

在我的例子中,我通过复制现有目标创建了一个新目标。我已经把名字从“MyApp开发副本”改为“MyApp测试”,但是,我忘了一件事。。。创建新目标时,还会创建一个新的.plist文件。我忘了重命名那个文件,然后将它链接回我新创建的目标

一旦我这样做了,问题就消失了。我最初是在阅读有关目标的文章,而回过头来浏览该页有助于我解决问题。

在我的案例中,这个问题(“发现意外的mach-o头代码0x72613c21”)出现在我安装Crashlytics、Fabric之后

不知怎的,豆荚似乎变成了一个嵌入式二进制文件。所以我不得不再次删除它,pod安装,问题就消失了


解决了我的问题

构建阶段->复制不应该存在的框架或其他二进制文件的捆绑资源

我删除了TwitterKit和DigitKit二进制文件


编辑:当我从复制包资源中删除这个二进制文件时,可以构建、归档、传递到验证,还可以发送到应用商店。但是当我运行这个项目时,它失败了。因此,如果我从复制捆绑资源中删除,然后添加到链接二进制文件与库部分(我们选择“添加其他”,然后按cmd+shift+g组合键转到捆绑文件或二进制文件的位置),问题就解决了。

转到构建阶段->复制捆绑文件资源,您会发现有一些框架。从本节中删除,并将其添加到将二进制文件链接到库中。
有时,您应该查看
构建阶段
-
嵌入Pods框架
。并找到shell文件。例如

并打开
Pods-midea-common-adddevice\u Example-frameworks.sh

查看此文件是否有问题。

若要在项目中添加fabric或crashlytics,在将框架拖动或添加到项目文件夹或Xcode时,请保持“根据需要复制项目”框未选中。

在Xcode 9.3中的新Swift构建系统(在“工作区设置”下)出现类似错误。1918975009在手动添加的第三方框架上(不使用Cocoapods)。可能与上面的线程有关,以防它对任何人都有帮助。。。这是在昨天正式发布后升级到Xcode 9.3之后才出现的。新构建系统上的Xcode 9.2和更早版本没有抛出警告

:-1: <path>/Frameworks/<frameworkName>.framework/<frameworkName>: Failed to parse executable: Unknown header: 1918975009
:-1:/Frameworks/.framework/:无法分析可执行文件:未知头:1918975009

切换回旧的非基于Swift的构建系统解决了这个问题。不是最佳解决方案,但如果您看到类似的警告,将允许您暂时继续。

检查您是否未在目标的“常规”选项卡的“嵌入式二进制文件”部分嵌入静态框架


好的,如果.framework中的二进制图标是白色的,那么你可以检查框架是否是静态的,如果图标是黑色的,那么它就是一个动态框架

@YohanesKhosiawan许先汉对我在项目中使用了错误的框架版本。一旦我将其切换到非桌面版本,问题就得到了解决。这也是由于在构建设置中将任何Mach-O设置设置为“Static”而遇到的。我在MoPub框架中得到了这一点。还有其他建议吗?如何查看该框架是否包含桌面架构?您好,我收到了关于添加GoogleMaps.Bundle以复制捆绑资源的GoogleMaps警告。如何解决此问题?由于在构建设置中将任何Mach-O设置设置为“静态”,因此也会遇到此问题。您是否将您的项目链接到某个iOS通用框架目标?这是为我准备的!非常感谢您发布这篇文章!在我的案例中效果很好(从pod安装面料)+很棒!在我的案例中(从pod安装Fabric)效果很好。我在
嵌入式二进制文件中添加了一个框架,但我可以删除它。我需要嵌入
的框架。还有其他想法吗?我不使用吊舱,但问题是一样的。我从嵌入的二进制文件中删除了Crashlytics和Fabric,并将它们仅保存在链接的框架和二进制文件中。这很有效,谢谢。对我来说很有效,但为什么?我不懂这种方法。如果您在testflight中共享,或者更重要的是,如果它被发送到appStore。风险是什么?它运行正常吗?自从升级到Xcode 9.3后,我也遇到了同样的问题,但切换回旧的构建系统并不是我想要的解决方案。有人有其他想法吗?我有同样的问题,因为我已经更新到Xcode 9.3。我想用swift 4.1构建该框架的新版本会有所帮助。虽然因为它是第三方框架,我不能测试,直到我得到升级