【问题标题】:GoogleMobileAds (SWIFT) - Command failed due to signal : Segmentation fault: 11GoogleMobileAds (SWIFT) - 由于信号,命令失败:分段错误:11
【发布时间】:2016-11-23 17:47:51
【问题描述】:

我已经通过CocoaPods 添加了GoogleMobileAds,正如这里解释的那样:admob iOS quick start

我的代码如下所示:

import Firebase
import GoogleMobileAds
....
var interstitial: GADInterstitial!
  • 我已导入 Firebase 来解决此错误:Use of undeclared type 'GADInterstitial'。现在,这个错误消失了。但是...

每次我尝试编译时都会出现这个错误:

 Command failed due to signal : Segmentation fault: 11

清理和重新启动没有帮助。我在这个文件中没有任何其他导入,所以this answer 对我没有帮助。 我正在使用 pod 获取的最新版本的 adMob,因此将代码更改为 suggested here 似乎也不是正确的方向。 如何解决这个问题?

这是日志:

MergeSwiftModule 普通 x86_64 /Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/x86_64/Playbuzz.swiftmodule cd /Users/luda/Documents/Development/playbuzz.ios /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -emit-module /Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/x86_64/AppDelegate~partial.swiftmodule /Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/x86_64/QuizResult~partial.swiftmodule +++++++++++++++++++++++++++++++++++++++ I/Users/luda/Documents/Development/playbuzz.ios/Pods/Headers/Public/GoogleUtilities -Xcc -I/Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/DerivedSources/x86_64 -Xcc -I/Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DCOCOAPODS=1 -Xcc -working-directory/Users/luda/Documents/Development/playbuzz.ios -emit-module-doc-path /Users/luda/Library/Developer/Xcode/DerivedData /Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/x86_64/Playbuzz.swiftdoc -module-name Playbuzz -emit-objc-header-path /Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/ x86_64/Playbuzz-Swift.h -o /Users/luda/Library/Developer/Xcode/DerivedData/Playbuzz-cexhbhfyfhomayguuohivuzvrlzx/Build/Intermediates/Playbuzz.build/Debug-iphonesimulator/Playbuzz.build/Objects-normal/x86_64/Playbuzz。快速模块

  1. 在为 'ItemViewController' 加载成员时
  2. 在反序列化 decl #182 (PATTERN_BINDING_DECL) 时
  3. 反序列化 decl #21 (VAR_DECL) 时

【问题讨论】:

  • 尝试在Target Settings > Build Settings > Swift Compiler - Code Generation > Objective-C Bridging Header中包含“-Bridging-Header.h”
  • @Mrunal 正确包含桥接头,因为其他需要导入的文件都正常工作
  • 你能发布编译日志吗?
  • @sage444,我已经用日志更新了这个问题。 (由于它的大小,其中一些被省略了)
  • @Mrunal,这不会发生在我从头开始的空项目上。

标签: ios iphone swift admob iboutlet


【解决方案1】:

是的,这个问题困扰了我好几天……我终于通过启用整个模块优化找到了解决方案。这是一个解释如何操作的链接:

http://useyourloaf.com/blog/swift-whole-module-optimization/

祝你好运!

【讨论】:

  • 这与其说是一种解决方案,不如说是一种变通方法,因为调试可能会使 Xcode 崩溃(是的,Apple 从我这里得到了很多)。 (叹气)
【解决方案2】:

这个段错误发生在我们身上,因为我们在我们的一个开发 pod 中是 autogenerating a Core Data entity class but also including its manually generated source file。值得一提的是,虽然我们的错误信息是一样的,但我们没有使用 AdMob,启用全模块优化并没有为我们解决问题。

我们正在为各种内部库使用开发 pod。当我们在向其中一个开发 pod(称为 pod A)添加新的 Core Data 实体后尝试编译我们的主应用程序项目时,当 Xcode 构建依赖于 A 的 pod B 和 C 时,我们会得到“Segmentation fault: 11”。 Xcode 没有报告 pod A 本身的错误。运行 MergeSwiftModule 时发生构建 B 和 C 的错误。这是我们收到的堆栈跟踪的清理版本:

MergeSwiftModule normal x86_64 /Users/me/Library/Developer/Xcode/DerivedData/MyApp-xyz/Build/Intermediates/Pods.build/Debug-iphonesimulator/PodB.build/Objects-normal/x86_64/PodB.swiftmodule
cd /Users/me/Code/ios/MyApp/Pods
"/Applications/Xcode 8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift" -frontend -emit-module ... (long command omitted here)
0  swift                    0x00000001091bf3ad PrintStackTraceSignalHandler(void*) + 45
1  swift                    0x00000001091beb56 SignalHandler(int) + 790
2  libsystem_platform.dylib 0x00007fff9916552a _sigtramp + 26
3  libsystem_platform.dylib 000000000000000000 _sigtramp + 1726589680
4  swift                    0x00000001067cb996 swift::ModuleFile::getType(llvm::PointerEmbeddedInt<unsigned int, 31>) + 806
5  swift                    0x00000001067c4178 swift::ModuleFile::getDecl(llvm::PointerEmbeddedInt<unsigned int, 31>, llvm::Optional<swift::DeclContext*>) + 18664
6  swift                    0x00000001067cfb2c swift::ModuleFile::maybeReadPattern() + 332
7  swift                    0x00000001067cfece swift::ModuleFile::maybeReadPattern() + 1262
8  swift                    0x00000001067c2d82 swift::ModuleFile::getDecl(llvm::PointerEmbeddedInt<unsigned int, 31>, llvm::Optional<swift::DeclContext*>) + 13554
9  swift                    0x00000001067d44a7 swift::ModuleFile::loadAllMembers(swift::Decl*, unsigned long long) + 647
10 swift                    0x0000000106b6706a (anonymous namespace)::Traversal::visitNominalTypeDecl(swift::NominalTypeDecl*) + 314
11 swift                    0x0000000106b6501b (anonymous namespace)::Traversal::doIt(swift::Decl*) + 219
12 swift                    0x000000010651cc2f swift::SILPassManager::SILPassManager(swift::SILModule*, llvm::StringRef) + 1423
13 swift                    0x0000000106521cef swift::runSILDiagnosticPasses(swift::SILModule&) + 159
14 swift                    0x00000001061cbf7e performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) + 19758
15 swift                    0x00000001061c52b3 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 17859
16 swift                    0x00000001061815cf main + 8239
17 libdyld.dylib            0x00007fff956745ad start + 1
18 libdyld.dylib            0x0000000000000068 start + 1788394172
Stack dump:
0. Program arguments: /Applications/Xcode 8.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -emit-module ... (long command omitted here)

当我们单独打开 pod A 的项目文件并尝试编译它时,Xcode 抱怨我们有two references to the same filename。一旦我们通过将违规实体的 Codegen 设置设置为“Manual/None”来解决这个问题,当构建 pod A 的项目和整个主应用程序项目时,所有问题都神奇地消失了。

【讨论】:

    【解决方案3】:

    我在使用不同的 pod 时遇到了同样的问题。不幸的是,每次我清洁产品时,都是其他的豆荚。

    所以我只是逐个卸载了 pod,每次都让 x-code 清理产品并尝试运行应用程序(这很糟糕,因为这些 pod 正在使用中)。

    再次运行后,我安装了 pod(一步)——一切又好了。

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 2023-03-13
      • 2015-02-20
      • 2017-06-23
      • 2017-03-21
      相关资源
      最近更新 更多