2017-10-10 4 views
2

Dans le blog Swift https://developer.apple.com/swift/blog/?id=2 du 11 Juillet 2014, il est écrit:Est-il encore «dangereux de s'appuyer sur des frameworks binaires utilisant Swift»?

« si votre projet utilise des cadres pour partager le code avec une extension intégré, vous voulez construire les cadres, l'application et les extensions Il serait dangereux de s'appuyer sur des frameworks binaires qui utilisent en utilisant Swift - en particulier de la part de tiers.Comme Swift change, ces frameworks seront incompatibles avec le reste de votre application.Lorsque l'interface binaire se stabilise en un an ou deux, l'exécution de Swift sera intégrée au système d'exploitation hôte et cette limitation n'existera plus. "

Cela fait maintenant près de 3,5 ans, soit plus d'un an ou deux. Xcode 9, iOS 11 et Swift 4 sont les standards actuels en ce moment. Est-ce toujours vrai? Et si oui, quand cela devrait-il changer?

Je veux convertir un SDK d'Objective-C en Swift, et il devrait être distribué en tant que binaire (au moins en partie).

...

Mise à jour: J'ai trouvé ce https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160725/025676.html qui stipule la rubrique "Possible Swift 4 Phase 2:" Les efforts

« - stabilité .swiftmodule: À un moment donné, nous devons stabiliser le ".swiftmodule" format de fichier binaire (ou le remplacer par un mécanisme différent ) pour permettre des cadres binaires 3ème partie.Ceci est une très grande quantité de travail en plus de ce qui est nécessaire pour la stabilité ABI de la standa rd bibliothèque. "

Est-ce que cela répond à ma question? Est-ce là où nous sommes en ce moment?

Répondre

2

par un answer provided by Apple:

Est-il encore "dangereux de se fier sur les cadres binaires qui utilisent Swift"?

Oui.

Ce truc est complexe, donc I’m va déférer au Swift ABI Stability Manifesto pour les détails. Toutefois, le résumé est que:

  • stabilité ABI est prévue pour Swift 5 (voir this page)
  • stabilité du format module ne dispose toujours pas d'une date cible
  • La distribution des cadres binaires sans les deux est une mauvaise idée