Nuovi avvisi in iOS 9

Ho questo nuovo avvertimento su Google Framework nella mia app:

(null): URGENT: tutti i bitcode verranno eliminati perché ‘/ Users / myname / Library / Documenti mobili / com ~ apple ~ CloudDocs / nomecartella / appname / GoogleMobileAds.framework / GoogleMobileAds (GADSlot + AdEvents.o)’ è stato creato senza bitcode . È necessario ricostruirlo con codice bit abilitato (impostazione Xcode ENABLE_BITCODE), ottenere una libreria aggiornata dal fornitore o disabilitare il codice bit per questa destinazione. Nota: questo sarà un errore in futuro.

Xcode 7 mi dà circa 204 avvertimenti su questo stesso concetto, e non potrei andare in giro con questo. Inoltre ho un problema ad accedere alla rete dalla mia app. Questo è l’errore dall’area di debug:

-canOpenURL: non riuscito per l’URL: “kindle: // home” – errore: “Questa app non è autorizzata a interrogare per lo schema kindle”

Tutti questi problemi non erano presenti in iOS 8.

La libreria è stata compilata senza codice bit, ma l’opzione bitcode è abilitata nelle impostazioni del progetto. Dì NO per Enable Bitcode nelle impostazioni di generazione del target e le impostazioni di generazione della libreria per rimuovere gli avvisi.

Per coloro che si chiedono se è necessario abilitare il bitcode:

Nota: per le app iOS, il bitcode è l’impostazione predefinita, ma facoltativa. Se fornisci bitcode, tutte le app e i framework nel pacchetto dell’app devono includere il codice bit. Per le app watchOS, è richiesto il codice bitcode.

https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

Dopo Xcode 7, l’opzione bitcode sarà abilitata per impostazione predefinita. Se la tua libreria è stata compilata senza bitcode, ma l’opzione bitcode è abilitata nelle impostazioni del tuo progetto, puoi:

  1. Aggiorna la tua libreria con il codice bit,
  2. Dì NO per abilitare il codice bit nelle impostazioni di generazione del target

Inserisci qui la descrizione dell'immagine

E le impostazioni di compilazione della libreria per rimuovere gli avvisi.

Per ulteriori informazioni, vai alla documentazione di bitcode nella libreria degli sviluppatori .

E Sessione 102 WWDC 2015: “Piattaforma Stato dell’Unione”

Inserisci qui la descrizione dell'immagine

Nel mio caso per evitare questo problema:

  1. Assicurati di avere a che fare con Xcode 7 , NON versioni inferiori. Nella versione inferiore questa bandiera non esiste.

  2. Impostazione: Progetto> Impostazioni di compilazione> Tutte> Opzioni di creazione> Abilita codice bituso = NO

inserisci la descrizione dell'immagine qui

Il metodo canOpenUrl è in iOS 9 (a causa della privacy) modificato e non è più libero di usarne altri. Il tuo fornitore di banner controlla le app installate in modo che non mostrino i banner per un’app già installata.

Questo dà tutte le dichiarazioni del registro come

-canOpenURL: non riuscito per l’URL: “kindle: // home” – errore: “Questa app non è autorizzata a interrogare per lo schema kindle”

I provider dovrebbero aggiornare la loro logica per questo.

Se hai bisogno di eseguire una query per app installate / schemi disponibili, devi aggiungerle al tuo file info.plist .

Aggiungi la chiave ‘LSApplicationQueriesSchemes’ al tuo plist come una matrice. Quindi aggiungi stringhe in quell’array come “kindle”.

Ovviamente questa non è un’opzione per gli annunci banner (dal momento che sono dinamici), ma puoi comunque effettuare una query in questo modo per le tue app o per altre app specifiche come Twitter e Facebook.

Documentazione di canOpenUrl: metodo canOpenUrl:

Documentazione sulla chiave LSApplicationQueriesSchemes

Se stai usando CocoaPods e vuoi disabilitare Bitcode per tutte le librerie, usa il seguente comando nel Podfile

 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end 

Dichiarazione di non responsabilità: è destinato a coloro che supportano un stream di lavoro di integrazione continua che richiede un processo automatizzato. In caso contrario, utilizzare Xcode come descritto nella risposta di Javier .

Questo ha funzionato per me per impostare ENABLE_BITCODE = NO tramite la riga di comando:

 find . -name *project.pbxproj | xargs sed -i -e 's/\(GCC_VERSION = "";\)/\1\ ENABLE_BITCODE = NO;/g' 

Tieni presente che è probabile che sia instabile nelle versioni Xcode. È stato testato con Xcode 7.0.1 e come parte di un progetto Cordova 4.0.

Per risolvere i problemi con il fallimento canOpenURL. Ciò è dovuto alla nuova funzionalità di sicurezza del trasporto di app in iOS9

Leggi questo post per risolvere il problema http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

Questo problema è stato risolto di recente (novembre 2010) da Google, consulta https://code.google.com/p/analytics-issues/issues/detail?id=671 . Ma sappi che come una buona correzione porta più bug 🙂

Dovrai inoltre seguire il metodo di inizializzazione elencato qui: https://developers.google.com/analytics/devguides/collection/ios/v2 .

Le ultime istruzioni ti daranno un mal di testa perché fa riferimento a utility non incluse nel pod. Di seguito non funzionerà con il cocoapod

 // Configure tracker from GoogleService-Info.plist. NSError *configureError; [[GGLContext sharedInstance] configureWithError:&configureError]; NSAssert(!configureError, @"Error configuring Google services: %@", configureError);