web-dev-qa-db-de.com

Neue Warnungen in iOS 9: "Der gesamte Bitcode wird gelöscht"

Ich habe diese neue Warnung zu Google Framework in meiner App:

(null): DRINGEND: Der gesamte Bitcode wird gelöscht, da "/ Users/meinname/Library/Mobile Documents/com ~ Apple ~ CloudDocs/Ordnername/Anwendungsname/GoogleMobileAds.framework/GoogleMobileAds (GADSlot + AdEvents.o)" ohne Bitcode erstellt wurde . Sie müssen es mit aktiviertem Bitcode neu erstellen (Xcode-Einstellung ENABLE_BITCODE), eine aktualisierte Bibliothek vom Hersteller beziehen oder den Bitcode für dieses Ziel deaktivieren. Hinweis: Dies wird in Zukunft ein Fehler sein.

Xcode 7 warnt mich rund 204 Mal vor dem gleichen Konzept, und ich konnte damit nicht umgehen. Außerdem habe ich ein Problem beim Zugriff auf das Netzwerk von meiner App. Dies ist der Fehler aus dem Debugging-Bereich:

-canOpenURL: Fehler bei URL: "Kindle: // home" - Fehler: "Diese App darf nicht nach Schema Kindle fragen"

Alle diese Probleme waren in iOS 8 nicht vorhanden.

385
C.Farrugia

Ihre Bibliothek wurde ohne Bitcode kompiliert, aber die Bitcode-Option ist in Ihren Projekteinstellungen aktiviert. Sagen Sie NO bis Enable Bitcode in den Ziel-Build-Einstellungen und den Library-Build-Einstellungen, um die Warnungen zu entfernen.

Für diejenigen, die sich fragen, ob das Aktivieren von Bitcode erforderlich ist:

Bei iOS-Apps ist Bitcode die Standardeinstellung, jedoch optional. Für watchOS- und tvOS-Apps ist ein Bitcode erforderlich. Wenn Sie Bitcode bereitstellen, müssen alle Apps und Frameworks im App-Bundle (alle Ziele im Projekt) Bitcode enthalten.

https://help.Apple.com/xcode/mac/current/#/devbbdc5ce4f

1021
Zia

Nach Xcode 7 ist die Bitcode-Option standardmäßig aktiviert. Wenn Ihre Bibliothek ohne Bitcode kompiliert wurde, die Bitcode-Option jedoch in Ihren Projekteinstellungen aktiviert ist, können Sie:

  1. Aktualisieren Sie Ihre Bibliothek mit Bitcode,
  2. Sagen Sie NEIN, um Bitcode aktivieren in Ihrem Ziel Einstellungen erstellen

Enter image description here

Und die Library Build Settings, um die Warnungen zu entfernen.

Weitere Informationen finden Sie unter Dokumentation des Bitcodes in der Entwicklerbibliothek .

Und WWDC 2015 Session 102: "Platforms State of the Union"

Enter image description here

110
ElonChan

In meinem Fall zur Vermeidung dieses Problems:

  1. Stellen Sie sicher, dass Sie es mit Xcode 7 zu tun haben, NICHT mit niedrigeren Versionen. In der niedrigeren Version existiert dieses Flag nicht.

  2. Setup: Projekt> Build-Einstellungen> Alle> Build-Optionen> Bitcode aktivieren = NEIN

enter image description here

Methode canOpenUrl wurde in iOS 9 (aus Datenschutzgründen) geändert und kann nicht mehr kostenlos verwendet werden. Ihr Banneranbieter sucht nach installierten Apps, damit keine Banner für eine bereits installierte App angezeigt werden.

Das ergibt alle Log-Anweisungen wie

-canOpenURL: Fehler bei URL: "Kindle: // home" - Fehler: "Diese App darf nicht nach Schema Kindle fragen"

Die Anbieter sollten ihre Logik dafür aktualisieren.

Wenn Sie nach installierten Apps/verfügbaren Schemata suchen müssen, müssen Sie diese Ihrer info.plist -Datei hinzufügen.

Fügen Sie der Plist den Schlüssel 'LSApplicationQueriesSchemes' als Array hinzu. Fügen Sie dann Zeichenfolgen wie "Kindle" in dieses Array ein.

Natürlich ist dies keine Option für die Bannerwerbung (da diese dynamisch sind), aber Sie können auf diese Weise nach Ihren eigenen Apps oder bestimmten anderen Apps wie Twitter und Facebook suchen.

Dokumentation der canOpenUrl: Methode canOpenUrl:

Dokumentation zum Schlüssel LSApplicationQueriesSchemes

15
Saren Inden

Wenn Sie CocoaPods verwenden und Bitcode für alle Bibliotheken deaktivieren möchten, verwenden Sie den folgenden Befehl im 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
12
Eike

Haftungsausschluss: Dies ist für diejenigen gedacht, die einen kontinuierliche Integration Workflow unterstützen, der einen automatisierten Prozess erfordert. Wenn nicht, benutze bitte Xcode wie in Javiers Antwort beschrieben.

Dies funktionierte für mich, um ENABLE_BITCODE = NO über die Befehlszeile einzustellen:

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

Beachten Sie, dass dies in allen Xcode-Versionen möglicherweise instabil ist. Es wurde mit Xcode 7.0.1 und als Teil eines Cordova 4.0-Projekts getestet.

8
miraculixx

So beheben Sie die Probleme mit dem canOpenURL-Fehler Dies liegt an der neuen App Transport Security-Funktion in iOS9

Lesen Sie diesen Beitrag, um dieses Problem zu beheben http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

2
Phil