/ / Budowanie razem, Objective-C i statycznej biblioteki C ++ razem - c ++, object-c, swift, xcode

Budynek Swift, Objective-C i statyczna biblioteka C ++ razem - c ++, cel-c, swift, xcode

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 № 1

Tak 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.