2011-08-18 15 views
34

Io uso xcode4, su un progetto openglES ho aggiunto il codice per l'acquisto in-app dal tutorial: http://www.raywenderlich.com/2797/introduction-to-in-app-purchasessimboli non definiti per l'architettura i386: "_SCNetworkReachabilitySetCallback"

ho aggiunto SystemConfiguration.framework ma si verifica questo errore :

Ld /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest normal i386 
    cd /Users/Eros/Desktop/blatestDB 
    setenv MACOSX_DEPLOYMENT_TARGET 10.6 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Desktop/blatestDB -filelist /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Intermediates/blatest.build/Debug-iphonesimulator/SLQTSOR.build/Objects-normal/i386/blatest.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreGraphics -framework OpenAL -lz -framework MediaPlayer -framework AVFoundation -framework GameKit -framework StoreKit -o /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest 

Undefined symbols for architecture i386: 
    "_SCNetworkReachabilitySetCallback", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
     -[Reachability stopNotifier] in Reachability.o 
    "_SCNetworkReachabilityGetFlags", referenced from: 
     -[Reachability currentReachabilityStatus] in Reachability.o 
     -[Reachability connectionRequired] in Reachability.o 
    "_SCNetworkReachabilityCreateWithName", referenced from: 
     +[Reachability reachabilityWithHostName:] in Reachability.o 
    "_SCNetworkReachabilityCreateWithAddress", referenced from: 
     +[Reachability reachabilityWithAddress:] in Reachability.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

se si elimina il riferimento quadro l'errore è lo stesso. l'aggiunta di nuovo non succede nulla ... in -Xlinker 2 -framework Foundation -framework UIKit [...] dovrei vedere "-framework SystemConfiguration" giusto? perché non c'è? qualcuno ha idee?

tirando il quadro del Progetto-> costruire phases-> collegamento binario con biblioteca diventando così il primo quadro ho questo erros:

Ld /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest normal i386 
    cd /Users/Eros/Desktop/blatestDB 
    setenv MACOSX_DEPLOYMENT_TARGET 10.6 
    setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
    /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -L/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator -F/Users/Eros/Desktop/blatestDB -filelist /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Intermediates/blatest.build/Debug-iphonesimulator/SLQTSOR.build/Objects-normal/i386/blatest.LinkFileList -mmacosx-version-min=10.6 -Xlinker -objc_abi_version -Xlinker 2 -framework SystemConfiguration -framework Foundation -framework UIKit -framework OpenGLES -framework QuartzCore -framework AVFoundation -framework AudioToolbox -framework CoreAudio -framework CoreGraphics -framework OpenAL -lz -framework MediaPlayer -framework AVFoundation -framework GameKit -framework StoreKit -o /Users/Eros/Library/Developer/Xcode/DerivedData/blatest-acmdklrqungznggpjewgxuxqsvwo/Build/Products/Debug-iphonesimulator/blatest.app/blatest 

ld: warning: ignoring file /Users/Eros/Desktop/blatestDB/SystemConfiguration.framework/SystemConfiguration, missing required architecture i386 in file 
Undefined symbols for architecture i386: 
    "_SCNetworkReachabilitySetCallback", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityScheduleWithRunLoop", referenced from: 
     -[Reachability startNotifier] in Reachability.o 
    "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from: 
     -[Reachability stopNotifier] in Reachability.o 
    "_SCNetworkReachabilityGetFlags", referenced from: 
     -[Reachability currentReachabilityStatus] in Reachability.o 
     -[Reachability connectionRequired] in Reachability.o 
    "_SCNetworkReachabilityCreateWithName", referenced from: 
     +[Reachability reachabilityWithHostName:] in Reachability.o 
    "_SCNetworkReachabilityCreateWithAddress", referenced from: 
     +[Reachability reachabilityWithAddress:] in Reachability.o 
ld: symbol(s) not found for architecture i386 
collect2: ld returned 1 exit status 

SystemConfiguration è lì, l'errore ancora lì ... cosa può essere? grazie

risposta

51

trovato! Ho copiato il SystemConfiguration.framework nella mia cartella di progetto (spuntando la casella quando ho aggiunto da xcode). L'eliminazione di quella cartella nel mio progetto ora viene compilata correttamente

0

Vorrei sottolineare che ho anche riscontrato un problema simile a questo.

Ho copiato alcuni file su xcode e ho accidentalmente selezionato "ProjectTests" al posto del progetto. Basta eliminare i file e riaggiungerli al progetto assicurandosi che sia selezionato il progetto principale (non i test unitari)

0

Ho avuto lo stesso problema dopo un aggiornamento da repository.

La soluzione che ha funzionato per me era eliminare i riferimenti dal progetto per tutte le classi e aggiungerli di nuovo. Il problema è che c'è una grande possibilità di rovinare la sincronizzazione dei repository.

+0

Come hai fatto? – quantumpotato

10

Ho avuto anche lo stesso problema. Ho aggiunto alcuni framework direttamente trascinandoli e rilasciandoli.

Per risolverlo, ho cancellato tutti loro e li ha aggiunto attraverso il menu di destinazione> Crea Fasi e poi di nuovo aggiunto tutti i quadri necessari attraverso collegamento binari con le librerie.

Dopo questo, il codice dovrebbe funzionare di nuovo bene.

+0

+1 grazie funziona ....! – Dinesh

37

Dopo aver aggiunto SystemConfiguration.framework da fasi di creazione del mio progetto compila bene ...

hanno un divertimento ...!

+1

Grazie ... ha funzionato per me! –

+1

questa è la risposta più corretta –

+0

Grazie !!! Questo ha funzionato anche per me! – ChemDev

8

è semplice.

scnetworkreachability callback viene etichettato come simbolo indefinito che implica un certo file di libreria o di un quadro manca

il prefisso sc significa configurazione del sistema

  • clic sul nome del progetto scegliere Sommario a destra

  • cl ick binari di collegamento e dei quadri

  • click più su di esso quindi si può vedere un drill-down con collezioni di quadri e libaries vedere se c'è qualcosa chiamato systemConfigurationframework

  • selezionare che e premete ok

  • Ora accumulo e corsa il problema è risolto

5

quando stavo usando AFNetworking, dopo aver ottenuto questi errori importati 3 quadri

CFNetwork.framework 
Security.framework 
SystemConfiguration.framework 

Tutti gli errori saranno andati .. godere !!!

5

Come accennato in precedenza, dopo aver importato i seguenti 3 framework, funziona!

CFNetwork.framework 
    Security.framework 
    SystemConfiguration.framework 

Grazie mille!

Problemi correlati