2015-04-30 4 views
23

sono stato in grado di creare iOS Quadro per Xcode, come mostrato in quel video: -binari embedded con iOS quadro

https://youtu.be/86cPaa3FrRg?t=4m55s

On 05:00 dicono che quadro deve essere aggiunto al Embeded binari. Se lo aggiungo ai binari incorporati, allora funziona.

Non è necessario aggiungere GoogleAds.framework ai binari incorporati. L'aggiunta ai binari incorporati appare un po '"hacky" rispetto alla soluzione di Google. Quindi penso che questo tutorial manchi qualche passaggio.

La mia domanda è: come posso creare un framework che funzioni senza aggiungerlo ai binari di incorporamento?

+1

Puoi per favore riformulare la tua domanda? Credo che tu voglia chiedere: "Come posso creare un framework che funzioni senza aggiungerlo a Embed Binaries?" – pteofil

+0

Sì. È quello che stavo chiedendo – Tema

risposta

12

tl; dr Sono entrambi quadri, ma sono di diverso tipo.


Il termine "quadro" è ambiguo. Su OSX significa una libreria dinamica pacchettizzata (ad esempio .dylib, intestazioni, altre cose), tuttavia prima che gli utenti di iOS 8 non potessero creare librerie dinamiche, furono inventati "quadri statici" per fornire librerie statiche pacchettizzate (ad esempio .a, intestazioni, altre cose).

Se il framework che hai creato deve essere impacchettato con l'app come un binario incorporato, allora suona come un quadro dinamico, tuttavia se Google Ads non lo fa, ho il sospetto che sia un framework statico. Non è necessario che sia incorporato poiché è già stato collegato al binario dell'app.

Se si desidera sapere come creare un framework statico, avviare here o Google per "framework statico ios".

+1

Grazie! Tu sei stato il primo e il link di gioco alla soluzione. – Tema

9

Prima di iOS 8, gli sviluppatori hanno fornito framework non supportati che sono stati cobbled insieme alle librerie statiche, imitando la struttura di directory dei framework Apple. Hanno funzionato, ma erano un problema da costruire, ed erano static -non librerie dinamiche.

A partire da iOS 8, Apple supporta ufficialmente la creazione di framework dinamici di terze parti in Xcode. Questi tipi di framework sono firmati dal codice e devono essere inseriti nei binari incorporati per la tua app. Se ci si collega a loro ma non si inseriscono in binari incorporati, si otterrà un'eccezione quando si tenta di eseguire il dispositivo e l'app si blocca.

Nel lungo periodo, mi aspetto che i framework compromessi come GoogleAds.framework scompaiano ora che è disponibile il supporto del framework ufficiale. Ciò significa che dovrai abituarti a mettere i framework in Binari incorporati.

A meno che non sia necessario supportare iOS 7 con il proprio codice (nel qual caso i framework ufficiali non sono un'opzione, perché funzionano solo su iOS 8), vorrei sconsigliare di creare un tipo di framework non supportato a questo punto.