导致错误的原因
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.
答案 0 :(得分:35)
在我的情况下,我安装了Crashlytics,Fabric后出现了这个问题(“发现了一个意想不到的机器头代码0x72613c21”)。
不知何故pod似乎成为嵌入式二进制文件。所以我不得不将其删除,再次 pod install ,问题就消失了。
答案 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文件。例如
并打开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)
答案 9 :(得分:0)
检查是否未在目标的“常规”选项卡的““嵌入式二进制文件””部分中嵌入静态框架。
AFAIK如果.framework中的二进制图标为白色,则可以检查框架是否为静态框架;如果图标为黑色,则为动态框架。