Могу ли я изменить значок приложения программно
У меня есть две встроенные иконки приложений (бесплатная и премиум-версия). Можно ли программно заменить бесплатную иконку на премиум-иконку после успешного завершения покупки в приложении?
8 ответов
Нет, в пакете приложения указан значок, который нельзя изменять. Если вы измените его, подпись вашего приложения станет недействительной (не той же контрольной суммой), и, следовательно, ваше приложение больше не будет работать.
Для этой ситуации есть новое решение.
Ты можешь использовать
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>
Нет, определенно нет. Эта часть пакета приложения доступна только для чтения, а также подписана кодом.
Ответ, касающийся приложения TapOne, совершенно иной. Он создает "веб-клипы" для веб-сайтов или телефонных номеров. Например, чтобы создать иконку iPhone для вашего сайта, вы должны добавить что-то вроде этого в заголовок вашей веб-страницы:
<link rel="apple-touch-icon" href="/your-custom-icon.png"/>
Более подробная информация доступна здесь: https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html
TapOne и веб-клипы не изменяют программно значок в комплекте приложений.
Обновление: начиная с iOS 10.3 вы можете обновить значок приложения, назначив альтернативные значки в info.plist.
Смотрите больше на Apple Docs
Это невозможно. Значки приложений не являются динамическими, и они могут быть обновлены только путем отправки новых обновлений в ваше приложение через iTunes Connect. Для получения дополнительной информации прочитайте Руководство разработчика iTunes Connect. https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
Я не боюсь; почти наверняка значок приложения не может быть изменен условно.
Я не думаю, что это возможно без взломанного телефона. Значок приложения содержится в комплекте приложений, в который вы не можете писать.
Я не согласен со всем ответом выше. Пожалуйста, попробуйте приложение "OneTap", оно позволит вам сделать собственную иконку вашего нового приложения. Приложение OneTap бесплатно на Itune.