Ранее я добавил 4 статических ярлыка в свое приложение для iOS, добавив строки в info.plist, и они работали нормально. Тем не менее, я решил, что я не хочу 4-й, поэтому я удалил его, и теперь у меня есть только 3 ярлыка в моем файле info.plist. Однако, когда я запускаю приложение, 4-й ярлык по-прежнему отображается, хотя и с тем же названием, что и мой первый ярлык.
Вещи, которые я пробовал:
Я попытался удалить приложение, перезагрузить устройство (iPhone 6s) и переустановить приложение. Как ни странно, иногда это сначала срабатывает, но через пару часов снова всплывает.
Я попытался переместить файл info.plist в другое место и переместить его обратно. Я прочитал, что это может очистить кэшированный файл info.plist, который, я подозреваю, может быть причиной этой проблемы.
Я попытался удалить файл info.plist и прочитал его, однако это полностью сломало мое приложение, поэтому мне пришлось вернуться к моему последнему коммиту. Так что я не уверен в погоде или нет, это сработает.
Проблема остается на симуляторе, я попытался стереть данные на симуляторе и переустановить приложение, и проблема все еще возникает.
Я не добавляю ярлыки динамически нигде в моем коде, у меня просто есть код, интерпретирующий то, с чем приложение запущено.
Вот мои статические ярлыки xcode info.plist:
<key>UIApplicationShortcutItems</key>
<array>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>ShortcutIcon1</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>Subtitle1</string>
<key>UIApplicationShortcutItemTitle</key>
<string>Title1</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).First</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>ShortcutIcon2</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>Subtitle2</string>
<key>UIApplicationShortcutItemTitle</key>
<string>Title2</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).Second</string>
</dict>
<dict>
<key>UIApplicationShortcutItemIconFile</key>
<string>ShortcutIcon3</string>
<key>UIApplicationShortcutItemSubtitle</key>
<string>Subtitle3</string>
<key>UIApplicationShortcutItemTitle</key>
<string>Title3</string>
<key>UIApplicationShortcutItemType</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).Third</string>
</dict>
</array>
Результат:
Я ожидаю, что появятся только 3 ярлыка, однако всегда появляется 4-й (иногда это не происходит при установке приложения, но появляется позже). 4-й ярлык имеет то же имя, что и 1-й ярлык, я не уверен, почему.
Подробнее:
Кроме того, из любопытства я попытался удалить еще один ярлык (осталось только 2 ярлыка), но все равно появилось 4. Однако на этот раз 3-й ярлык (которого там не должно быть) скопировал первый заголовок, а 4-й ярлык (также должен быть удален) скопировал второй заголовок. В результате было получено 4 ярлыка (title1, title2, title1, title2).