使用 iOS Simulator 的设备模拟

iOS Simulator(仅限 Mac)提供运行和调试 iOS 应用程序的快速方法。使用 iOS simulator 测试时,无需开发人员证书或设置配置文件。您还必须创建一个 p12 证书,尽管它可以自签名。

默认情况下,ADT 总是启动 iPhone 模拟器。要更改模拟器设备,请执行以下操作:

  • 使用以下命令来查看可用的模拟器。

    xcrun simctl list devices

    输出与以下所示内容相似。

                            == Devices == 
                            -iOS 10.0 – 
                            iPhone 5 (F6378129-A67E-41EA-AAF9-D99810F6BCE8) (Shutdown)
                            iPhone 5s (5F640166-4110-4F6B-AC18-47BC61A47749) (Shutdown)
                            iPhone 6 (E2ED9D38-C73E-4FF2-A7DD-70C55A021000) (Shutdown)
                            iPhone 6 Plus (B4DE58C7-80EB-4454-909A-C38C4106C01B) (Shutdown)
                            iPhone 6s (9662CB8A-2E88-403E-AE50-01FB49E4662B) (Shutdown)
                            iPhone 6s Plus (BED503F3-E70C-47E1-BE1C-A2B7F6B7B63E) (Shutdown)
                            iPhone 7 (71880D88-74C5-4637-AC58-1F9DB43BA471) (Shutdown)
                            iPhone 7 Plus (2F411EA1-EE8B-486B-B495-EFC421E0A494) (Shutdown)
                            iPhone SE (DF52B451-ACA2-47FD-84D9-292707F9F0E3) (Shutdown)
                            iPad Retina (C4EF8741-3982-481F-87D4-700ACD0DA6E1) (Shutdown)
                            ....
  • 您可以通过设置环境变量 AIR_IOS_SIMULATOR_DEVICE 选择一个特定的模拟器,如下所示:

    export AIR_IOS_SIMULATOR_DEVICE = 'iPad Retina'

设置此环境变量后重新启动此过程,然后在选择的模拟器设备上运行应用程序。

注: 与 iOS Simulator 一起使用 ADT 时,必须始终包括 ‑platformsdk 选项,以指定 iOS Simulator SDK 的路径。

若要在 iOS Simulator 中运行应用程序:

  1. 使用 adt -package 命令时包括 -target ipa-test-interpreter-simulator -target ipa-debug-interpreter-simulator ,如下面示例所示:

    adt     -package 
                                    -target ipa-test-interpreter-simulator 
                                    -storetype pkcs12 -keystore Certificates.p12 
                                    -storepass password 
                                    myApp.ipa 
                                    myApp-app.xml 
                                    myApp.swf 
                                    -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk
    注: 模拟器现在不再需要签名选项,因此可以在 -keystore 标志中使用任何值,因为 ADT 将不提供此标志。
  2. 使用 adt -installApp 命令在 iOS Simulator 中安装应用程序,如下面示例所示:

    adt     -installApp 
                                    -platform ios 
                                    -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk 
                                    -device ios-simulator 
                                    -package sample_ipa_name.ipa
  3. 使用 adt -launchApp 命令在 iOS Simulator 中运行应用程序,如下面示例所示:

    注: 默认情况下,命令 adt -launchApp 将在 iPhone Simulator 中运行此应用程序。若想在 iPad Simulator 中运行此应用程序,可导出环境变量 AIR_IOS_SIMULATOR_DEVICE = "iPad",然后使用命令 adt -launchApp
    adt     -launchApp 
                                    -platform ios 
                                    -platformsdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk 
                                    -device ios-simulator 
                                    -appid sample_ipa_name

要在 iOS Simulator 中测试本机扩展名,请在 extension.xml 文件中使用 iPhone-x86 平台名称,并在 nativeLibrary 元素中指定 library.a (静态库),如下面的 extension.xml 示例所示:

<extension xmlns="http://ns.adobe.com/air/extension/3.1"> 
                          <id>com.cnative.extensions</id> 
                          <versionNumber>1</versionNumber> 
                          <platforms> 
                            <platform name="iPhone-x86"> 
                              <applicationDeployment> 
                                <nativeLibrary>library.a</nativeLibrary> 
                                <initializer>TestNativeExtensionsInitializer </initializer> 
                                <finalizer>TestNativeExtensionsFinalizer </finalizer> 
                              </applicationDeployment> 
                            </platform> 
                          </platforms> 
                        </extension>
注: 在 iOS Simulator 中测试本机扩展名时,不要使用针对设备编译的静态库( .a 文件),而是确保使用为模拟器编译的静态库。