已知該問題只在 iOS 7.0+ 中存在。
問題重現:
1、同一個 app,使用 Product->Archive 菜單,用企業簽名編譯兩次,編譯出兩個文件:app1 和 app2.ipa。它們的 BundleIdentifier 要分別設置為 xxx.xxx.app1 和 xxx.xxx.app2。
2、編寫兩個 .plist 文件:app1.plist 和 app2.plist。一個的 url 指向 app1.ipa,一個的 url 指向app2.ipa,但 Bundle Identifier 則統一為 xxx.xxx.app。也就是說,兩個 .plist 文件除 url 部分外,其他都是相同的。app1.plist文件內容附後。
3、編寫一個 html 頁面:
4、將 app1.ipa、app2.ipa、app1.plist、app2.plist 和 html 文件都放到服務器上。
5、在 iOS 7 設備上打開 html 頁面,點擊第一個鏈接,安裝 app1.ipa。此時 app 正常安裝。
6、再次打開 html 頁面,點擊鏈接2,安裝 app2.ipa。由於在 app2 的描述文件(app2.plist)和 .ipa 包(app2.ipa)中的Bundle Identifier 不一致,安裝成功後除了正常的 app 圖標外, 還會多出一個特殊的圖標,這個圖標用戶無法刪除它,如下圖所示:
這個無法刪除的圖標,我暫且稱之為“影子圖標”。影子圖標無法用正常的手段進行刪除。
解決辦法:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD48cD4xoaLPyL2ryc/NvNbQtcShsNX9s6O1xCBhcHAgzbyx6qGxyb6z/aOssdzD4rjJyMWhozwvcD48cD4yoaLU2bTOteO79yBodG1sINKzw+bW0LXEwbS90zGjrLy0sLLXsCBhcHAxo6zV4tH5w+jK9s7EvP66zS5pcGEgtcQgQnVuZGxlIElEvs3Su9bCwcujrNPaysfUrcC0tcTTsNfTzbyx6sm+s/2jrMzmu7vOqqGw1f2zo7XEYXBwIM28seqhsaGjPC9wPjxwPsrUytS/tKOs1eK49qGw1f2zo7XEIGFwcCDNvLHqobHKx7/J0tTJvrP9tcShozxzdHJvbmc+PC9zdHJvbmc+PC9wPjxwPjxzdHJvbmc+tavKx6OsyOe5+yBwbGlzdCDOxLz+tcQgQnVuZGxlSUQg1tCw/Lqswcu3x7eo19a3+6OoscjI57/VuPGjqaOsxMfDtMTjvs2xr77nwcuho9LyzqrI57n7QnVuZGxlSUQg1tCw/Lqs09C3x7eo19a3+yxYY29kZcrHzt63qLHg0uu1xKGjyOe5+7eiyfrV4tbWx+m/9qOsztLE3M/rtb21xM6o0ruw7Leovs3Kx9bY1sPJ6LG4Oi0oPC9zdHJvbmc+PC9wPjxwPri9o7phcHAxLnBsaXN0PC9wPjxwPjw/eG1sIHZlcnNpb249"1.0" encoding="UTF-8"?>
將其中的 url 部分修改為如下內容即得到 app2.plist 文件: