在xCode 6中找到了一个意外的Mach-O头代码:1918975009

时间:2014-10-25 06:38:50

标签: ios xcode xcode6 mach-o

导致错误的原因

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

我将我的项目归档为ad hoc版本,并且建立/链接/存档就好了,但当我在xCode组织者并选择Export -> Ad Hoc时,

我收到错误

Found an unexpected Mach-O header code: 191897500. 

10 个答案:

答案 0 :(得分:35)

在我的情况下,我安装了Crashlytics,Fabric后出现了这个问题(“发现了一个意想不到的机器头代码0x72613c21”)。

不知何故pod似乎成为嵌入式二进制文件。所以我不得不将其删除,再次 pod install ,问题就消失了。

Remove pods from embedded binaries

答案 1 :(得分:33)

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

所以,选择你的目标,点击" Build Phases"选项卡,并查看"复制捆绑资源"列表以查看是否复制包含桌面体系结构的库或框架(i386或x86_64)。

最有可能的是,复制这样的文件是错误的,但如果由于某种原因你必须这样做,显然它只能包含iOS兼容的架构。

答案 2 :(得分:10)

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

:-1: <path>/Frameworks/<frameworkName>.framework/<frameworkName>: Failed to parse executable: Unknown header: 1918975009

切换回旧的非基于Swift的构建系统可以解决问题。不是最佳解决方案,但如果您发现类似的警告,将让您继续前进。

答案 3 :(得分:3)

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

作为一种解决方法,我发现我可以从命令行进行导出构建,它似乎有效:

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

此处&#34;配置资料的名称&#34;是Xcode中显示的配置文件的名称(不是配置文件的路径)

答案 4 :(得分:2)

转到BUILD PHASES - &gt; COPY BUNDLE RESOURCES,你会发现有一些框架。从此部分中删除并将其添加到LINK BINARY WITH LIBRARIES。 它会工作..

答案 5 :(得分:1)

有时,您应该看Build Phases - Embed Pods Frameworks。并找到shell文件。例如

Build Phases

并打开Pods-midea-common-adddevice_Example-frameworks.sh 看看这个文件是否有问题。

答案 6 :(得分:0)

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

就我而言,我通过复制现有目标创建了一个新目标。我已将名称从“MyApp-dev copy”更改为“MyApp-test”,但是,我忘了一件事......当您创建新目标时,还会创建一个新的.plist文件。我忘了重命名该文件,然后将其链接回我新创建的目标。

一旦我这样做了,问题就消失了。我最初一直在阅读Agner Fog's vector library的目标,然后通过该页面来帮助我解决问题。

答案 7 :(得分:0)

在我的案例中解决了问题

构建阶段 - &gt;复制捆绑资源以获取不存在的框架或其他二进制文件

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

编辑:当我从Copy Bundle Resources中删除此二进制文件时,可以构建,存档项目,传递给验证并发送到App Store。但是,当我运行该项目时,它失败了。所以,如果我从Copy Bundle Resources中删除,而不是添加到Link Binary With Library部分(我们选择“Add other”,而不是按cmd + shift + g组合去你的包或二进制文件)它已经解决了。

答案 8 :(得分:0)

要将结构或崩溃性添加到项目中,在将框架拖动或添加到项目文件夹或Xcode时,请在需要时保留“复制项目”。框未选中。enter image description here

答案 9 :(得分:0)

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

AFAIK如果.framework中的二进制图标为白色,则可以检查框架是否为静态框架;如果图标为黑色,则为动态框架。