Могу ли я изменить значок приложения программно

У меня есть два значка приложений (бесплатный и премиальный), можно ли программно заменить значок бесплатного значка на премиальный значок после успешного завершения покупки в приложении?

Ответы

Ответ 1

Нет, значок указан в комплекте приложения, который вы не должны изменять. Если вы измените его, ваша подпись приложения станет недействительной (не такая же контрольная сумма), и, таким образом, ваше приложение больше не будет работать.

Ответ 2

В этой ситуации есть новое решение.

Вы можете использовать

setAlternateIconName(_:completionHandler:)

iOS 10.3 отсутствует с xcode 8.3.

10.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>

Ответ 3

Нет, определенно нет. Эта часть пакета приложений доступна только для чтения, а также код подписан.

Ответ на приложение 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 и веб-клипы не программно меняют значок в комплекте приложений.

Ответ 4

Это невозможно. Значки приложений не являются динамическими, и их можно обновлять только путем отправки новых обновлений в приложение через iTunes Connect. Для получения дополнительной информации прочитайте руководство разработчика iTunes Connect. https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf

Ответ 5

Обновление: с iOS 10.3 вы можете обновить значок приложения, указав альтернативные значки в файле info.plist.

Подробнее в Apple Docs

Ответ 6

Я боюсь, что нет; довольно уверен, что значок приложения не разрешается условно изменять.

Ответ 7

Я не думаю, что это возможно без взломанного телефона. Значок приложения содержится в комплекте приложения, на который вам не разрешено писать.

Ответ 8

Я не согласен со всем ответом выше. Попробуйте приложение "OneTap", это позволит вам создать свой собственный значок вашего нового приложения. Приложение OneTap бесплатное на Itune.