Автоматическое обновление расширения Safari предотвращает публикацию расширения в галерее Safari.

Я пытаюсь загрузить свое расширение Safari в галерею. Каждый раз, когда я делал это, я получаю сообщение об ошибке после нескольких дней ожидания:

В ходе нашей проверки мы обнаружили, что вы все еще не включили автоматическое обновление своего расширения.

Здорово! Но я сделал это, точно в соответствии с документами. Когда я отправлял ext, я упоминал этот URL: http://up.thefreedictionary.com/Info.plist качестве своего Манифеста обновления. Вот содержание:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">
<dict>
<key>Extension Updates</key>
<array>
<dict>
<key>CFBundleIdentifier</key>
<string>dictionary</string>
<key>Developer Identifier</key>
<string>SZ9T8BXLWC</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>URL</key>
<string>
http://up.thefreedictionary.com/TheFreeDictionary.safariextz
</string>
</dict>
</array>
</dict>
</plist>

Понятия не имею, что тут может быть не так. И почему я не могу публиковать его без автоматических обновлений?

PS CFBuldleIdentifier - это "словарь". Это соответствует моему идентификатору пакета приложения. Это проблема?

3 ответа

Решение

Я нашел это!

Проблема заключалась в том, что я не упомянул URL для update.plist в моем info.plist (который является частью расширения). Я просто не знал, что мне нужно. Я упомянул этот URL в форме представления и ожидал, что этого достаточно.

Я проверил документы, и они буквально говорят "включите URL-адрес файла в поле" Манифест обновления "в Extension Builder". Если бы вместо этого говорилось: "добавьте URL файла в ваш info.plist, который является частью вашего расширения", я бы определенно сделал это. Но, как только я лично не разработал расширение (я передаю эту работу другому программисту в моей команде), я перепутал "Extension Builder" с формой отправки.

На странице документации написано:

  • Создайте текстовый файл с расширением.plist и поместите его на веб-сервер.
  • Включите URL-адрес файла в поле "Манифест обновления" в Extension Builder

Я полагаю, вы сделали второй шаг.

Что касается CFBundleIdentifier, он должен следовать обратному формату DNS, как описано здесь:

Строка идентификатора пакета должна быть идентификатором универсального типа (UTI), который содержит только буквенно-цифровые (AZ,az,0-9), дефис (-) и точку (.). Строка также должна быть в формате обратного DNS. Например, если домен вашей компании - Ajax.com и вы создаете приложение с именем Hello, вы можете назначить строку com.Ajax.Hello в качестве идентификатора пакета вашего приложения.

Примеры в документации используют com.yourCompany.safari.firstExtensionName в качестве идентификатора. Я не думаю, что "сафари" должно появляться в идентификаторе, хотя.

Есть несколько проблем с вашим Update.plist. Вот один из моих для справки.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Extension Updates</key>
    <array>
        <dict>
            <key>CFBundleIdentifier</key>
            <string>com.canisbos.ccnotepad</string>
            <key>Developer Identifier</key>
            <string>ZANVZTSER6</string>
            <key>CFBundleVersion</key>
            <string>104</string>
            <key>CFBundleShortVersionString</key>
            <string>1.0.4</string>
            <key>URL</key>
            <string>http://dl.dropbox.com/u/23990/Canisbos/ccNotepad.safariextz</string>
        </dict>
    </array>
</dict>
</plist>

Похоже, вам не хватает объявлений XML и DOCTYPE вверху, но, что более важно, строка в паре с ключом CFBundleIdentifier неверна. Он должен быть таким же, как в вашем Info.plist, и, вероятно, не может быть "словарем".

РЕДАКТИРОВАТЬ: Я только что заметил, что вы, кажется, назвали файл Info.plist, когда он должен быть Update.plist - хотя я не уверен, требуется ли это.

Другие вопросы по тегам