如何在 Windows 10 Mobile Phone 上测试 Ionic 2 应用程序?

How do I test Ionic 2 apps on a Windows 10 Mobile Phone?

我正在努力寻找有关 Windows 10 phone 测试的有意义的文档。我添加了 win 10 作为平台并创建了一个项目文件夹,但不清楚从这一点开始要做什么。有人经历过这个过程吗?

好的,所以我用了大约 8 个小时(我认为问题的很大一部分是期望单个站点拥有所需的所有信息(即 Ionic 的文档),但最终它需要来自Ionic、Cordova 和 Microsoft。无论如何,这是我的笔记:

在 windows 移动设备上调试

确保您 运行 'ionic platform add windows'。 从 platforms/windows 文件夹中打开 windows 10 项目(您可以打开解决方案,但如果打开,请确保将 win 10 项目设置为默认启动)。 将 cpu 类型设置为 windows-ARM(对于 Lumia 550)。

Config.xml

打开 config.xml(设计器视图)并将任何 API 端点添加到 'Common' 选项卡中的 'Domain Access' 列表。 您可以在此处找到有关 config.xml 的更多信息: Cordova: Config.xml

在 'windows' 选项卡下,确保 Windows 10 是目标版本。

证书

Win phone aps 需要本地存储的证书才能通过 SSL 访问资源。

从服务器下载证书 (通过浏览器执行此操作,单击挂锁或类似按钮并另存为 DER 类型 - 由于某种原因具有 .cer 扩展名)。 将证书保存到项目根目录,例如'api-certificate.cer'

将以下内容添加到包中。windows10..appxmanifest

<Extensions>
    <!--Certificates Extension-->
    <Extension Category="windows.certificates">
        <Certificates>
            <Certificate StoreName="Root" Content="api-certificate.cer" />        
        </Certificates>
    </Extension>
</Extensions>

如果需要,可以通过此方法添加额外的证书(我猜)。

确保在项目中包含 .cer,因为它需要包含在构建的包中。

二进制文件

调试过程可能需要一堆默认情况下未复制到程序包中的二进制文件。 对我来说,它不是复制 SqlLite,它需要复制到调试文件夹和任何芯片架构特定的依赖文件夹,例如 ARM。您会收到显示缺少哪些文件的错误(我什至为它们创建了空文件夹)。

建造

在 VS 中构建应用程序(您可以使用 'ionic build windows' 构建,但这对我来说一直失败,因为它尝试构建生成的 windows 项目而不先设置 cpu 体系结构). 转到项目文件夹 > 平台 > windows 并打开 cordovaapp.sln。 将 windows 10 项目设置为默认启动并检查它是否设置为 windows-ARM.

构建解决方案。

打包应用程序

MSDN: Packaging UWP Apps

确保 win 10 项目的 appxmanifest 文件包含数据的内容 URI API:

https://api.example.com(规则:包含和 WinRT:全部)

将 api-certificate.cer 文件复制到平台 > windows 文件夹中(或使用 ./reload-platform windows powershell 脚本)。

转到项目 > 商店 > 创建应用程序包。
Select 'No' 用于本地包创建并遵循向导(可能只需要选择正确的体系结构)。 API 的 .cer 文件将包含在程序包中。

包将在 AppPackages 文件夹中创建,文件夹名称为 [projectName]。[verion]。

部署

如果它 运行 在 USB 连接设备上运行,那么它可能可以部署到应用商店。

以下是有用资源的粗略组合:

TACO-VS: Packaging Windows Apps MSDN: Side-loading or Developer Mode? Technet: Side-load apps in Windows 10

配置设备以接受旁加载应用程序

MSDN: Enable Side-Loading

使用开发者功能

在您要启用的设备上,转到“设置”。选择更新和安全,然后选择针对开发人员。 选择您需要的访问级别 - 开发 UWP 应用程序,选择开发者模式,否则选择 'sideload apps'。 阅读您选择的设置的免责声明,然后单击是接受更改。

可选:使用 winappdeploycmd.exe

部署

(MSDN:使用 WinAppDeployCmd.exe 部署 UW 应用程序](https://msdn.microsoft.com/windows/uwp/packaging/install-universal-windows-apps-with-the-winappdeploycmd-tool)

检查本地可用设备 C:\"Program Files (x86)"\"Windows Kits"\bin\x86\winappdeploycmd 设备

注意:此过程 (winappdeploycmd) 可能用处不大,因为我们要么将文件提供给非托管设备客户,要么 让他们从应用商店下载它,但它可能代替 visual studio.

很有用

将 .cer 和 .appxbundle 复制到 phone 并安装

将 phone 通过 USB 连接到 PC,然后将新建文件夹中的两个文件复制到 phone(例如下载文件夹):

示例文件名

CordovaApp.Windows10_0.0.2.0_arm.cer CordovaApp.Windows10_0.0.2.0_arm.appxbundle

打开 phone 上的文件资源管理器,然后先单击 .cer(证书)。让它安装。
安装证书允许支持侧载的系统安装包含应用程序的已签名应用程序包。 接下来,单击 appxbundle 文件并进行安装(等待 30 秒,因为它仍在后台安装)。 注意:不要尝试打开应用程序,除非它出现在 'recent items' 列表中, 否则,由于缺少资产,您会收到一些静默错误,屏幕将变为空白,或者只是 return 到设备主菜单。

一旦它出现在应用程序菜单中,您就可以正常加载了。

验证

有了开发者许可证,应用程序可以在提交到应用程序商店之前进行验证。

MSDN: Validate Package

MSDN: Using the Windows App Certification Kit