尝试使用权限时,使用 Adob​​e AIR SDK 24 构建的 iOS 应用程序崩溃

Posted

技术标签:

【中文标题】尝试使用权限时,使用 Adob​​e 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 应用程序,我使用 Adob​​e 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

【讨论】:

以上是关于尝试使用权限时,使用 Adob​​e AIR SDK 24 构建的 iOS 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在 Adob​​e Flex/AIR 中使用 HTTPService 对象进行 HTTP 基本身份验证

使用 Adob​​e AIR 在 iOS 上保存位图

将 Flex 转换为 Adob​​e Air

如何使用适用于 Android 的 Adob​​e AIR 设置 Admob

上传 Adob​​e Air APK 300MB

使用 Adob​​e AIR SDK 的 OSX 应用程序代码签名证书