2016-07-20 10 views
3

I GoogleMobileAds über CocoaPods hinzugefügt haben, wie es hier erklärt wurde:GoogleMobileAds (SWIFT) - Befehl fehlgeschlagen aufgrund Signal: Segmentation fault: 11

import Firebase 
import GoogleMobileAds 
.... 
var interstitial: GADInterstitial! 
    : admob iOS quick start

    Mein Code sieht wie folgt aus

  • Ich habe Firebase importiert, um diesen Fehler zu beheben: Use of undeclared type 'GADInterstitial'. Jetzt ist dieser Fehler weg. aber ...

Ich habe diesen Fehler jedes Mal, wenn ich zu kompilieren versuchen:

Command failed due to signal : Segmentation fault: 11 

Reinigung und Neustarten ist nicht zu helfen. Ich habe keine anderen Importe in dieser Datei, also hilft mir this answer nicht. Ich verwende die neueste Version von AdMob, die von Pods geholt wird, so dass die Änderung des Codes suggested here nicht als die richtige Richtung erscheint. Wie kann das behoben werden? Hier

ist das Protokoll:

MergeSwiftModule normal 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.swiftmodule

  1. While loading members for 'ItemViewController' at
  2. While deserializing decl #182 (PATTERN_BINDING_DECL)
  3. While deserializing decl #21 (VAR_DECL)
+0

Versuchen Sie " -Bridging-Header.h" in den "Zieleinstellungen> Buildeinstellungen> Swift Compiler - Codegenerierung> Objective-C Bridging Header" – Mrunal

+0

@Mrunal der Bridging-Header ist ordnungsgemäß enthalten, wie andere Dateien, die benötigt werden importiert zu werden funktioniert einwandfrei – Luda

+1

Können Sie bitte Compilation Log posten? – sage444

Antwort

4

Ja diese Frage mich immer für Tage ... Ich fand schließlich die Lösung durch Aktivierung gesamte Modul-Optimierung. Hier ist ein Link, der erklärt, wie man:

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

Viel Glück!

+0

Danke Mann !!! Es hat endlich funktioniert! – Luda

+0

Dies ist eher eine Lösung als eine Lösung, da das Debuggen Xcode zum Absturz bringen kann (ja, Apple hat eine Menge davon von mir). (seufzt) –

+0

Funktioniert nicht für mich. – developermike

0

Dieser segfault trat für uns auf, weil wir autogenerating a Core Data entity class but also including its manually generated source file in einer unserer Entwicklungseinheiten waren. Für das, was es wert ist, obwohl unsere Fehlermeldung die gleiche war, verwenden wir AdMob nicht und das Aktivieren der Optimierung für ganze Module hat das Problem für uns nicht gelöst.

Wir verwenden Entwicklungseinheiten für eine Vielzahl von internen Bibliotheken. Als wir versuchten, unser Haupt-App-Projekt zu kompilieren, nachdem wir einem unserer Entwicklungs-Pods ein neues Core Data-Objekt hinzugefügt hatten (nennen wir Pod A), erhielten wir "Segmentation fault: 11", während Xcode die Pods B und C aufbaute. Xcode hat von Pod A selbst keine Fehler gemeldet. Die Fehler, die B und C erstellen, traten auf, wenn MergeSwiftModule ausgeführt wurde. Hier ist eine aufgeräumte Version der Stack-Trace wir erhalten:

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) 

Wenn wir pod A Projektdatei einzeln geöffnet und versucht, es zu kompilieren, beschwerte sich Xcode, dass wir two references to the same filename hatte. Sobald wir das Problem behoben haben, indem wir die Codegen-Einstellung für die anstößige Entität auf "Manuell/Keine" gesetzt haben, verschwanden alle Probleme auf magische Weise, wenn sowohl das Projekt von Pod A als auch das Haupt-App-Projekt als Ganzes erstellt wurden.