場景1.
A 應用 有兩個版本 第一個 正式版 第二個測試版? ? 測試版的包名 = 正式版+test ,在Android studio 中 也就是 applicationId ?。
兩個版本都可以成功的安裝在手機上,也就是說 在手機上可以有 兩個 A 應用。
?場景2
由于某些原因,A 應用要改包名,重新做一個正式版的應用。也就是要在手機上安裝兩個 正式版的A.
我對新的應用A 改了包名 配置 重新簽名打包 ,意想不到的結果出現了,不能成功安裝兩個A 應用,提示 android APP 安裝失敗 應用自定義權限重名 ?還有一些說是魅族的鍋之類相似的問題。
最后看到這么一句話
擁有相同自定義權限的軟件必須使用同樣的簽名,否則后一個程序無法安裝。
這個也就解釋了 為什么 A 的正式版和開發版 為什么能安裝在手機上 而不提示 應用自定義權限重名,應為用了同一個簽名。
我做的新的A 應用,用了新的簽名,再加上自己沒有改掉清單文件中含有android:protectionLevel="signatureOrSystem" ?的配置的包名
A ?之前的配置
android:name="com.a.permission.MIPUSH_RECEIVE"
android:protectionLevel="signatureOrSystem"/>
那么改掉之后的A的配置
android:name="com.a.new.permission.MIPUSH_RECEIVE"
android:protectionLevel="signatureOrSystem"/>
記得改新包名的時候 所有相關的地方都要仔細查看。