尝试使用权限时,使用 Adobe AIR SDK 24 构建的 iOS 应用程序崩溃
Posted
技术标签:
【中文标题】尝试使用权限时,使用 Adobe AIR SDK 24 构建的 iOS 应用程序崩溃【英文标题】:iOS app build with Adobe AIR SDK 24 crashes when trying to use permissions 【发布时间】:2017-06-01 15:39:22 【问题描述】:我有一个为 ios 设备开发的 adobe AIR 应用程序,我使用 Adobe Flash Builder 4.7 创建 .ipa 文件。
在 AIR SDK 版本 23 之前,该应用程序运行良好。在 AIR SDK 版本 24 中,尝试访问设备相机时添加了一个 Permissions 类。现在应该以编程方式处理访问相机时的权限,如下所示:https://forums.adobe.com/thread/2250328
我已经尝试在我的代码库中实现给定的示例,并且在以下 sn-p 中,我对权限的引用为空,如下所示:
private function connect():void
if (Camera.permissionStatus/*permissionStatus is null*/ != PermissionStatus.GRANTED)
cam.addEventListener(PermissionEvent.PERMISSION_STATUS,
function(e:PermissionEvent):void
if (e.status == PermissionStatus.GRANTED)
connectCamera();
else
// permission denied
);
try
cam.requestPermission(); // **when calling this one my app crashes**
catch(e:Error)
// another request is in progress
else
connectCamera();
private function connectCamera():void
video = new Video(640, 480);
video.attachCamera(cam);
addChild(video);
我的预感是,在设备上调试时,Flash Builder 使用的是 flex sdk 而不是 AIR SDK,这使得上述属性/方法不可用,如 SDK 文档中所述:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Camera.html 可以看到权限状态方法仅适用于 AIR 运行时。
因此,我如何检查并确保我正在使用 AIR 运行时进行调试,并最终避免我的应用在询问用户相机权限时崩溃。
【问题讨论】:
我在使用 Starling + AIR 24 时遇到了性能问题,并且 Starling 论坛 (forum.starling-framework.org/topic/air-24-performance-issues) 上有一个相关主题,所以这不仅仅是我的想象。 AIR 24 在许多方面可能是一个糟糕的版本,您可能希望恢复到 AIR 23 而不是寻找解决方法。 【参考方案1】:也许是这个? https://forums.adobe.com/thread/2264992
请在 app.xml 的标签下包含可可键 例如,如果您尝试在应用程序中访问相机, 您需要在下面包含以下标签 NSCameraUsageDescription "一些文本" 有关可可键的详细信息,请参阅以下链接: Cocoa Keys
【讨论】:
以上是关于尝试使用权限时,使用 Adobe AIR SDK 24 构建的 iOS 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章
在 Adobe Flex/AIR 中使用 HTTPService 对象进行 HTTP 基本身份验证