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

时间:2017-04-13 20:52:09

标签: android cordova ionic-framework ionic2 android-flavors

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

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

productFlavors {
    free {
        applicationId 'com.mycompany.myapp.free'
        buildConfigField "boolean", "PAID_VERSION", "false"
    }
    paid {
        applicationId 'com.mycompany.myapp.paid'
        buildConfigField "boolean", "PAID_VERSION", "true"
    }
}

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

boolean b = BuildConfig.PAID_VERSION;

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

字符串资源应用程序名称:

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

<resources>
    <string name="app_name">My App - Free</string>
</resources>

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

<resources>
    <string name="app_name">My App - Paid</string>
</resources>

图标资源:

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

付费路径:/paid/res/drawable/icon.png(图片付费)

问题

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

1 个答案:

答案 0 :(得分:4)

好吧,你可能已经偶然发现了这个问题,但this guy created this Gulp tasks为了这个目的修改了config.xml文件的构建时间。

另外in this forum topic他解释了如何获取条件应用内代码的当前版本。

另一个相关主题是:Configure build flavors for cordova建议使用Cordova Hooks根据环境变量修改config.xml文件,如下所述:Using environment variables / parameterizing config.xml