Как удалить статические ярлыки (быстрые действия 3d touch) в Xcode? (Удаление строк info.plist не работает) - PullRequest
0 голосов
/ 09 июня 2019

Ранее я добавил 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).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...