2015-07-07 12 views
18

Miałem czysty, szybki projekt, wykorzystując kilka cocoapods: Parse, AFNetworking i RESideMenu. muszę korzystać STZPopupView kapsułę, więc zaktualizowałem cocoapods z ostatniej wersji:błąd za pomocą cocoapods "use_frameworks!" SWIFT

gem install cocoapods 

Potem wznowionej go dla mojego projektu:

pod install 

Z powodu tego błędu:

[!] Pods written in Swift can only be integrated as frameworks; this feature is still in beta. Add `use_frameworks!` to your Podfile or target to opt into using it. 

Zaktualizowałem mój podfile dodając "use_frameworks!"

Moja podfile jest teraz:

# Uncomment this line to define a global platform for your project 
# platform :ios, '8.0' 
use_frameworks! 

source 'https://github.com/CocoaPods/Specs.git' 

target 'isam' do 
pod 'RESideMenu', '~> 4.0.7' 
pod 'AFNetworking', '~> 2.5' 
pod 'Parse', '~> 1.6' 
pod 'STZPopupView', '~> 1.0' 
end 

target 'isamTests' do 

end 

Ponieważ mam 2 błędy podczas budowy:

  • "RESideMenu.h" file not found
  • Nie udało się zaimportować pomostowego nagłówek”. .../isam/Swift-Bridging-Header.h "

Nic nie zmieniłem w moim projekcie.

My Swift-Bridging-header.h nie zmienia:

#ifndef isam_Swift_Bridging_Header_h 
#define isam_Swift_Bridging_Header_h 

#import <Parse/Parse.h> 
#import <RESideMenu.h> 

#endif 

W moich ustawieniach budować, mam:

builds settings

myślę, że to z powodu "use_frameworks!" w moim podfile, ale nie wiem jak to zrobić, aby użyć wszystkich moich kapsuł, aby poprawnie zbudować moją aplikację.

EDIT:

Dokładne błędy:

/path_of_my_project/Swift-Bridging-Header.h:12:9: error: 'RESideMenu.h' file not found 
#import <RESideMenu.h> 
     ^
<unknown>:0: error: failed to import bridging header '/path_of_my_project/Swift-Bridging-Header.h' 
+0

Usuń następujące instrukcje z mostkowego pliku nagłówkowego: #ifndef isam_Swift_Bridging_Header_h & #define isam_Swift_Bridging_Header_h and endif. Powinno działać. – iDilip

+0

@ dilip.ajm #ifndef po prostu uniemożliwia wielokrotne importowanie, o ile mogę stwierdzić, –

+0

@SantaClaus próbowałem zi bez cudzysłowów, ale to nie działa – cmii

Odpowiedz

16

Jestem w tej samej sprawie. Możesz spróbować tego: http://www.innerexception.com/2015/05/cocoapods-useframeworks-means-bridging.html

Podczas korzystania z use_frameworks! w CocoaPods wszystkie twoje strąki będą używane jako ramy, a nie tylko szybkie kapsuły. Więc nie potrzebujesz do tego celu nagłówka pomostowego. Wystarczy zaimportować swoje kapsuły do ​​wszystkich plików, których potrzebujesz. W swoim przykładzie musisz napisać: import RESideMenu

+0

Naprawiono to dla mnie, ale również dostałem "duplikację deklaracji interfejsu", którą naprawiłem zmieniając moje pliki Objective-C, które importowały nagłówki z frameworku do używania globalnych włączeń zamiast lokalnego: '#import" Framework.h "' to '#import '. –

2

Spróbuj usunąć ISAM/z Objective-C Pomostowych nagłówka i mają tylko SWIFT-pomostowe header.h

pochodzące z indywidualnej doświadczenie, CocoaPods wciąż mają pewne problemy podczas łączenia szybkich i szkieletów Objective C. Możesz użyć Alamofire, który jest prawie równoznaczny z AFNetworking dla szybkiego.

Mam nadzieję, że to pomoże.

Edytuj: Również, dlaczego warto używać Objectice-C Parse w szybkim tempie, gdy możesz bezpośrednio używać bibliotek SWIFT.

+0

Usuń isam/nie działa. Rzeczywiście, potrzebuję pod STZPopupView, ponieważ chciałbym dostosować kontroler uialert: http://stackoverflow.com/questions/31254931/add-an-animation-image-per-image-inside-a-uialertcontroller-swift – cmii

+0

ok I udało się pomyślnie zbudować projekt przy użyciu specyfikacji. Jedyną rzeczą, którą potrzebowałem zmienić, było zmodyfikowanie tego #import Spróbuj także usunąć cel 'isam' do z pliku pod i upewnij się, że uruchamiasz wszystkie polecenia terminalu pod katalogiem projektu – mosn

+0

kiedy powiedziałeś "usunąć cel isam", prosisz mnie, abym całkowicie usunął wiersz "target" isam 'do "/" end "w moim podfile? – cmii

1

Miałem ten sam problem.Zmieniłem na przykład cały mój przywóz z #import "RESideMenu.h" na #import <RESideMenu/RESideMenu.h>.

Powiązane problemy