2015-07-13 10 views
6

Ho 2 progetti che funzionano con google maps sdk, sono attualmente nell'appstore.EXC_BAD_ACCESS Utilizzo di gmaps sdk 1.9.0, Xcode 6.4, in esecuzione su dispositivo 8.3

cose da avere in mente:

  • Gmaps versione SDK 1.9.0 installati tramite cocoapods
  • versione di Xcode 6.4
  • destinazione di distribuzione 7.1
  • dispositivo: iPhone 4s con 8.3.0

Oggi ho aperto Xcode come al solito con il primo progetto, ho provato a compilare e eseguire il debug sull'iPhone ea volte ottengo un EXC_BAD_ACCESS (code=1...) incidente sul app e talvolta ottenere EXC_BAD_ACCESS (code=EXC_ARM_DA_ALING...), nessuna traccia di stack in qui, ma sempre in main.m:

return UIApplicationMain(argc, argv, nil, NSStringFromClass([TGPAppDelegate class])); 

Vedendo il primo thread ho scoperto che questo è l'errore è legato a Google Maps:

Thread 1

provato quanto segue:

  • Aggiornamento del pod (non funzionava)
  • sostituito il mio codice con il codice di esempio su Gmaps SDK di pagina (non ha funzionato) *
  • I have read qualcosa su di layout automatico, disattivato (non ha funzionato)

La parte strana è che ho anche:

  • processato in un iPhone 6 con 8.4 (DID lavoro)
  • processato in un iPhone 6 con 8.3 (lavoro DID)

Entrambi i progetti sono in uno stato beta precoce, quindi non lo so se tutti i veri utenti hanno questo problema, ma sono preoccupato che alcuni utenti non siano in grado di utilizzare le app a causa di questo.

Non sono riuscito a trovare troppe informazioni su Internet e non so nemmeno dove cercare, ci sono stati segnalati errori noti riguardo a questo ?, a chiunque altro con lo stesso problema?

Ecco il codice di esempio che sto utilizzando:

-(void)viewDidLoad { 
    [super viewDidLoad]; 

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:37.80948 
                  longitude:5.965699 
                   zoom:2]; 

    GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; 

    self.view = mapView; 
} 

EDIT 1:

fare più test, ha scoperto che il problema appare solo quando il debug (allegando il debugger quando si esegue l'applicazione) , se si esegue l'app dall'iPhone e successivamente si collega il debugger al processo, tutto viene eseguito correttamente, voglio dire, se la mappa tenta di eseguire il rendering quando il debugger è collegato, si otterrà exc_bad_access, si tratta di un errore del debugger quindi ?, Sono confuso

EDIT 2:

Questo in risposta in here, grazie Dave

+1

Provare lo stesso qui. È fastidioso. Improvvisamente non funzionerà su 8.3 – Teffi

+1

Scoperto che si verifica solo sul profilo di provisioning di sviluppo. Ma una volta imballato per la distribuzione, il bug non si verifica. – Teffi

+0

Facendo altri test, ho scoperto che il problema si verifica solo durante il debug (allegando il debugger quando si esegue l'app), se si esegue l'app da iPhone e successivamente si collega il debugger al processo, tutto funziona ok, voglio dire, se la mappa tenta di eseguire il rendering quando il debugger è collegato, allora si ottiene exc_bad_access, si tratta di un errore del debugger quindi ?, Sono confuso. – Fantini

risposta

9

La risposta a questo non è mio, questo in risposta in here, grazie Dave, ho' m solo citarlo in modo chiunque può vedere la risposta.

ho trovato la radice del problema e hanno una soluzione:

Il problema sembra essere innescato da OpenGL ES Telaio cattura in XCode; Suppongo che questo problema sia iniziato quando Apple ha aggiunto Metal al mix come di XCode 6.4/iOS 8.3, forse in qualche modo influendo negativamente sull'intero sistema di debug di acquisizione dei frame .

La soluzione: EDIT: ho trovato la radice del problema e hanno una soluzione:

Il problema sembra essere innescato da OpenGL ES Telaio cattura in XCode; Suppongo che questo problema sia iniziato quando Apple ha aggiunto Metal al mix come di XCode 6.4/iOS 8.3, forse in qualche modo influendo negativamente sull'intero sistema di debug di acquisizione dei frame .

La soluzione:

  1. in Xcode, vai al prodotto> Schema> Modifica schema ...
  2. Selezionare l'opzione "Esegui" scheda a sinistra.
  3. Selezionare la sottoscheda "Opzioni" in alto.
  4. Cambia "Cattura quadro GPU" da "Abilitato automaticamente" o "ES OpenGL" a "Metallo" o "Disabilitato".

Disabilita l'acquisizione frame OpenGL ES, che non è eccezionale, ma consente a di continuare a eseguire il debug delle build.

Non sono sicuro se questo problema è di Apple o di Google ma inserirò i report di bug in entrambi. Buona programmazione!

+0

ha funzionato come un charm..thnks..ma ci sono altri problemi che possiamo incontrare cambiando questa configurazione? Non influenzerà altri codici? –

+0

Non so davvero e rispondo a questa domanda, nella mia esperienza l'app funziona perfettamente, ma non so se ci sia un problema di prestazioni o se lo sarà in futuro. – Fantini

+0

Colpisci il problema con iOS 11.0 e SceneKit su alcuni progetti –

0

ho avuto lo stesso identico problema:

iphone 4 -> iOS 7 (di lavoro)

simulatore xcode (funzionante)

iphone 5s -> iOs 8.3 (NON funzionante EXC_BAD_ACCESS)

SOLUZIONE: ho aggiornato il mio iphone a iOs 8.4 e il problema è scomparso, le mappe si stanno caricando.

Speranza che aiuta

+1

Grazie per la risposta, ma non è quello che sto cercando, e se un utente scarica l'app in un dispositivo con la stessa configurazione, non sarà in grado di eseguire l'app, ho bisogno di risolvere questo errore. – Fantini