Ionic2/Cordova构建具有不同功能的发布应用程序.示例:免费和付费

Fer*_*eal 11 android cordova ionic-framework ionic2 android-flavors

我正在开发一个应用程序,它将有一个付费(完整)版本和一个免费(精简版)版本.

在为Android开发的另一个应用程序中,可以使用flavors(productFlavors)轻松管理它,我可以在其中配置应用程序的任何部分的替换.例如:我可以boolean PAID_VERSION为每个应用程序配置applicationId和flag ,如下所示:

productFlavors {
    free {
        applicationId 'com.mycompany.myapp.free'
        buildConfigField "boolean", "PAID_VERSION", "false"
    }
    paid {
        applicationId 'com.mycompany.myapp.paid'
        buildConfigField "boolean", "PAID_VERSION", "true"
    }
}
Run Code Online (Sandbox Code Playgroud)

在代码中我可以检查PAID_VERSION以下方式的标志:

boolean b = BuildConfig.PAID_VERSION;
Run Code Online (Sandbox Code Playgroud)

如果我想按版本更改图标和应用程序名称,我应该在applicationId每个flavor的packages()中指定替换默认值的特定图标,例如:

String资源应用程序名称:

自由路径: /free/res/values/strings.xml

<resources>
    <string name="app_name">My App - Free</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

付费路径: /paid/res/values/strings.xml

<resources>
    <string name="app_name">My App - Paid</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

图标资源:

自由路径:( /free/res/drawable/icon.pngImagem Free)

付费路径:( /paid/res/drawable/icon.pngImagem付费)


怎么可能有一个类似于Ionic2/Cordova项目的配置,这可以通过相同的代码库生成2个具有一些不同功能的应用程序,同时和独立地分布在商店中?

Ita*_*res 5

好吧,你可能已经偶然发现了这个,但是这个家伙创建了这个 Gulp 任务config.xml为此目的在构建时修改文件。

同样在这个论坛主题中,他解释了如何获取条件应用内代码的当前版本。

另一个相关主题是:为cordova配置构建风格,建议使用Cordova Hooksconfig.xml根据环境变量修改文件,如下所述:使用环境变量/参数化config.xml