Cordova App ID(iOS Bundle ID)部分不能以数字开头 - 我的必须

Posted

技术标签:

【中文标题】Cordova App ID(iOS Bundle ID)部分不能以数字开头 - 我的必须【英文标题】:Cordova App ID (iOS Bundle ID) section can't start with number - mine HAS to 【发布时间】:2017-03-23 00:11:41 【问题描述】:

如何绕过以字母开头的每个部分的 App ID(相当于 ios 配置文件和 xcode Bundle ID)的cordova 限制?

此唯一 ID 通常是反向域样式。我们在 Apple 商店中有一个现有的应用程序,其捆绑包 ID 有一个以数字开头的部分。它的格式为 uk.co.12xxxxxxx.xxx 要使用 Cordova 构建的应用程序添加新版本,它必须使用该捆绑 ID 进行签名,但 Cordova 不允许这样做。我可以破解它吗?

我使用 Intel XDK 作为 cordova 的 gui,但我正在考虑在 cordova 本身内重新创建构建。当我们有一个可以正常工作的跨平台应用程序时,我不想回到第一方并做一个原生应用程序(它只需要使用适当的捆绑 ID 配置文件进行签名并发布到 iOS 商店)。

【问题讨论】:

【参考方案1】:

回答:你不能。

这与cordova无关,当您将cordova打包到本机应用程序中时,本机应用程序属于平台(ios,android...等)的标准,并且您不能以数字为起点。

对于测试,您可以尝试创建一个空的 android 项目并尝试将包名称设置为“123.example.com” -> 您将获得“a123.example.com”

【讨论】:

谢谢。目标平台是 iOS,现有的本机代码应用程序在其 Bundle ID 中以一个部分开头。我相信这不是平台的限制。捆绑 ID 也不能在 iTunesconnect 上更改,因为它已经有以前的版本。它似乎(来自英特尔的 XDK 论坛)是科尔多瓦施加的限制。我可以给这个跨平台应用程序的 Android 版本起一个不同的名称,但 iOS 版本必须有一个编号,以便现有用户可以更新他们的应用程序。【参考方案2】:

您可以通过执行 Cordova 包导出(在 Intel XDK v3900 构建选项卡上)并修改 <widget> 标记以包含一个 ios-CFBundleIdentifier 属性来解决此问题,该属性为您的 iOS 构建指定唯一的应用 ID .一些消息来源声称该属性尚未在标准 Cordova 中实现,但我确实发现它在 ios-cordova framework repo 中被引用;可能仅在最新版本的 Cordova CLI 之一中。如果支持 <widget> 属性,您必须使用 PhoneGap Build 或 Cordova CLI 使用导出的构建包作为起点构建您的应用程序,因为 <widget> 标记在英特尔 XDK 构建系统中不可修改。

This post 表示有一种方法可以更改 ID AFTER iOS 包已构建,但您需要访问 Mac(同样,如果您想直接使用 Cordova CLI 构建iOS)。

有关英特尔 XDK v3900 中导出功能的更多详细信息,请参阅this doc page。

【讨论】:

非常感谢。我会调查的。

以上是关于Cordova App ID(iOS Bundle ID)部分不能以数字开头 - 我的必须的主要内容,如果未能解决你的问题,请参考以下文章

IOS_根据Bundle ID 唤醒App

IOS_根据Bundle ID 唤醒App

Android Studio Cordova 项目没有生成为 APK/App Bundle 的选项

Xcode 找不到任何与 [bundle ID] 匹配的 iOS App Store 配置文件

应用程序提交 iOS 的 Bundle ID

iOS 修改Bundle ID