2012-10-04 11 views
15

voglio aggiungere RevMob aggiungere nella mia app, ma ci sono alcuni errorierrore di generazione, mentre aggiungere annuncio revmob in iOS

Undefined symbols for architecture i386: 
"_OBJC_CLASS_$_SKStoreProductViewController", referenced from: 
    objc-class-ref in RevMobAds(RevMobStoreController.o) 
"_SKStoreProductParameterITunesItemIdentifier", referenced from: 
    -[RevMobStoreController openStoreWithITunesItemId:] in RevMobAds(RevMobStoreController.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

ho aggiunto StoreKit, SystemConfiguration e RevMob quadri già. Sto usando Xcode4.3 e ios4.2 Plz help me. Grazie in anticipo.

risposta

39

È necessario aggiungere il quadro StoreKit

EDIT: Vedo ora che cosa vuoi dire, c'era un problema con le versioni precedenti, sto aggiungendo un link a un framework modificato per risolvere il problema: Edited Revmob Framework

+0

grazie XIII ora non ho alcun errore – Arpi

+0

Sei il benvenuto, per favore contrassegna la risposta come corretta premendo il segno di spunta a sinistra, questo è l'unico modo in cui le persone conosceranno la risposta utile tra le altre. – XIII

0

Quando si rilasciano i file manualmente in xcode, i file non vengono copiati in Bundle. Quindi "SKStoreProductViewController.m" era il file non copiato nel pacchetto quindi l'errore si è verificato. Per risolvere l'errore. Trascina i file .m solo su file Copy Bundle Resource come mostrato nell'immagine enter image description here

+0

ma non ho alcun file "SKStoreProductViewController.m". Questo errore si verifica quando codice per RevMob e aggiungere framework menzionati sopra. – Arpi

+0

Nelle risorse del pacchetto di copie hai trovato dei file di colore rosso se sì quel file è mancante nella tua applicazione. L'errore che hai specificato significa che nella tua applicazione mancava il file – Sumanth

+0

No non c'è nessun file di colore rosso nella risorsa bundle – Arpi

0

Rilasciano una nuova versione di SDK (4.6.0) che funziona perfettamente su versioni precedenti di Xcode!

2

Sembra che il sdk di annunci che hai ora non includa il supporto per l'uso con il simulatore.

- [RevMobStoreController openStoreWithITunesItemId:] in RevMobAds (RevMobStoreController.o) ld: simbolo (s) non trovato per l'architettura i386

se si ottiene tutto ciò che parla di "non trovato per l'architettura" significa revmob non ha incluso le classi per l'esecuzione sul simulatore. Hai 2 scelte. cercare una libreria mancante ".a file" o compilare solo per il test su un dispositivo.

Ho riscontrato un problema con il nuovo ios6 in cui revmob non supportava la nuova architettura di iphone 5 armv7s.

Controlla il tuo impianto revmob o provare a compilare al telefono invece di simulatore

0

Questo errore può verificarsi anche se è stato rimosso un file dal vostro progetto e successivamente ri-creato. A volte Xcode non lo ri-include automaticamente nella casella 'fonti di compilazione' (quando si fa clic sulla destinazione). Seleziona la casella e verifica se sono inclusi tutti i file sorgente, se non è possibile trascinarli e ricostruirli.

9

È necessario collegare contro StoreKit.framework

0

Ciò accade anche con Appirater. Mi stavo questo messaggio:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_SKStoreProductViewController", referenced from: objc-class-ref in Appirater.o "_SKStoreProductParameterITunesItemIdentifier", referenced from: +[Appirater rateApp] in Appirater.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

--- --- per risolvere l'

  1. aggiungere StoreKit.framwork in -> BuildPhases
  2. ---> sotto- librerie a collegamento con Librerie
  3. Se si dispone di più di un obiettivo, potrebbe essere necessario aggiungere StoreKit.framwork a entrambe le destinazioni.
0

ho affrontato problema simile e dopo lunga ricerca e la verifica del codice RevMob di esempio, ho trovato questa soluzione, può essere di aiuto gli altri:

Sotto obiettivo del progetto, seleziona impostazioni di generazione, sotto distribuzione, Assegno Obiettivo di distribuzione iOS, modificare il valore su "iOS 9.0" o successivo.

Spero che questo aiuto.

Problemi correlati