2015-04-19 12 views
9

voglio usare un Podfile come questo:CocoaPod use_frameworks! funziona con iOS7?

source 'https://github.com/CocoaPods/Specs.git' 
use_frameworks! 
platform :ios, '7.0' 

Sarà questo lavoro con iOS 7? Pensavo che i framework fossero disponibili solo su iOS 8?

risposta

6

Non è possibile utilizzare:

use_frameworks!

con iOS7.

+1

Quindi, per essere chiari, questo significa che non puoi costruire un progetto che supporti iOS 7+ in Swift usando CocoaPods, giusto? –

14

No, non è così. use_frameworks! attiva il supporto di Swift creando il tuo codice nel nuovo dynamic frameworks. I framework dinamici supportano solo iOS 8. Sfortunatamente, dato che non è possibile usare Swift nelle librerie statiche (il modo precedente in cui CocoaPods raggruppava le librerie), questo era l'unico modo per raggruppare i file Swift.

4

UPDATE: Si è scoperto che è possibile distribuire framework dinamici su iOS 7. Tuttavia, non tramite Cocoapods, probabilmente. Istruzioni (grazie, @ user102008!): Deploying a Containing App to Older Versions of iOS. Questo aggiornamento in realtà non risponde alla domanda originale, ma è stato aggiunto per chiarire la mia vecchia risposta in base a una nuova informazione.


Una nota che, credo, è abbastanza importante per essere una risposta. I framework dinamici sono attualmente supportati su iOS 7 ed è possibile eseguire il codice utilizzando framework dinamici su un dispositivo iOS 7. Tuttavia, iOS 7 non supporta i framework di terze parti crittografati fair-play. E a causa di ciò, se hai provato a inviare un'app per iOS7 utilizzando framework dinamici a iTunesConnect, sarebbe stata respinta (one prooflink).

Penso che sia importante, perché potrebbe sembrare che funzioni, ma non è così. E se ignori l'avviso, potresti incontrare il problema troppo tardi, quando metà del progetto è già in Swift.

Abbiamo affrontato questo problema quando stavamo iniziando a sviluppare il nostro pod. Il progetto è stato compilato e funzionato bene su iOS 7. Buona cosa abbiamo studiato ulteriormente questo problema.

+1

"se si tentasse di inviare un'app per iOS7 utilizzando framework dinamici su iTunesConnect, verrebbe rifiutata" Non è vero che un'app inviata all'app store che ha come target iOS 7 non può avere framework dinamici. Sì, verrà rifiutato se l'app si collega al framework dinamico in fase di compilazione. Ma [Apple fornisce istruzioni] (https://developer.apple.com/library/content/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html#//apple_ref/doc/uid/TP40014214-CH21-SW3) su come non collegarlo al momento della compilazione, ma collegarlo dinamicamente al runtime usando 'dlopen' solo quando è in esecuzione su iOS 8+. – user102008

+0

@ user102008 Grazie! Non lo sapevo. Buono a sapersi. Ho aggiornato la risposta per includere questa informazione. – FreeNickname

Problemi correlati