Cordova:如何使用cordova-cli为每个平台设置不同的包名?

时间:2014-11-27 09:22:10

标签: android ios cordova

我有一个适用于iOS和Android的应用程序,我正在从PhoneGap 2.x升级到Cordova 4.0。

由于iOS和Android应用程序是使用PhoneGap 2.x创建的,因此我有两个独立的项目(即iOS项目和Android项目)。这些项目具有HTML / CSS / JavaScript资产的共享www目录(使用符号链接)。当我升级到Cordova 4.0时,我可以拥有一个Cordova项目,并使用Cordova CLI为platforms目录中的每个平台创建项目。

但是,Cordova中用于每个平台的软件包名称是在共享的config.xml文件中设置的。 Cordova CLI使用config.xml中设置的包名称来执行perpare,build和add platform命令。

不幸的是,用于PhoneGap 2.x应用程序的软件包名称并不相同(即Android应用程序的软件包名称与iOS应用程序的软件包名称不同)。

例如:Android应用程序的软件包名称类似于com.example.applongname,但iOS应用程序的软件包名称类似于com.example.AppShortName。包名称的开头(即反向公司域名)对于每个应用程序是相同的,但应用程序名称不同。 iOS应用程序名称还包含大写字母。

我需要保留用于初始PhoneGap 2.x版本的软件包名称,以便可以更新应用程序(即最终用户可以接收更新,以替换他们现有的应用程序安装)。

如何在不创建两个单独项目的情况下为每个平台设置软件包名称?

1 个答案:

答案 0 :(得分:8)

以这种方式编写小部件:

<widget id="com.company.app" android-packageName="com.company.androidapp" ios-CFBundleIdentifier="com.company.iosapp" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">

请参阅我的other答案了解详情。