Можно ли сделать альтернативный значок приложения динамическим?

С момента выпуска iOS 10.3 Apple добавила новую функцию, которая позволяет нам динамически изменять значок приложения, используя _ 1_ метод. До сих пор, как упоминалось в документации по методу, мы должны указать имя (имена) альтернативных значков приложений в файле проекта .plist, назначенных ключу CFBundlePrimaryIcon.

На самом деле, при работе со статическими значками (значками, которые были добавлены непосредственно в основной пакет приложения) он работает, как и ожидалось, без каких-либо проблем:

введите здесь описание изображения

Мой вопрос:

Возможно ли - или есть ли обходной путь - установить альтернативный значок приложения динамически (например: значки, которые были загружены из Интернета и сохранены в каталоге приложения documents)?


person Ahmad F    schedule 10.09.2017    source источник


Ответы (1)


Я не думаю, что это возможно.

setAlternateIconName (_: completionHandler :) API ищет значки внутри приложения bundle и не может быть изменен на выборку из песочницы.

Кроме того, скорее всего, Apple проверяет значки приложений, которые вы связали, чтобы избежать использования тех же значков приложений или значков, что и приложения Apple.

Обратитесь: https://www.hackingwithswift.com/example-code/uikit/how-to-change-your-app-icon-dynamically-with-setalternateiconname

person Puneet Sharma    schedule 10.09.2017
comment
Спасибо за ответ. setAlternateIconName (_: ЗавершениеHandler :) API ищет значки внутри пакета приложений и не может быть изменен на выборку из песочницы. Не могли бы вы добавить ссылку на него? - person Ahmad F; 10.09.2017
comment
@AhmadF: Я добавил ссылку на блог hackingswift. Я тоже просматриваю документ Apple. Я также включу это в свой ответ. Хотя я почти уверен, что это невозможно. - person Puneet Sharma; 10.09.2017
comment
Я думал об этом, даже в качестве обходного пути это может не сработать ... в какой-то момент вы должны упомянуть имена значков в списке проектов, что, вероятно, нельзя было сделать во время выполнения. Было бы здорово, если бы вы нашли ссылку от Apple, в которой упоминается это ... - person Ahmad F; 10.09.2017
comment
@AhmadF: Даже если вы можете указать имена во время выполнения, вам нужно будет связать значки с приложением. Я надеюсь, что Apple вернется к этому в будущем, но в настоящее время это невозможно. - person Puneet Sharma; 10.09.2017
comment
Если вы добавите ссылку на что-то официальное, буду рад принять это :) - person Ahmad F; 12.09.2017
comment
@AhmadF, я тоже искал обходной путь для этого, что у меня на уме, сделать имена файлов значков файлов статическими, например (icon1, icon2), и переопределить значок во время выполнения или удалить предыдущий и установить новый, но поскольку все, что я мог сделать, это загрузить в documentDirectory, это был сбой :) у вас есть решение или обходной путь сейчас? - person judge; 14.05.2018