Ответ 1
Нет, значок указан в комплекте приложения, который вы не должны изменять. Если вы измените его, ваша подпись приложения станет недействительной (не такая же контрольная сумма), и, таким образом, ваше приложение больше не будет работать.
У меня есть два значка приложений (бесплатный и премиальный), можно ли программно заменить значок бесплатного значка на премиальный значок после успешного завершения покупки в приложении?
Нет, значок указан в комплекте приложения, который вы не должны изменять. Если вы измените его, ваша подпись приложения станет недействительной (не такая же контрольная сумма), и, таким образом, ваше приложение больше не будет работать.
В этой ситуации есть новое решение.
Вы можете использовать
setAlternateIconName(_:completionHandler:)
iOS 10.3 отсутствует с xcode 8.3.
Обновление:
Использование довольно просто, ключ заключается в том, чтобы узнать использование plist и обратите внимание, что вы не можете загружать активы из xcassets (по крайней мере, не работало для меня). Вам нужно добавить свои файлы значков в проект и предпочесть 180x180 изображений для качества.
Вам нужно использовать "Файлы значков (iOS 5)", новые файлы значков не работают.
Последнее, когда вы меняете значок на кнопке, появляется всплывающее окно Alert, в котором говорится: "Вы изменили значок для" 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 и веб-клипы не программно меняют значок в комплекте приложений.
Это невозможно. Значки приложений не являются динамическими, и их можно обновлять только путем отправки новых обновлений в приложение через iTunes Connect. Для получения дополнительной информации прочитайте руководство разработчика iTunes Connect. https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
Обновление: с iOS 10.3 вы можете обновить значок приложения, указав альтернативные значки в файле info.plist.
Подробнее в Apple Docs
Я боюсь, что нет; довольно уверен, что значок приложения не разрешается условно изменять.
Я не думаю, что это возможно без взломанного телефона. Значок приложения содержится в комплекте приложения, на который вам не разрешено писать.
Я не согласен со всем ответом выше. Попробуйте приложение "OneTap", это позволит вам создать свой собственный значок вашего нового приложения. Приложение OneTap бесплатное на Itune.