Set Ziel der Bereitstellung für CocoaPods pod ' s
Benutze ich CocoaPods zur Verwaltung von Abhängigkeiten im Projekt. Ich habe geschrieben Podfile:
target 'MyApp' do
platform :ios, '8.0'
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
#use_frameworks!
# Pods for MyApp
pod 'KeepLayout', :git => 'https://github.com/iMartinKiss/KeepLayout', :tag => 'v1.6.0'
pod 'EasyMapping'
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
target 'MyAppUITests' do
inherit! :search_paths
# Pods for testing
end
end
Diese Datei funktioniert auch mit CocoaPods 0.x aber ich kann nicht kompilieren-Projekt, nachdem ich aktualisiert CocoaPods 1.0. Nachdem ich ausgeführt habe
pod update
Kann ich nicht kompilieren meines Projekts mit Fehlermeldung:
/Users/<...>/Pods/KeepLayout/Quellen/KeepAttribute.m:195:1: kann Nicht synthetisieren schwache Eigenschaft, da die derzeitige Bereitstellung Ziel nicht die Unterstützung schwacher Referenzen
Habe ich gesehen, dass jede Bibliothek ist gebaut mit verschiedenen deployment target. Zum Beispiel KeepLayout ist gebaut mit 4.3 deployment target.
Wie kann ich bestimmen, build-Ziel für jede pod-Abhängigkeit?
- Temporäre Lösung: gehen Sie in xcode, klicken Sie auf "Pods" - Projekt, und legen Sie das Ziel der Bereitstellung über 6, ich denke, wenn 'schwach' erschien. Ich habe 8.0. Aber nach jedem pod installieren, es wird wieder 4, ich bin also auch gespannt auf eine endgültige Lösung.
- Danke. Ich habe es vor, aber glaube nicht, dass es eine gute Lösung.
- Auch das habe ich finden-Skript zu erstellen, ist es automatisch für jedes Ziel aus dem Projekt, aber es funktioniert nicht mit CocoaPods 1.0. 🙁
pod update
setzt das Ziel der Bereitstellung des pod, um iOS 4.3, weil das ist das default-deployment Ziel, wenn die podspec nicht angeben. Dies war eine absichtliche Entscheidung der CocoaPods-team, auch wenn es bricht etwas älteren Schoten, die im Grunde eine unvollständige podspec. Wenn Sie für den Unterhalt der pod, sollten Sie ein geeignetes Ziel, z.B.platform :ios, '8.0'
um es zu beheben. Wenn Sie nur versuchen, zu verwenden, eine Hülse, ist auf diese Weise aufgeteilt, versuchen Sie bitte, mein Vorschlag unten.- vielen Dank für die schnelle Lösung. Für jemand anderes suchen, ich habe gerade aktualisiert und Cocoapods 1.0.0. Dies erforderte eine syntax änderung in meinem podfile. Ich bin mit vielleicht 15 "pods", die alle kompiliert einwandfrei außer für MBProgressHUD. Das pods-Projekt selbst ist eingestellt auf 8,0 im Sinne meiner Podfile, aber für einige Grund der MBProgressHUD Ziel festgelegt, 4.3. Das Update aufgeführt Schlag von Alex Nauda funktioniert gut für eine dauerhafte Lösung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Während einige Entwicklungs-Versionen von CocoaPods (sowie pre-1.0-Versionen) haben können, propagiert das deployment-target des Projekts unten an den Hülsen, das ist nicht mehr der Fall 1.0. Um dies zu umgehen, die aktuelle Entwickler empfiehlt mit einem post-install hook.
Hier ist ein brute-force-Ansatz zu zwingen, eine hart-codierte Ziel der Bereitstellung für jeden pod in die generierte Pods-Projekt. Fügen Sie diesen an der Ende Ihrer
Podfile
:'9.2'
mit dem, was Ziel der Bereitstellung, die Sie verwenden möchten.IPHONEOS_DEPLOYMENT_TARGET
von jeder Ziel-Einstellungen? Projekt bereits seine Bereitstellung Ziel und jedes Ziel nur Erben.Da die "Hülsen" Projekt gesetzt hat, Ziel der Bereitstellung, die Sie gerade brauchen, um entfernen die Bereitstellung Ziel jedes Ziel erstellen. Hängen Sie die an die Ende Ihrer
Podfile
Inspiriert durch die github posten und Alex Nauda ' s Antwort.
Podfile
1) Suche für IPHONEOS_DEPLOYMENT_TARGET
2) Ändern Sie die iOS Deployment Target