AIR for iOS 开发杂记

以下步骤是开发用于 iOS 的 AIR 应用程序的典型步骤:

您的 AIR 应用程序一经完成,您可以使用分发证书和供给配置文件重新对其进行打包。然后,就可以将其提交到 Apple 应用程序库。

Command-Line

安装 / 卸载 ipa

bin/adt -uninstallApp -platform ios -device [设备 ID] -appid [应用 ID]

bin/adt -installApp -platform ios -device [设备 ID] -package [IPA 路径]

获取设备 ID

lib/aot/bin/iOSBIN/idb -devices

(参考:AIR3.4 实现对 IPA 文件的直接部署

API

iOS 上不支持 nativeApplication.exit(),但 Android 支持。

iOS 上不支持 NetworkInfo,要 通过 ANE 实现

File 目录常量在 iOS 下的对应路径(参考:AIR for iOS のFileクラスで参照できる領域

Constant Path
File.applicationDirectory /var/mobile/Applications/[uniqueID]/[filename].app
File.applicationStorageDirectory /var/mobile/Applications/[uniqueID]/Library/Application Support/[appID]/Local Store/
File.desktopDirectory /var/mobile/Applications/[uniqueID]/Desktop/
File.documentsDirectory /var/mobile/Applications/[uniqueID]/Documents/
File.userDirectory /var/mobile/Applications/[uniqueID]/
File.createTempDirectory() /var/mobile/Applications/[uniqueID]/tmp/FlashTmp0/
File.cacheDirectory (AIR 3.6+) [APPLICATION_HOME]/Library/Caches

如何让 AIR APP 遵循 iOS 数据储存指引
如何避免 iOS 上自动云备份

iOS 上打包及加载多个 SWF (AIR3.6+)

自定义 URLSchemens

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>my-scheme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>com.myapp</string>
    </dict>
</array>

NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
private function onInvoke(event:InvokeEvent):void
{
  trace("Arguments: " + event.arguments);
}

StageWebView 在不同平台上的差异

Multiple Screen Sizes

Adobe AIR 针对 Retina 屏幕的分辨率设定问题
Excluding Devices From Requested Display Resolution Mode

兼容 1024x768, 让 iPad Retina 自动的放大整个程序 2 倍:

<requestedDisplayResolution>standard</requestedDisplayResolution>

AIR3.6 之后支持新属性:

<requestedDisplayResolution excludeDevices="iPad">high</requestedDisplayResolution>

详细 Model Identifier 请参考 iOS 设备列表

为多种屏幕尺寸编写移动 Flash 内容 (重要)
在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
专为多设备、多分辨率应用而设计

Configurations

APP 图标大小: 29x29, 48x48, 50x50, 57x57, 58x58, 72x72, 100x100, 114x114, 144x144, 512x512, 1024x1024, 40x40, 76x76, 80x80, 120x120, 152x152 (AIR3.9+)

List of properties and sizes for application icons, launch images, screenshots, video previews for iOS AIR apps

设置移动应用程序属性 (Setting mobile application properties)
AIR 应用程序描述符文件 (AIR Application Descriptor File)

创建程序偏好设置 (Create a Settings Bundle) - 方法详见《iOS Development with Flash》第 16 章内容,以及使用 相关辅助代码

FlashBuilder4.7 的 AIR SDK 升级方法
Step 4. Don’t copy all contents from the aot folder, just copy strip from lib\aot\bin to the aot bin folder of the newly created AIR SDK 3.6 (AIRSDK\lib\aot\bin).

Packaging a native extension 打包 AIR 原生扩展 (ANE) (注意事项待补)
20 tips for creating Air Native Extensions for iOS

Debugging

通过 AIR3.3 实现 AIR 应用在 iOS 设备上的 USB 调试

不使用 ASC2.0 让 SWF 支持 Adobe Scout 的性能分析。使用 SWF Scout Enabler 工具即可。

Native Extensions

Native Extensions 101 How to build ANE 64-bit Distriqt