我有兩個內置應用程序圖標(免費和高級版),是否可以在應用程序內購買成功完成後以編程方式將免費圖標替換爲高級圖標?我可以通過編程方式更改應用程序圖標嗎
回答
不,圖標是在應用程序包中指定的,您不得更改該圖標。如果你改變它,你的應用程序簽名將變得無效(不同的校驗和),因此你的應用程序將不再運行。
這是否也適用於內部應用程序,而不是通過公共App Store發佈的應用程序? plist是不可變的嗎? – 2015-02-03 23:25:00
恐怕不是;很確定應用程序圖標不允許有條件地更改。
如果沒有越獄手機,我不認爲這是可能的。應用程序圖標包含在您不允許寫入的應用程序包中。
這是不可能的。應用程序圖標不是動態的,它們只能通過iTunes Connect向您的應用程序提交新更新來更新。有關更多信息,請閱讀iTunes Connect開發人員指南。 https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
我不同意上面的所有答案。 請嘗試應用程序「OneTap」,它會讓你自己的圖標你的新應用程序。 OneTap應用程序在Itune上免費。
我相信很多人有興趣,如果這是可能的。請保留一個有效的URL鏈接或解決方案的源代碼。 – Vincent 2013-10-21 12:23:21
這是不可能的! OneTap不會更改其自己的AppIcon。它只是打開Safari與選定的圖像和用戶應按保存到主屏幕。在此之後,您可以點擊這個新的應用程序圖標,將打開Safari瀏覽器,將您重定向到OneTap應用程序 因此,以編程方式更改應用程序圖標是不可能的 – AlexPrinceton 2014-05-08 08:19:43
不,絕對不是。應用程序包的這一部分是隻讀的,並且還有代碼簽名。
有關TapOne應用程序的答案是完全不同的。它爲網站或電話號碼創建「網絡剪輯」。例如,要創建爲您的網站的iPhone圖標,可以添加這樣的事情到您的網頁標題:
<link rel="apple-touch-icon" href="/your-custom-icon.png"/>
TapOne和網頁剪輯不會編程更改應用程序包中的圖標。
這種情況有一個新的解決方案。
您可以使用
setAlternateIconName(_:completionHandler:)
iOS的10.3出來和Xcode 8.3。
更新:
用法很簡單,關鍵是要找出的plist用法和注意,你不能從xcassets加載資產(至少對我來說沒有工作)。您需要將圖標文件添加到項目中,並選擇180x180圖像以提高質量。
您需要使用「圖標文件(iOS 5)」,新的圖標文件不起作用。
最後一件事情是,當您更改按鈕上的圖標時,會彈出一個警報窗口,其中顯示「您已更改」IcoTest「的圖標。
//ViewController.swift
@IBAction func ico1Click(_ sender: Any) {
if UIApplication.shared.supportsAlternateIcons{
UIApplication.shared.setAlternateIconName("Icon2", completionHandler: { (error) in
print(error ?? "")
})
}else{
print("NO NO")
}
}
//Info.plist
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>Icon1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater1_180x180</string>
</array>
<key>UIPrerenderedIcon</key>
<false/>
</dict>
<key>Icon2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>alternater2_180x180</string>
</array>
</dict>
</dict>
</dict>
嘗試擴展您的答案。你還沒有解釋過這是UIApplication的一種方法,或者如何設置plist或任何東西。只是說'調用這個方法'對任何人都沒有用。 – dlbuckley 2017-01-25 15:19:41
我想與大家分享這個令人興奮的消息。我會和我一樣分享一下如何做。很傷心這對你來說還不夠。 – ymutlu 2017-01-25 18:29:18
這是令人興奮的消息,你是正確的。但是你的回答並不能告訴我們如何使用這個新功能的全部內容,它的含義和實現細節。我投下了答案,因爲就目前而言,這僅僅是爲了獲得選票而不是幫助任何人。如果你修改你的答案以充分解釋功能,那麼我會高興地投票它:) – dlbuckley 2017-01-26 09:51:16
的更新:因爲iOS的10.3可以由具有在info.plist中定義的備用圖標更新的應用圖標。
多見於Apple Docs
- 1. 是否可以通過編程方式更改應用程序圖標?
- 2. 我可以通過我的應用程序以編程方式啓用GPS嗎?
- 3. 我可以更改我的iPhone應用程序大圖標嗎?
- 4. 我可以通過編程方式更新wix.com網站嗎?
- 5. 以編程方式更改MediaController圖標
- 6. 以編程方式更改ActionBar圖標
- 7. 可以通過編程方式關閉iphone應用程序
- 8. 我可以通過網頁以編程方式創建Chrome應用程序快捷方式嗎?
- 9. 更改iPhone應用程序圖標通過可可觸摸
- 10. 我可以通過編程方式使用OneNote打印機驅動程序嗎?
- 11. iOS 10.3 - 如何以編程方式更改應用程序圖標
- 12. 如何以編程方式在Android中更改應用程序圖標,2016
- 13. 如何以編程方式更改iPhone應用程序的默認圖標?
- 14. 在Android中以編程方式更改應用程序名稱和圖標?
- 15. 以編程方式更改標籤方向,編程方式
- 16. 是可以通過編程方式更改resourceProviderFactoryType?
- 17. 我可以通過編程方式增加按鈕onclick-area嗎?
- 18. 我可以通過編程方式設置SQLNET.AUTHENTICATION_SERVICES =(NONE)嗎?
- 19. 我可以以編程方式將我的應用程序添加到應用程序欄嗎?
- 20. Regd:通過Android應用程序以編程方式關閉應用程序
- 21. 通過編程方式更改背景
- 22. 編程方式更改通過JavaScript
- 23. 我可以通過.NET應用程序以編程方式查看託管堆內容嗎?
- 24. 以編程方式通過其UI訪問應用程序
- 25. 以編程方式更改UIButton標題
- 26. 我可以在動作中更改Adobe Air應用程序圖標嗎?
- 27. 可以通過代碼隱藏iPhone應用程序的圖標和圖標嗎?
- 28. 以編程方式訪問應用程序的圖標
- 29. 可以通過編程方式暫停Android上的通話嗎?
- 30. 我可以通過編程方式更新log4j 1.2 xml配置文件嗎?
由於iOS的'10.3'這是可能的!看看這個答案:http://stackoverflow.com/questions/41950994/is-this-possible-to-apply-the-alternative-icon-to-the-ios-application – KlimczakM 2017-03-30 12:16:58