Mam bibliotekę statyczną z zestawu SDK innej firmy -jest to FIT SDK, który koduje i dekoduje „Elastyczny i interoperacyjny protokół przesyłania danych”, używany do różnych urządzeń sportowych i fitness. Jest to format binarny, dobrze opisany w SDK, który również zawiera kilka CPP, C Przykłady -Sharp i Objective-C - plus biblioteka statyczna zbudowana ze źródła CPP.
Z tego, co wszyscy mówią, powinienem być w stanie zbudować moją aplikację Swift przy użyciu biblioteki statycznej, w tym wymaganego nagłówka pomostowego.
Zrobiłem zrzut ekranu (https://vimeo.com/205082135) pokazujące, co się dzieje, dlatego tu jestem.
Mogę zdobyć Xcode 8 (beta 3), aby zbudować nowy, świeżyprojekt zawierający bibliotekę, a nawet trochę kodu Objective-C. Jak tylko dodam nagłówek mostkujący, nawet z podstawowymi elementami, kratery XCode z błędem Linkera, narzekają, że nie może znaleźć klasy ze standardowej biblioteki C ++, takiej jak lub. Pachnie jak problem z zarządzaniem konfiguracją Xcode, którego po prostu nie mogę rozwiązać.
Mój przykładowy projekt z biblioteką jest tutaj: https://github.com/bleeckerj/Xcode-FIT-TEST
Czy ktoś widział coś takiego wcześniej?
Odpowiedzi:
0 dla odpowiedzi № 1Tak więc dzięki pomocy, długiemu czasowi i próbom udało mi się rozwiązać problem i odpowiedzieć na własne pytanie.
W rzeczywistości potrzebne jest opakowanie Objective-Cwokół klasy C ++ (lub Objective-C ++) zawierającej kod, który chcemy ujawnić i wywołać z Swift. Jest też Bridging Header, który odsłania właśnie tę klasę Objective C. Ten konkretny Bridging Header brzmi łatwo, a teraz to w rzeczywistości jest łatwe - ale dla mnie była to tajemnica. To długa historia, więc wyjaśniam ją jako część przykładowego repozytorium https://github.com/bleeckerj/fit-sdk-with-swift pochodzący z FIT SDK, który odpowiada na pytanie przykładem.
Mam nadzieję, że pomoże to każdemu, kto napotka ten problem.