我们要在Android上同时安装调试和发布版本。使用了离子+科尔多瓦,并且一个信号引起了问题。
在cordova-android@6.4上,我们使用了以下脚本:
cat -> platforms/android/build-extras.gradle <<EOF
ext.postBuildExtras = {
android.buildTypes.debug.applicationIdSuffix = '.debug'
}
EOF
if [[ $CORDOVA_CMDLINE = *"--release"* ]]; then
pattern="s,com\.appname\.app\.debug\.permission\.RECEIVE_ADM_MESSAGE,com\.appname\.app\.permission\.RECEIVE_ADM_MESSAGE,g"
else
pattern="s,com\.appname\.app\.permission\.RECEIVE_ADM_MESSAGE,com\.appname\.app\.debug\.permission\.RECEIVE_ADM_MESSAGE,g"
fi
perl -pi -e $pattern platforms/android/AndroidManifest.xml platforms/android/android.json
这将添加调试应用程序后缀。并在android-manifest中为推送通知添加了一个信号的权限。
在没有权限管理冲突之前,现在使用cordova-android@8.0.0,我们安装调试版本,然后运行发行版,当我尝试安装它时,我们看到:
Failure [INSTALL_FAILED_DUPLICATE_PERMISSION: Package com.appname.app attempting to redeclare permission com.appname.app.permission.RECEIVE_ADM_MESSAGE already owned by com.appname.app.debug]
我似乎找不到导致此的科尔多瓦(或一个信号)发生了什么变化。我认为android中的权限管理已更改,并且调试后缀已不再足够。