尝试使用Xcode 8 Beta 3运行我的应用程序时出错。

3

我知道很多人在尝试编译他们的应用程序时,在Xcode 8 Beta 3中遇到了这个错误,然而这里提供的所有答案似乎都没有帮助到我。

当我试图运行我的应用程序时,我收到了通常的错误:(null): Found an unexpected Mach-O header code: 0x72613c21,并且当我展开信息时,我得到了以下返回结果:

Effective srcDirs: {(
    <DVTFilePath:0x6000008bb0c0:'/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos'>,
    <DVTFilePath:0x6080002a00c0:'/Applications/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/swift/iphoneos'>
)}
error: Found an unexpected Mach-O header code: 0x72613c21

注意:我在文件路径中看到了Swift_2.3的内容,这可能会得到一些答案,但我不确定。 另外也可能是我的Podfile出了问题,因此我按照这个StackOverflow答案中的说明,将以下代码行粘贴到我的podfile中,最终我的podfile如下所示:
# Uncomment this line to define a global platform for your project
platform :ios, '9.0'

target 'Roast' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

pod 'Firebase'
pod 'Firebase/Core'
pod 'Firebase/Database'
pod 'Firebase/Auth'
pod 'Firebase/AdMob'
pod 'JSQMessagesViewController'

  target 'RoastTests' do
    inherit! :search_paths
    # Pods for testing
  end

end

target 'RoastKeyboard' do
  # Comment this line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!
  pod 'Firebase'
  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'Firebase/Auth'

  # Pods for RoastKeyboard

end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO'
        end
    end
end

我更新了我的pods库。

然而,这实际上并没有起到任何作用。

这是一个非常烦人的错误,因为我刚刚花了两个小时修复我的代码中的错误,现在我得到了一个可能不是我的问题的错误。

如果有人能帮帮我,那就太好了。谢谢!


1
我也遇到了同样的错误。看起来是Crashlytics框架(以及可能还有其他框架)的问题。请记录一个雷达以优先处理此问题。同时,您可以选择不链接到有问题的框架,或者尝试非beta版本的Xcode。 - Mark
我也遇到了同样的错误。有没有解决这个烦人错误的方法? - fdlr
今天它也咬了我。建议的所有方法都对我无效。我没有使用Crashlytics。 - Tap Forms
@TapForms 是的,我尝试了所有方法,但是无法解决问题。我降级了Xcode和iOS版本,以确保目前稳定。本来想提前开始iOS 10开发,但现在看来不行了。 - Ahad Sheriff
1个回答

1

看起来这个问题已经在Xcode 8.0(beta 4)中得到解决。所以您不需要尝试以下内容。

问题似乎是由于Xcode混淆了工具链目录路径,当构建包括Swift和Objc头文件时。

修复的一种方法是:

  1. 修补SDK头文件以供编译器使用(愚蠢的东西不喜欢新的头文件!)或
  2. 使用旧的头文件(很好,但有些东西不再工作/存在相同的方式!)或
  3. 在您的Makefile中使用以下设置,以避免编译和链接期间出现警告和错误:

CC=/usr/bin/clang

CFLAGS=-fsigned-char -g -ObjC -fobjc-exceptions \ -Wall -Wundeclared-selector -Wreturn-type -Wnested-externs \ -Wredundant-decls \ -Wbad-function-cast \ -Wchar-subscripts \ -Winline -Wswitch -Wshadow \ -I/var/include \ -I/var/include/gcc/darwin/4.0 \ -D_CTYPE_H_ \ -D_BSD_ARM_SETJMP_H \ -D_UNISTD_H_

CPPFLAGS=
LD=$(CC)
LDFLAGS=-lobjc \ -F/System/Library/Frameworks \ -framework CoreFoundation \ -framework Foundation \ -framework UIKit \ -framework CoreGraphics \ -L/usr/lib -lc /usr/lib/libgcc_s.1.dylib \ -bind_at_load \ -multiply_defined suppress

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接