Попытка получить доступ к iOS 11Camera Roll на AIR 28+ приводит к пустому экрану
У меня есть старое приложение, которое меня попросили обновить. Приложение содержит возможность прикрепить фотографию к форме, либо с помощью камеры или камеры Roll. Я обновил AIR 28, чтобы убедиться, что Apple даже примет его, и добавил новые проверки прав доступа (последняя сборка была в AIR 22). Функциональность камеры работает отлично, и Camera Roll работает на Android, но на iOS Camera Roll просто пуст:
Вот фрагмент кода, который я использую для авторизации использования (использование файла запрашивалось ранее):
private function launchCamera(e:NativeDialogEvent):void {
if ( e.index == "0" ) {
if (CameraRoll.supportsBrowseForImage) {
if (CameraRoll.permissionStatus != PermissionStatus.GRANTED) {
var roll:CameraRoll = new CameraRoll();
roll.addEventListener(PermissionEvent.PERMISSION_STATUS, function (e:PermissionEvent):void {
if (e.status == PermissionStatus.GRANTED) {
launchCameraRoll();
} else {
Alerter.showAlert("To use this functionality, you must provide permission to access the Camera Roll");
}
});
try {
roll.requestPermission();
} catch (e:Error) {
// another request is in progress
}
} else {
launchCameraRoll();
}
}
} else if ( e.index == "1" ) {
if (CameraUI.isSupported) {
if (CameraUI.permissionStatus != PermissionStatus.GRANTED) {
var cam:CameraUI = new CameraUI();
cam.addEventListener(PermissionEvent.PERMISSION_STATUS, function (e:PermissionEvent):void {
if (e.status == PermissionStatus.GRANTED) {
launchCameraUI();
} else {
Alerter.showAlert("To use this functionality, you must provide permission to access the Camera");
}
});
try {
cam.requestPermission();
} catch (e:Error) {
// another request is in progress
}
} else {
launchCameraUI();
}
}
}
}
/**
* Launches the camera roll. Meant to be called after permissions are requested
*/
private function launchCameraRoll():void {
var roll:CameraRoll = new CameraRoll();
roll.addEventListener(MediaEvent.SELECT, this.camCompleteHandler);
roll.browseForImage();
}
private function launchCameraUI():void {
var cam:CameraUI = new CameraUI();
cam.addEventListener(MediaEvent.COMPLETE, this.camCompleteHandler);
cam.launch(MediaType.IMAGE);
}
А вот узел iPhone в моем app.xml:
<iPhone>
<InfoAdditions><![CDATA[
<key>UIDeviceFamily</key>
<array>
<string>1</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Used for selecting Photos from your device to include in Service submissions.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Used for selecting Photos from your device to include in Service submissions.</string>
<key>NSCameraUsageDescription</key>
<string>Used for taking new photos to include in Service submissions.</string>
]]></InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>
Я дважды проверил старые сборки, и они работают просто отлично. Я протестировал последние версии AIR 27 и 28, а также бета-версию AIR 29, и все они имеют одинаковую проблему. Я могу скопировать его как в режиме отладки, так и в специальном дистрибутивном пакете. Я ничего не вижу в журналах XCode и ничего не отображается в консоли при отладке либо. Кто-нибудь, как решить эту проблему? Это последняя вещь, держащая это обновление от выпуска.