131 votes

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
 

153voto

FelixSFD Points 4207

use_frameworks dit CocoaPods que vous souhaitez utiliser des Cadres de la place des Bibliothèques Statiques. Depuis Swift ne prend pas en charge les Bibliothèques Statiques vous avez de l'utilisation des cadres.


Dans une autre réponse, j'ai expliqué les différences entre les Bibliothèques Statiques et les Cadres:

Cocoa Touch Cadres

Ils sont toujours open-source et sera construit à l'instar de votre application. (Donc Xcode parfois de le compiler, lorsque vous exécutez votre application et toujours après avoir nettoyé le projet.) Cadres uniquement en charge iOS 8 et plus récente, mais vous pouvez utiliser rapide et Objective-C dans le cadre.

Cocoa Touch Bibliothèques Statiques

Comme son nom l'indique, ils sont statiques. Donc ils sont déjà compilés, lorsque vous les importez de votre projet. Vous pouvez les partager avec les autres sans les montrer votre code. Notez que les Bibliothèques Statiques actuellement ne prennent pas en charge Rapide. Vous aurez à utiliser Objective-C au sein de la de la bibliothèque. L'application elle-même peut encore être écrit en Swift.

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

81voto

JosephH Points 21074

Vous n'avez pas à "use_frameworks!".

Comme de Xcode 9 beta 4, et CocoaPods 1.5.0, swift bibliothèques statiques sont désormais pris en charge. Le principal avantage est plus rapide app les temps de démarrage, en particulier si vous avez beaucoup de gousses - iOS 10 et 11 ne sont pas les plus rapides quand vous avez beaucoup de dylibs.

CocoaPods 1.5.0 a été lancée début avril 2018, de sorte que vous peut-être besoin de mettre à niveau pour l'obtenir: sudo gem install cocoapods.

J'ai trouvé plusieurs gousses qui ne fonctionnent pas correctement avec les bibliothèques statiques et pourtant, bien que, de sorte que votre kilométrage mon varient.

-30voto

Victor John Points 332

use_frameworks! dans le podfile démontre qu'il sera pris en charge par iOS 8.0 et versions ultérieures. Il ne supporte pas iOS 7.0 pour toutes les librairies de cocoapodes.

Si vous souhaitez que le projet prenne en charge iOS 7.0 et versions ultérieures, vous devez le supprimer.

Donc, les changements sont coup

platform :ios, '7.0' target "CityWhether" do end

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X