web-dev-qa-db-fra.com

Pourquoi utilisons-nous use_frameworks dans CocoaPods?

J'ai utilisé use_frameworks dans CocoaPods Podfile plusieurs fois. Je me demande juste pourquoi on l'utilise? Je ne pouvais pas obtenir la réponse directe de celui-ci.

Exemple:

platform :ios, '8.0'
use_frameworks!

target "CityWhether" do
    pod 'Alamofire'
    pod 'SwiftyJSON'
end
66
harikrista

use_frameworks indique à CocoaPods que vous souhaitez utiliser des cadres au lieu de bibliothèques statiques. Puisque Swift ne prend pas en charge les bibliothèques statiques, vous devez utiliser des frameworks.


Dans une autre réponse, j'ai expliqué les différences entre les bibliothèques statiques et les frameworks:

Cadres Cocoa Touch

Ils sont toujours open-source et seront construits exactement comme votre application. (Ainsi, Xcode le compilera parfois lorsque vous exécuterez votre application et toujours après l'avoir nettoyé.) Frameworks ne prend en charge que iOS 8 et les versions ultérieures, mais vous pouvez utiliser Swift et Objective-C dans le cadre.

Bibliothèques statiques Cocoa Touch

Comme son nom l'indique, ils sont statiques. Ils sont donc déjà compilés lorsque vous les importez dans votre projet. Vous pouvez les partager avec d'autres sans leur montrer votre code. Notez que les bibliothèques statiques ne prennent actuellement pas en charge Swift. Vous devrez utiliser Objective-C dans la bibliothèque. L'application elle-même peut toujours être écrite en Swift.

Sources: Mon autre réponse | Blog AddThis.com

87
FelixSFD

Vous n'avez pas à "use_frameworks!" plus.

À partir de Xcode 9 beta 4 et de CocoaPods 1.5.0, les bibliothèques statiques Swift sont maintenant prises en charge. Le principal avantage est la rapidité de démarrage des applications, en particulier si vous avez beaucoup de pods: iOS 10 et 11 ne sont pas les plus rapides lorsque vous avez beaucoup de dylibs.

CocoaPods 1.5.0 a été publié début avril 2018 , vous devrez peut-être effectuer une mise à niveau pour l'obtenir: Sudo gem install cocoapods.

J'ai trouvé plusieurs pods qui ne fonctionnent pas encore correctement avec les bibliothèques statiques, donc votre kilométrage peut varier.

53
JosephH

Par défaut, Cocoapods construit Static Library, si vous avez besoin d'un Static Framework, vous pouvez spécifier use_frameworks! dans votre podfile.

Jusqu'à Xcode 9, la construction de Swift dans des bibliothèques statiques était inexistante et l'utilisation de cadres dynamiques était requise. Cela a été un briseur d'affaire pour certains développeurs, en particulier ceux qui s'inquiétaient des conséquences sur les performances de lancement de nombreux fichiers binaires liés.

Avec CocoaPods 1.5.0, les développeurs ne sont plus obligés de spécifier `use_frameworks! dans leur Podfile afin d’installer des pods utilisant Swift. Interopérer avec Objective-C devrait fonctionner. Toutefois, si votre pod Swift dépend d'un Objective-C, vous devez activer les "en-têtes modulaires" (voir ci-dessous) pour ce pod Objective-C.

en lire plus ici et ici

0
yoAlex5

Ajouter

use_frameworks!

dans Podfile signifie que nous voulons que les frameworks listés soient installés de manière dynamique à la place de frameworks statiques.

0
Chiara

use_frameworks! a déclaré que vous souhaitiez utiliser le cadre dynamique au lieu de les bibliothèques statiques .

Avec Xcode 9.0 et CocoaPods 1.5.0 disponibles. vous pouvez utiliser des bibliothèques statiques avec Swift si vous n'utilisez pas use_frameworks.

Une performance avec use_frameworks est que tout votre cadre dans Pods/Products est un cadre.

Voici un article connexe: Présentation de base des frameworks statiques et dynamiques sur ios

0
mistdon