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

Error while attempting to run my app using Xcode 8 Beta 3

我知道很多人在尝试在 Xcode 8 Beta 3 中编译他们的应用程序时遇到此错误,但是 none 这里的可用答案似乎对我有所帮助。

在尝试 运行 我的应用程序时,我遇到了常见的错误:(null): Found an unexpected Mach-O header code: 0x72613c21,当我扩展信息时,我在 return 中得到了这个:

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 有问题,所以我按照 this Whosebug answer 中发布的说明将以下代码行粘贴到我的 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。

然而,这实际上什么也没做。

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

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

看起来这个问题已在 Xcode 8.0 (beta 4). 中修复。所以你不需要尝试下面的东西。

问题似乎是 Xcode 与工具链目录路径混淆,当构建包括 swift 和 objc headers.

一种修复方法是

  1. 修补 SDK header 文件以便与编译器一起使用(愚蠢的东西 不喜欢新的 headers! ) 或
  2. 使用旧的 header 文件( 很棒,但有些东西 work/exist 不再一样了! ) 或
  3. 在 Makefile 中使用以下设置以避免警告和 编译和链接期间的错误:

CC=/usr/bin/clang

CFLAGS=-fsigned-char -g -ObjC -fobjc-exceptions \ -墙 -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\ -框架CoreFoundation \ -框架基础\ -框架 UIKit \ -框架CoreGraphics \ -L/usr/lib -lc /usr/lib/libgcc_s.1.dylib \ -bind_at_load\ -multiply_defined压制