在 Windows 中为 PhoneGap 构建 iOS 签名密钥

Posted

技术标签:

【中文标题】在 Windows 中为 PhoneGap 构建 iOS 签名密钥【英文标题】:Building an iOS signing key for PhoneGap in Windows 【发布时间】:2013-12-18 03:30:17 【问题描述】:

最近有很多开发者问我,当他们只有一台 windows 机器时,如何使用 PhoneGapBuild (PGB) 开发 ios 应用程序?问题不在于开发本身,而在于提供 PGB 可以用来构建 iOS 应用程序的密钥。

一个主要问题是 PGB 的 faq 提供了使用 mac 来实现此目的的说明,另一个是 Apple 的文档假设相同。

那么,是否可以在不使用 mac 的情况下在 windows 中创建密钥,如果可以,具体步骤是什么?

【问题讨论】:

【参考方案1】:

我总是向人们发送 Ian Devlin 的一篇优秀文章的链接:http://www.iandevlin.com/blog/2012/11/phonegap/building-an-ios-signing-key-for-phonegap-in-windows。

解决方案的核心是使用 windows openssl 或 cygwin 变体在 windows 中执行以下操作:

openssl genrsa -des3 -out ios.key 2048

openssl req -new -key ios.key -out ios.csr -subj "/emailAddress=MY-EMAIL-ADDRESS, CN=COMPANY-NAME, C=COUNTRY-CODE"

然后,使用您刚刚生成的 csr 文件转到 apple 请求证书。这很容易。

生成 PEM 和 P12:

openssl x509 -in ios_development.cer -inform DER -out ios_development.pem -outform PEM

openssl pkcs12 -export -inkey ios.key -in ios_development.pem -out ios_development.p12

伊恩解释的结尾说,

您需要生成的最后一个文件是配置文件,它 再次要求您返回 Apple Provisioning Portal。那里 那里有很多关于如何做到这一点的文档,所以我不会深入 在这里。请记住,此类证书需要与您的 iOS 通过他们的 UDID 测试设备,还有文档 如何做到这一点。

生成配置文件后,下载它(例如 iOS_Development.mobileprovision) 并将其保存在与 其他文件。该文件还需要安装在您的每个 iOS 测试设备。

在配置过程中,您必须创建一个 bundle id —— 不要试图找到它,因为它不存在——你是要弥补它,最简单的方法是使用通配符id 像 com.yourcompany.*。如果您不使用推荐的 ad-hoc 分发,您还将被要求提供 iOS 设备的 UUID。您可以免费下载一个 UUID 应用程序,它会为您提供此功能,或者您可以将设备插入 Windows 并在 iTunes 中查找数据(请参阅this question)。如果您不喜欢 iTunes,则应用程序方法更可取(让我们面对现实,如果您正在阅读本文,那么您可能不喜欢)。

最后,您无需将配置文件上传到您的 iOS 设备。您几乎可以使用任何 QR 码扫描仪来加载它,应用程序和配置文件都将被安装。

【讨论】:

正如文章所说,令人讨厌的是,您仍然需要一台 Mac 才能将任何内容上传到应用商店。呸苹果。 如何在苹果官网申请证书?当我尝试它时,我找不到认证请求菜单。我应该为 Apple 开发者计划注册支付 99 美元才能查看认证请求菜单吗? @IanDevlin 我不是 Apple 的所有方面的专家,但是,是的,我认为世界上最富有的公司正在向开发人员收取为其平台编写代码的费用。如果你有选择,不要付钱——这是淫秽的。【参考方案2】:

查看http://www.macincloud.com/ 按小时租用 Mac。也预装了 Application Loader,这是我用来上传 PhoneGap Build 构建的应用程序的工具。即使您真的认为 Apple 现在会提供另一种选择,也很容易。

【讨论】:

现在是 2020 年,您仍然需要一台 Mac 才能将您的应用程序上传到 App Store。谢谢苹果:(

以上是关于在 Windows 中为 PhoneGap 构建 iOS 签名密钥的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 Phonegap Build 中为 iOS 定义自定义 URL 方案吗?

无法在 Windows phone 和 iOS 中安装 Phonegap 构建的应用程序

如何在 phonegap 在线或 Windows 上构建 iphone 应用程序? (不含mac系统)

jQuery Mobile无法在PhoneGap Windows Phone 8中运行

如何在phonegap中为ios添加插件?

在 UrbanAirship 中为 Phonegap 获取传入