/ / Construire Swift, Objective-C et une bibliothèque statique C ++ ensemble - c ++, objective-c, swift, xcode

Construire Swift, Objective-C et une bibliothèque C ++ statique ensemble - c ++, objective-c, swift, xcode

J'ai une bibliothèque statique d'un SDK tiers -C’est "le FIT SDK qui encode et décode le" protocole de transfert de données flexible et interopérable ", utilisé pour divers équipements de sport et de fitness. C’est un format binaire, bien décrit dans le SDK, qui est également livré avec une multitude de CPP, C Exemples -Sharp et Objective-C - plus une bibliothèque statique construite à partir d'une source CPP.

D'après ce que tout le monde semble dire, je devrais être en mesure de créer mon application Swift avec la bibliothèque statique, y compris l'en-tête de pontage requis.

J'ai fait un screenflow (https://vimeo.com/205082135) montrant ce qui se passe, c’est pourquoi je suis ici.

Je peux obtenir Xcode 8 (beta 3) pour construire un nouveau, fraisprojet contenant la bibliothèque et même du code Objective-C. Dès que j'ajoute l'en-tête de pontage, même avec une inclusion rudimentaire, des cratères XCode avec une erreur Linker, en se plaignant qu'il ne peut pas trouver une classe dans la bibliothèque standard C ++, telle que ou. Cela ressemble à un problème de gestion de la configuration avec Xcode que je ne peux tout simplement pas résoudre.

Mon exemple de projet avec la bibliothèque est ici: https://github.com/bleeckerj/Xcode-FIT-TEST

Est-ce que quelqu'un a déjà vu ce genre de chose auparavant?

Réponses:

0 pour la réponse № 1

Donc, grâce à de l'aide, à du temps et à des essais, j'ai réussi à résoudre le problème et à répondre à ma propre question.

Effectivement, il faut un wrapper Objective-Cautour de la classe C ++ (ou Objective-C ++) contenant le code que l’on veut exposer et appeler depuis Swift. Ensuite, il y a l'en-tête de pontage qui expose uniquement cette classe Objective-C. Cet en-tête de pontage particulier est facile à comprendre, et maintenant est facile - mais c'était un mystère pour moi. C'est une histoire longue, alors je l'explique comme partie d'un exemple de référentiel https://github.com/bleeckerj/fit-sdk-with-swift dérivé du SDK FIT qui répond à la question par un exemple.

J'espère que cela pourra aider tous ceux qui rencontreront ce problème.