Mam projekt Swift, dla którego próbuję zaimportować platformy oparte na ObjC. Struktura znajduje się w katalogu pod ścieżką projektu i odwołuje się do niej projekt w Xcode. Jest również dodawany do „Połącz pliki binarne z bibliotekami” na stronie „Fazy kompilacji” projektu.
Jednak z jakiegoś powodu nie mogę uwzględnić struktury w pliku Bridging-Header. Otrzymuję następujący błąd:
BridgingHeader.h:5:9: error: 'Parse/Parse.h' file not found
#import <Parse/Parse.h>
^
<unknown>:0: error: failed to import bridging header 'BridgingHeader.h'
Rzeczy, które sprawdziłem:
- Opcja „Instaluj nagłówek zgodności Objective-C” jest ustawiona na „TAK”.
- Ścieżki wyszukiwania nagłówków obejmują ścieżkę do struktur.
Jestem pewien, że czegoś mi brakuje, więc jeśli ktoś ma jakieś wskazówki, byłoby świetnie.
swift
xcode
bridging-header
Dia Kharrat
źródło
źródło
Header Search Paths
, w tym przypadku pomogło pytanie: DOdpowiedzi:
Znalazłem rozwiązanie:
SWIFT_OBJC_BRIDGING_HEADER
) musi być ustawione na poziomie celu, a NIE na poziomie projektu. Pamiętaj, aby usunąć wartość ustawienia na poziomie projektu.(dla mnie wygląda to na błąd Xcode, ponieważ nie wiem, dlaczego to naprawia).
źródło
Mam ten sam problem. Zmieniłem wszystkie moje importu od
#import "HMSegmentedControl.h"
do#import <HMSegmentedControl/HMSegmentedControl.h>
na przykład.źródło
Musiałem dodać mój
lib
katalog w ścieżkach wyszukiwania nagłówków użytkownika:W moim przypadku
lib
katalog zawiera.a
-library i kilka plików nagłówkowych. Są one zawarte w pliku nagłówkowym mostkowania. Jednak szybki kompilator ich nie znalazł. Dopiero gdy dodałem${PROJECT_DIR}/lib
do ścieżki wyszukiwania nagłówka użytkownika, zbudowałem cel testowy.(Używam Xcode 6.2 na Mavericks 10.9.5)
źródło
Napotkaliśmy ten sam komunikat o błędzie, z zupełnie inną przyczyną.
Ustawiać:
Kiedy dodaliśmy drugi szybki przypadek testowy, po wyczyszczeniu (lub na maszynie kolegi z zespołu), zobaczyliśmy ten błąd podczas tworzenia celu testu jednostkowego.
Naprawiono to, dodając fikcyjną klasę Obj-C do celu testu jednostkowego.
źródło
Jeśli używasz cocoapods, spróbuj ponownie zainstalować strąki, uruchamiając następujące polecenie.
źródło
pod install
wydaje się, że jest to wymagane dla każdej dodanej nowej konfiguracji ...To jakoś załatwiło sprawę:
źródło
Ten błąd pojawił się podczas instalowania z Cocoapods biblioteki CocoaImageHashing. Problem polegał na tym, że ścieżki wyszukiwania były błędne. Na poziomie docelowym, w Ustawieniach kompilacji -> Ścieżki wyszukiwania -> Ścieżki wyszukiwania nagłówków, ścieżki odpowiadały nieistniejącym folderom, na przykład „$ {PODS_ROOT} / Headers / Public / CocoaImageHashing”, gdy struktura folderów Headers / Public / nie istniała. Dodałem ścieżkę $ {PODS_ROOT} / CocoaImageHashing i błąd zniknął.
źródło
Cóż, to trochę dziwne, ale wydaje mi się, że musisz dodać zasób do fazy „Kopiuj zasoby pakietu” celu testowego, aby załadować wszystkie nagłówki z głównego celu aplikacji. W moim przypadku dodałem
main.storyboard
i załatwiłem błąd.źródło
Zdarzyło mi się to po dodaniu / zmianie nazwy obecnych konfiguracji i ma to sens.
Każda konfiguracja korzysta z zestawu konfiguracji generowanego przez cocoapods, więc te rzeczy muszą się zgadzać.
Więc jeśli dodasz konfiguracje / zmienisz ich nazwy, będą one musiały używać odpowiednich zestawów konfiguracyjnych i do tego
pod install
wystarczy bieganie .źródło
Jeśli komuś pomoże.
W moim przypadku dodane pliki obj-c mają folder odniesienia (niebieskie foldery w xcode) i nagłówek nie mógł ich znaleźć. Po prostu dodałem pliki, a nie folder, z wyszukiwarki do xcode i rozwiązałem.
źródło
Miałem ten sam problem. Dla mnie powodem było to, że używałem tego samego nagłówka mostkującego zarówno dla mojej aplikacji, jak i rozszerzenia Today. Moje rozszerzenie Today nie zawiera analizy, ale ponieważ zostało zdefiniowane w nagłówku mostkującym, próbowało go znaleźć. Utworzyłem nowy nagłówek mostkujący dla mojego rozszerzenia Today i błąd zniknął.
źródło
Mój framework działał wcześniej i nagle przestał działać, a żadna z tych odpowiedzi nie działała dla mnie. Usunąłem strukturę w Fazy kompilacji> Połącz plik binarny z bibliotekami i ponownie go dodałem. Znowu zaczął pracować.
źródło
Miałem problem i naprawiłem go po spędzeniu 2 godzin na szukaniu. Moje środowisko jak poniżej:
cocoapod 0,39,0
swift 2.x
XCode 7.3.1
Kroki:
źródło
Właśnie zduplikowałem istniejący schemat i dodałem kolejną konfigurację do projektu. Musiałem dodać konfigurację o tej samej nazwie do projektu frameworka, aby można było również budować w tym samym
DerivedData/($AppName)/Build/Products/($CONFIGURATION_NAME)
folderze. W przeciwnym razie plik .framework nie zostanie utworzony i dlatego nie można go zaimportować.źródło
Napotkałem ten sam problem dzisiaj, kiedy próbowałem użyć kapsuły napisanej w Objective-C w moim projekcie Swift, żadne z powyższych rozwiązań nie wydawało się działać.
W podfile, który
use_frameworks!
napisałem. Skomentowanie tej linii ipod install
ponowne uruchomienie rozwiązało ten problem i błąd zniknął.źródło
(Zaktualizowano 27 maja 2017 r.)
Xcode 8. Swift Project - importowanie celu C.
Rzeczy, które warto wiedzieć:
źródło
Miałem podobny problem i tylko jedno rozwiązanie się udało. Wypróbowałem wszystko, co zasugerowałem i wiedziałem, że ustawiłem mój nagłówek mostkujący w porządku, ponieważ działała inna biblioteka.
Kiedy skopiowałem bibliotekę (przeciągnij i upuść) do projektu, bez Cocoapods, dopiero potem mogłem importować nagłówki bez błędów.
Korzystałem z biblioteki facebook / Shimmer.
źródło
Miałem podobny problem z strąkami. Zasadniczo próbując uruchomić testy interfejsu użytkownika, Xcode narzekał na brakujące pody. Rozwiązanie tego problemu było znacznie prostsze niż jakiekolwiek opisane powyżej:
Pracujący!
Znalazłem to w wątku: https://github.com/CocoaPods/CocoaPods/issues/2695
Brzmi trochę jak błąd w strąkach kakao, ale widzę powody, dla których może to być trudny przypadek.
źródło
W moim przypadku po prostu musiałem wyjść z symulatora ...
źródło
Czysty projekt, czysty folder kompilacji, uruchom ponownie Xcode. po prostu usuwam ścieżkę w projekcie goto> Build Settings> Search the keyword. Swift Compiler - General -> Objective-C Bridging header dla mnie zadziałał.
źródło
Sierpień 2019
W moim przypadku chciałem użyć protokołu Swift w pliku nagłówkowym Objective-C, który pochodzi z tego samego celu i do tego potrzebowałem użyć deklaracji przesyłania dalej protokołu Swift, aby odwołać się do niego w interfejsie Objective-C. To samo powinno dotyczyć używania klasy Swift w pliku nagłówkowym Objective-C. Aby użyć deklaracji do przodu, zobacz następujący przykład z dokumentacji w Uwzględnij klasy Swift w nagłówkach celu-C przy użyciu deklaracji do przodu :
źródło