我有一个适用于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版本的软件包名称,以便可以更新应用程序(即最终用户可以接收更新,以替换他们现有的应用程序安装)。
如何在不创建两个单独项目的情况下为每个平台设置软件包名称?
答案 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答案了解详情。