Frage

Ich habe dieses Hauptprojekt, das eine statische Bibliothek generiert (nennen Sie es MySDK).Ich habe eine Komponente (nennen Sie es Analytics) als private Kakaopode.

Also habe ich am Ende eine Dateistruktur wie diese:

+ MySDK
    - src
+ Pods
    + Pods
        - Analytics

Jedes Projekt hat seine eigenen Tests, aber jetzt muss ich einige Integrationstests durchführen, also verwende ich in meinem Podfile link_with, aber wann immer ich das tue, kann ich nicht einmal die ursprünglichen Tests ausführen, weil ich einen Haufen davon bekomme duplicate symbol Fehlermeldung:

duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods in:
    /.../DerivedData/Build/Products/Release-iphonesimulator/libPods.a(Pods-dummy.o)
    /.../DerivedData/Build/Products/Release-iphonesimulator/libMySDK.a(Pods-dummy.o)
...
duplicate symbol _MYPREFIXFileTableIDColumnName in:
    /.../DerivedData/Build/Products/Release-iphonesimulator/libPods.a(MYPREFIXDatabaseConstants.o)
    /.../Build/Products/Release-iphonesimulator/libMySDK.a(MYPREFIXDatabaseConstants.o)

Alle Fehler kommen von mir Analytics Komponente.Alle Dateien, die ein Problem verursachen, haben C-Funktionen (Ich beschäftige mich direkt mit SQLite) und / oder (global) konstant, oder sie sind Kategorien, aber sie sind alle vorangestellt.

Mein Podfile sieht so aus:

platform :ios, '7.0'
link_with ['MySDK', 'MySDKTests']
pod 'Analytics', '0.0.1'

Meine podscpec für Analytics sieht so aus:

Pod::Spec.new do |s|
  s.name     = 'Analytics'
  s.version  = '0.0.1'
  s.platform = :ios
  s.summary  = "Analytics utility"
  s.homepage = 'http://google.com'
  s.author   = { 'Me' => 'me@me.com' }
  s.source   = { :git => 'https://github.com/Company/Analytics.git', :tag => '0.0.1' }
  s.source_files = 'Analytics/**/*.{h,m}'
  s.requires_arc = true
  s.ios.deployment_target = '6.0'
end

Gibt es einen Grund, warum ich diese Fehler erhalte?Soll ich diese Dateien als Nicht-arc kompilieren oder ein spezielles Flag verwenden?

Irgendwelche Ideen

War es hilfreich?

Lösung

Ich habe es endlich zum Laufen gebracht!

Ich hätte meine Pods nicht damit verknüpfen sollen MySDKTests, da das Endprodukt (MySDK, eine Bibliothek, verlinkte bereits gegen Analytics).

Ich habe jedoch Folgendes zu meinem hinzugefügt podspec Datei:

  s.public_header_files = 'Analytics/**/*.h'

  s.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(SRCROOT)/Pods/Headers/Analytics"' }

Die zweite Zeile ist nicht wirklich notwendig, weil sie meine nicht verändert MySDKTests Ziel.Ich musste hinzufügen HEADER_SEARCH_PATHS zu meinem MyDSKTests um diese Header den Tests zur Verfügung zu stellen.

Ich habe gelesen, dass einige Leute erfolgreich verwenden LIBRARY_SEARCH_PATHS stattdessen, aber das hat bei mir nicht funktioniert.Wenn jemand erklären möchte, warum, wäre das großartig, aber im Moment überlasse ich meine Lösung hier anderen Leuten, falls sie auf ein ähnliches Problem stoßen.

Sehen diese andere Frage für verwandte Informationen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top