Ich habe eine Cordova App (geschrieben für Android und iOS), die in der Produktion mit einer guten Anzahl von Benutzern funktioniert, einschließlich iOS 10.0 nach der notwendigen Sicherheit zwickt einen Monat oder vor zwei. Jetzt mit den neuesten 10.1-Upgrades, (derzeit testen auf 10.1.1) finde ich, dass Versuche, die Video-Capture-Funktionalität vollständig abstürzt Cordova, ohne eine Option zum Debuggen aus einer JS-Perspektive. Es gibt kein Problem auf der Android-Seite. Dies ist nur mit dem neuesten Update für iOS, und es gab keine Code oder Plugin-Updates oder Änderungen.
Wir verwenden die neuesten cordova-plugin-media-capture Plugin, v1.4.0, mit ngCordova. Anrufe zu diesem Plugin, um ein Foto über $cordovaCapture.captureImage
zu machen funktionieren gut in iOS 10.1.1. Es sind nur Anrufe an $cordovaCapture.captureVideo
, die Cordova vollständig und sofort zum Absturz bringen. Ich habe Xcode für den Fall angesehen, dass es neue oder unvorhergesehene Einstellungen gibt und alles scheint korrekt zu sein, daher würde ich alle Vorschläge zur Lösung dieses Problems begrüßen.
Früher (ein Monat oder zwei Jahre) haben wir beschlossen, das neue iOS 10 Berechtigungsproblem mit der cordova-Plugin-Einstellungen-Haken Plugin mit diesen iOS-Einstellungen (Snippet gezeigt) in config.xml:
<platform name="ios">
<config-file parent="NSLocationWhenInUseUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
<config-file parent="NSCameraUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here....</string>
</config-file>
<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
<string>Reason goes here...</string>
</config-file>
Ich habe diese Einstellungen mit Xcode bestätigt. Die Parameter, die wir auf den eigentlichen Aufruf passieren in lauten wie folgt:
$cordovaCapture.captureVideo
({
limit: 1, // how many clips to record (iOS must be 1)
duration: 300 // maximum length (in seconds) = 5 minutes
})
der Hoffnung, jemand anderes verwaltet das gleiche Problem zu lösen und ist bereit, die Abhilfe zu teilen.
FYI wurde app ursprünglich Cordova V6.2.0 verwenden. Ich habe auf die neueste v6.4.0 aktualisiert und erneut getestet, bekomme aber das gleiche iOS-Problem. –
Für die zwei Leute, die freundlicherweise vorschlagen, schaue ich mir die Mikrofonberechtigungen an. Ich habe weiter gegraben und das scheint der Grund dafür zu sein, dass es abstürzt (aus dem Absturzbericht.) Irgendetwas muss irgendwo versaut sein, da ich sowohl Ihre config.xml-Einstellungen eingeschlossen habe, als auch den Xcode Gegenwart, aber die App scheint es nicht zu haben. –
Versucht, die Mikrofoneinstellungen in config.xml zu behalten, dann 'cordova clean ios', dann neu aufbauen und laufen. Habe den Trick gemacht, und ich kann jetzt wieder Videos aufnehmen. Das zu Grunde liegende Problem war die Mikrofoneinstellung, aber es gab auch noch etwas anderes im Build-Prozess. –