5

Obiettivo: Creare un cocoapod con supporto CI attraverso travis-ci e tute.Cocoapod non riesce a costruire su Travis-CI - "atteso un tipo"

Sub Obiettivo: Mantenere git repo sgombra da Pods/, pur disponendo di Podfile e Podfile.lock

repo di riferimento: SRRandomUser

nota: mentre infatti esiste una soluzione soluzione semplice (basta togliere Pod/ da il mio .gitignore, faccio questa domanda perché sarà probabilmente utile capire questo problema per il lavoro futuro


Ecco la situazione mi trovo in:

  1. Utilizzando FSNetworking per richieste di rete.
    • una delle classi, FSNData, ha un metodo di classe withImage:jpegQuality:fileName: che accetta un UIImage e CGFloat come parametri.
    • Costruire questo file senza aggiungere @import per UIKit e CoreGraphics risultati in un errore di compilazione di expected a type con riferimento alle UIImage e CGFloat parametri
    • a livello locale, questo non è un problema perché posso aggiungere il modulo @import s, tuttavia, poiché io non sto commettendo l'interezza della directory Pods/, questi cambiamenti non vengono spinti
  2. Travis ha ricevuto la costruzione e tenta di costruire, ma dal momento che il FSNData non avere CoreGraphics o UIKit i mported, quando Travis va a costruire il progetto, dal momento che it throws the error in SRRandomUserGenerator classe è #import ing i colpiti FSNData classe:

✗ Compile SRRandomUserGenerator.m (73 ms)

In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/SRRandomUser/SRRandomUserAPIManager.h:10: 
In file included from /Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNConnection.h:36: 
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:18: error: expected a type 
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName:(NSString*)fileName; 
        ^
/Users/travis/build/spacedrabbit/SRRandomUser/Random Strangers/SRRandomUser/../../Pods/Headers/Public/FSNetworking/FSNData.h:42:46: error: expected a type 
+ (id)withImage:(UIImage*)image jpegQuality:(CGFloat)quality fileName: (NSString*)fileName; 
              ^
2 errors generated. 

Quindi, le mie domande sono:

  • Come disattivare l'avviso in modo che la generazione venga eseguita comunque o
  • Come si ottiene che il pod includa i framework corretti per la creazione?

Mille grazie in anticipo, SO.

+0

Verifica questo post: https://somethingaboutios.wordpress.com/2016/02/05/add-travis-ci-to-your-coding-challenge/. Forse può aiutarti a risolvere il tuo problema. –

+1

@ Gabriel.Massana davvero un bel post, e un argomento che manca molto nella documentazione. Non penso che affronta direttamente il problema che sto avendo, ma penso che i miei prossimi passi su questo sarebbe di giocare con la porzione 'script' di' travis.yml' in un modo simile di cui scrivi. Per quanto mi riguarda, sembra che le librerie incorporate nel mio progetto non siano collegate per il CocoaPod da usare ... in qualche modo. Sinceramente, non l'ho davvero guardato da molto tempo finché il tuo commento non mi ha fatto pensare di nuovo :) –

risposta

0

Si consiglia di provare a cercare il framework necessario tramite Cocoapods.org.Se stai usando Cocoapods, solitamente significa che è stato collegato al tuo progetto (quindi non c'è davvero modo di ridurre l'errore, specialmente in questo caso in cui sembra che il framework che stai utilizzando dipenda da altri framework)

Problemi correlati