Fehler nach dem Update auf Xcode 8: "Kein solches Modul" und "Ziel überschreibt die Build-Einstellung" EMBEDDED_CONTENT_CONTAINS_SWIFT ""

69

Ich bekomme No such modulePods, wenn ich versuche, das Projekt zu erstellen. Wenn ich den Code entferne, der diesen Pod erwartet, wird für einen anderen Pod ein anderes "Kein solches Modul" angezeigt, was bedeutet, dass jeder Pod betroffen sein muss. Wenn ich tippe, pod installerhalte ich folgende Meldungen:

[!] The X target overrides the `EMBEDDED_CONTENT_CONTAINS_SWIFT` build setting defined in `X’. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.

[!] The `X` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `X'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.

Ich bekomme jede dieser Versionen sowohl für die Debug- als auch für die Release-Version meiner App und für die beiden Tests, also insgesamt 12 Nachrichten.

Ich habe Always Embed Swift Standard Librariesund EMBEDDED_CONTENT_CONTAINS_SWIFTzu NOund YESbeides in meinen Build-Einstellungen festgelegt und dies hat nichts bewirkt. Ich habe meinem Podfile auch den folgenden Code hinzugefügt und es hat auch nicht funktioniert:

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
Fragesteller
quelle
Verwenden Sie die $(inherited)Flagge wie von den CocoaPods vorgeschlagen
kye

Antworten:

145
[!] The `X` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `X'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or
- Remove the build settings from the target.

Ich hatte dieses Problem heute getroffen. Ich habe es gelöst durch

  1. Gehen Sie zu Projekt / Ziele -> [Projektname] -> Build-Einstellungen.
  2. Suche "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES"
  3. Klicken Sie rechts neben Debuggen und wählen Sie "Andere". Geben Sie "$ (geerbt)" ein.
  4. Machen Sie dasselbe mit 'Release' und installieren Sie Ihren Pod

Sie können dem Bild unten folgen.


Geben Sie hier die Bildbeschreibung ein

Stark
quelle
2
Ich habe versucht, dies zu tun, aber Fehler "kein solches Modul" erscheint immer noch
Nahouto
1
Dies funktionierte für mich, um die Pod-Installation / -Update zu beheben. Xcode (8) gab dann jedoch eine Warnung aus, um die Einstellungen zu aktualisieren und die Änderungen rückgängig zu machen.
AWebster
10
Ich bekomme immer No - $(inherited) ich kann es nicht so einstellen YES- $(inherited)wie im Screenshot
Chlebta
1
Dies hat bei mir funktioniert: Die Pod-Installation generiert keine Warnung mehr. Ich habe es für meine beiden Zieleinstellungen getan. App und Tests. Ich habe es für die Projekteinstellungen nicht gemacht.
Verticon
3
@Chlebta, das ist mir auch passiert, aber es lag daran, dass ich das $(inherited)unter dem ProjectAbschnitt und nicht unter dem TargetsAbschnitt eingestellt habe (wie im Schnappschuss in der Liste Projekte & Ziele gezeigt). Nachdem ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIESCocoapods nicht die richtige Variable eingestellt hatten, warnten sie mich immer noch.
uɥƃnɐʌuop
21

Die Fehler, die Sie beim Ausführen sehen, pod installsollten die No such moduleFehler nicht verursachen . Ich vermute also, dass diese Fehler nichts miteinander zu tun haben.


Um das loszuwerden pod install beseitigen Sie Fehler:

Dies liegt daran, dass Sie in Ihren Build-Einstellungen ein Flag definieren, das das von CocoaPods festgelegte Flag überschreibt. Es spielt keine Rolle, ob Sie es auf YESoder setzen NO, die Einstellung von CocoaPods wird dennoch überschrieben.

Um dies zu beheben:

  1. Gehen Sie zu Projekt / Ziele -> [Projektname] -> Build-Einstellungen.
  2. Finden und Sie die entsprechende Einstellung klicken Sie darauf (Sie können das Suchfeld in der oberen rechten Ecke verwenden).
  3. Drücken Sie Backspace , um die Einstellung zu entfernen.

Sie sollten die Einstellung von sehen fett zu normal wechselt. Dies bedeutet, dass die Einstellung gelöscht wurde und stattdessen einen Standardwert verwendet.

Wiederholen Sie diesen Vorgang für jedes Flag, bei dem ein Fehler auftritt, und führen Sie ihn erneut aus pod install, um zu überprüfen, ob er funktioniert hat.


Gründe für No such moduleFehler:

Es gibt verschiedene Möglichkeiten, wie dieser Fehler auftreten kann. Haben Sie sich diese Antworten angesehen, um festzustellen, ob sie für Ihren Fall zutreffen? Wenn Sie darüber berichten, ist es einfacher, Ihnen zu helfen.

  1. Xcode: Fehler "Kein solches Modul", aber das Framework ist vorhanden
  2. "Kein solches Modul" auf Xcode 7 Beta 2
Askielboe
quelle
5

(Aktualisiert am 29. Juli 2018)

  1. Projekte / Ziele -> Projektname -> Build-Einstellungen
  2. Build-Optionen
  3. Klicken Sie auf Swift Standard Libraries immer einbetten , damit es hervorgehoben wird
  4. Drücken Sie die Löschtaste auf Ihrer Tastatur

Die Always Embed Swift-Standardbibliotheken sollten nicht mehr fett gedruckt sein , und Sie erhalten diese Warnung nicht mehr, wenn Sie Pod-Updates oder Pod-Installationen durchführen =)

BennyTheNerd
quelle
1
Danke, es hat funktioniert, aber es wird keine anderen Funktionen beeinträchtigen, oder?
Ariven Nadar
@ArivenNadar, nein, nicht, dass ich weiß
BennyTheNerd
1
07/10/2017, Diese Lösung funktionierte für mich in einem gemischten Swift / Obj C-Projekt / Pods
1
Ich erhalte immer noch Warnungen 2017/10/23 .... Damit dies funktioniert, müssen Sie alle Ziele durchgehen und sicherstellen, dass sie nicht alle fett sind. Dies schließt auch Test ein.
user805981
3

Das habe ich für mich gearbeitet:

pod deintegrate || rm -rf Pods
pod install --verbose
rm -rf ~/Library/Developer/Xcode/DerivedData

Dann reinige ich einfach mein Projekt und baue es wieder auf.

Pableiros
quelle
Ein bisschen wie eine Schrotflinte, aber eine saubere Installation hilft oft
Zayin Krige
Es ist eine Warnung für mich verloren :(
Sébastien REMY
@ iLandes das ist, was für mich gearbeitet wird, vielleicht tun Sie etwas anderes, um alle verlorenen Warnungen zu bekommen
pableiros
-2

Wenn ich SDWebImage zum zweiten Mal in mein Projekt importiere, wurde das Modul FLAnimatedImage nicht gefunden, und bei der Pod-Installation wird "... ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES ... - Verwenden Sie das $(inherited)Flag oder - Entfernen Sie die Build-Einstellungen vom Ziel." Endlich finde ich die Möglichkeit, die SD vollständig zu entfernen, speziell im Finder, in den Produkten der Pods, das Projekt im Simulator zu löschen und dann die SD erneut zu importieren.

JackXu
quelle
Die Schritte zur Behebung sind also: 1.- Entfernen Sie die SD (im Finder) 2.- Löschen Sie das Projekt im Simulator 3.- Importieren Sie die SD erneut Wenn ja, versuchen Sie das nächste Mal, Ihre zu bearbeiten und ein besseres Format zu geben Antworten. Willkommen bei SO.
Juan