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