Не удалось найти ios sdk, переустановите приложение, как исправить Windows 10
Обновлено: 21.11.2024
Kochava iOS SDK легко интегрируется. Весь процесс занимает менее 3 минут и требует просто добавления SDK в ваш проект, а затем запуска трекера. Если вы уже интегрировали SDK и запустили трекер, перейдите на страницу Использование SDK и выберите тему.
Требования:
Поддерживаемые платформы:
- iOS
- tvOS
- watchOS
- macCatalyst
- macOS
Поддерживаемые расширения:
- Сообщения
- Содержание уведомления
- Служба уведомлений
Конфиденциальность данных:
Интеграция версии 5:
Kochava SDK v5 распространяется либо в виде XCFramework, либо в виде статической библиотеки, которую вы должны добавить в свой проект. Типичная интеграция включает модули KochavaCore, KochavaTracker и KochavaAdNetwork. При обновлении SDK с версии 4 до версии 5 обратите внимание, что процесс интеграции не изменился. Пакеты Swift являются предпочтительным методом распространения, но доступны и другие варианты.
Как добавить пакет Swift:
Если вы впервые добавляете пакет Swift, выполните следующие действия для каждого модуля, который вы хотите добавить:
- Скопируйте URL-адрес пакета swift на свой картон.
- В Xcode 12.2 или более поздней версии выберите «Файл» > «Пакеты Swift» > «Добавить зависимость пакета».
- Вставьте URL-адрес пакета swift в приглашение.
- Настройте версию на желаемую основную версию. В настоящее время вы должны использовать .
Миграция с версии 3 SDK:
Если вы использовали Cocoapods, вам следует удалить KochavaTracker из вашего подфайла.
Если вы интегрировали прямую загрузку SDK, вам следует переместить связанные файлы из вашего проекта в корзину.
После удаления предыдущего SDK вы столкнетесь с ошибками сборки из-за некоторых изменений API, связанных с версией 4. Новые API обычно остаются прежними, тогда как старые API были модернизированы.
На этом интеграция v5 SDK завершена! При просмотре примеров кода на нашем сайте поддержки всегда выбирайте образцы кода [Swift v4] или [Objective-C v4]. Если вы уже интегрировали версию 3 SDK, ознакомьтесь с приведенными ниже инструкциями по переносу.
При сборке новой версии нашего SDK важно выполнять чистую сборку (Command – Shift – K). Система управления пакетами Apple (начиная с Xcode 12 Beta 6) автоматически не распознает изменения пакетов.
В этом разделе содержится информация по следующим вопросам:
Тип ошибки: | Сообщение об ошибке: |
---|---|
Общие проблемы при запуске | - Сообщения об ошибках в окне диспетчера пакетов - Менеджер пакетов отсутствует или окно не открывается - Проблемы после обновления Unity до новой версии - Сброс конфигурации пакета вашего проекта | Проблемы с установкой пакетов | - Сбой при установке пакета - Пакеты не распознаны |
Проблемы с установкой зависимостей git | - Не найден исполняемый файл 'git' - git-lfs: команда не найдена - Репозиторий не найден - Не удалось прочитать имя пользователя: запросы терминала отключены - Невозможно обновить версию Git | tr>
Asset Store Растущая библиотека бесплатных и коммерческих наборы, созданные Unity и членами сообщества. Предлагает широкий спектр ресурсов, от текстур, моделей и анимации до целых примеров проектов, руководств и расширений редактора. Дополнительная информация См. пакеты Глоссария (Мои активы) | - 'Не удалось проанализировать ответ Http' в контексте Мои активы |
Реестры с заданной областью | - Отсутствуют «Мои реестры» в окне диспетчера пакетов |
Проблемы при сборке пакетов | - Отсутствие ошибок MonoBehaviour - Ошибка загрузки hostfxr.dll в Windows |
Вы также можете запустить средство диагностики диспетчера пакетов Unity, если у вас возникли проблемы, которые могут быть связаны с сетью. Дополнительные сведения см. в разделе Проблемы с сетью.
Сообщения об ошибках в окне диспетчера пакетов
Диспетчер пакетов отображает индикаторы ошибок в окне диспетчера пакетов при возникновении проблем:
Системные проблемы
Сообщения об ошибках, отображаемые в строке состояния, указывают на то, что диспетчер пакетов обнаружил проблему, не связанную с конкретным пакетом.Например, если диспетчер пакетов не может получить доступ к серверу реестра пакетов, он отображает это сообщение в строке состояния:
Сообщение об ошибке сети
Если ваша сеть не может подключиться к серверу реестра пакетов, возможно, это связано с проблемой подключения к сети. Когда вы или ваш системный администратор исправите сетевую ошибку, строка состояния исчезнет.
Если ваше сетевое подключение работает, но вы не вошли в свою учетную запись Unity, диспетчер пакетов не отображает пакеты Asset Store. При попытке использовать контекст «Мои активы» диспетчер пакетов отображает ошибку в строке состояния:
Вышел из учетной записи Unity
Нажмите кнопку «Войти» в представлении списка, чтобы войти в свою учетную запись Unity через Unity Hub.
Проблемы, связанные с пакетом
Если при загрузке или установке определенного пакета возникают проблемы (например, при определении версий пакета для загрузки), в списке пакетов рядом со скомпрометированным пакетом (A) появляется значок ошибки (). Чтобы узнать, в чем проблема, откройте представление сведений о скомпрометированном пакете и просмотрите подробное сообщение об ошибке (B):
Диспетчер пакетов отсутствует или окно не открывается
Окно диспетчера пакетов может быть перемещено за пределы экрана или скрыто другим окном. Когда это происходит, похоже, что окно диспетчера пакетов не открылось. В этом случае вы можете попробовать сбросить макет окна (Окно > Макеты > По умолчанию) и снова открыть окно диспетчера пакетов.
Если окно диспетчера пакетов по-прежнему не появляется, проверьте окно консоли Unity. Окно редактора Unity, в котором отображаются ошибки, предупреждения и другие сообщения, созданные Unity или вашими собственными сценариями. Подробнее
см. в глоссарии:
Это сообщение об ошибке указывает на то, что файл manifest.json имеет неверный формат. Он также сообщает вам номер строки, в которой диспетчеру пакетов не удалось проанализировать файл, чтобы вы могли исправить ошибку JSON. Существует ряд онлайн-валидаторов, которые вы можете использовать, чтобы попытаться решить проблему. Как только вы сохраните исправленный файл, Unity перезагрузит окно диспетчера пакетов.
Если вы выполнили обновление с ранней версии редактора Unity, могут возникнуть другие проблемы с манифестом вашего пакета. У каждого пакета есть манифест, который предоставляет информацию о пакете диспетчеру пакетов. Манифест содержит такую информацию, как имя пакета, его версия, описание для пользователей, зависимости от других пакетов (если есть) и другие детали. Подробнее
см. в файле глоссария:
В версии 2019.3 файл manifest.json не должен содержать никаких ссылок на пакет com.unity.package-manager-ui. Вы можете сбросить конфигурацию пакета вашего проекта или удалить следующую строку из списка зависимостей манифеста:
Проверьте, есть ли у вашего проекта манифест Каждый проект Unity имеет манифест проекта, который действует как точка входа для диспетчера пакетов. Этот файл должен быть доступен в
/Каталог пакетов. Диспетчер пакетов использует его для настройки многих вещей, включая список зависимостей для этого проекта, а также любой репозиторий пакетов для запроса пакетов. Дополнительная информация
См. в глоссарии, в качестве версии пакета используется слово «исключить». Это устаревшее значение для свойства
См. в глоссарии. Если вы найдете такие строки, удалите всю строку. Диспетчер пакетов устанавливает только те пакеты, которые явно включены в ваш проект как зависимость, поэтому после удаления этой записи диспетчер пакетов игнорирует пакет и не устанавливает его.
Если диспетчер пакетов по-прежнему не загружается, следуйте инструкциям в разделах Нераспознанные пакеты и Сброс конфигурации пакета вашего проекта.
Проблемы после обновления Unity до новой версии
При обновлении проекта до более новой версии Unity диспетчер пакетов автоматически обновляет несовместимые пакеты до более новых совместимых версий. Однако, если ваш пакет не компилируется, диспетчер пакетов отображает сообщения об ошибках в консоли.
Чтобы исправить эти сообщения, прочтите сообщения об ошибках и устраните все возможные проблемы. Например, в пакете может отсутствовать зависимость от другого пакета или версии. В этом случае вы можете попробовать установить пакет самостоятельно.
Вы также можете попробовать следующую последовательность решений, пока не найдете то, что работает:
- Создайте резервную копию, а затем удалите папку Packages в своем проекте.
- Создайте резервную копию, а затем удалите исходные коды пакетов в папке Packages вашего проекта, оставив только файл manifest.json.Затем попробуйте перезагрузить проект.
- Создайте новый пустой проект. Если окно диспетчера пакетов загружается успешно, замените папку Library/PackageCache/com.unity.package-manager-ui@ в неудачном проекте на ту же папку из вновь созданного проекта.
- В крайнем случае вы можете сбросить проект до пакета по умолчанию. Unity автоматически предварительно устанавливает выбранное количество пакетов по умолчанию (например, Analytics Library, Unity Timeline и т. д.), когда вы создаете новый проект. Он отличается от комплектного пакета тем, что его не нужно устанавливать, и отличается от встроенного пакета тем, что расширяет возможности Unity, а не позволяет их включать или отключать.
См. конфигурацию Глоссария и добавляйте пакеты по одному, пока не заработает.
Сброс конфигурации пакета вашего проекта
Если в проекте слишком много проблем с пакетами, вы можете сбросить проект до конфигурации пакета по умолчанию для версии Unity Editor. Эта операция сбрасывает все пакеты в вашем проекте. Это может не устранить источник проблемы, но может помочь вам понять, в чем проблема.
Примечание. Вы не можете отменить сброс конфигурации пакета, поэтому сначала создайте резервную копию файла manifest.json или убедитесь, что ваш проект находится под контролем исходного кода. Вы также можете принять дополнительные меры предосторожности, клонировав свой проект и протестировав операцию на клоне, прежде чем продолжить.
Чтобы вернуться к конфигурации пакета по умолчанию, выберите "Восстановить пакеты по умолчанию" в меню "Справка".
Справка > Восстановить пакеты по умолчанию
Сброс клона вашего проекта
Вы также можете протестировать возврат к пакетам по умолчанию, прежде чем вносить окончательные изменения:
Клонируйте свой проект, скопировав папку проекта и переименовав ее, чтобы ее было легко найти (например, если ваш проект называется MyProject, вы можете использовать что-то вроде clone_MyProject ).
Загрузите свой новый клонированный проект.
В меню "Справка" выберите "Восстановить пакеты по умолчанию".
В зависимости от размера вашего проекта это может занять несколько минут.
Убедитесь, что он успешно сбросил пакеты. Если это так, вы можете безопасно выполнить операцию в исходном проекте.
Не удалось установить пакет
Если вы пытаетесь установить новый пакет из реестра, и он не работает, это может быть связано с проблемами с правами доступа.
У вас должны быть полные права доступа к папке кеша:
- Windows: C:\Users\вашеимя\AppData\Local\Unity\cache
- MacOS: ~/Users/Library/Unity/cache
Это может быть проблема с сетью. Проверьте настройки брандмауэра и прокси-сервера.
Иногда учреждения, такие как школы, государственные учреждения или защищенные сетью рабочие места, настраивают прокси-серверы для управления трафиком между сетью и Интернетом и используют собственные сертификаты сервера, которые не распознаются Unity или диспетчером пакетов. Поговорите со своим сетевым администратором.
Пакеты не распознаны
Установите все рекомендуемые обновления в Visual Studio
Используйте homebrew для сборки и установки моно:
При необходимости удалите папку Library/obj/temp в вашем проекте и перезапустите Unity.
Если вы по-прежнему испытываете трудности, попробуйте также перезагрузить компьютер.
Исполняемый файл git не найден
Если вы попытаетесь установить пакет с URL-адреса git, появится сообщение, похожее на это:
git-lfs: команда не найдена
Если вы пытаетесь загрузить пакет, использующий Git LFS (большое файловое хранилище), вы можете увидеть следующее сообщение об ошибке:
Это указывает на то, что Git LFS, вероятно, не установлен на вашем компьютере. Чтобы убедиться, вы можете проверить это в командной строке:
Если вы видите что-то подобное, Git LFS установлен:
В противном случае вы можете установить его, следуя инструкциям Bitbucket GitHub.
Репозиторий не найден
Если вы укажете место, которое не существует, в консоли Unity появится сообщение, похожее на это:
Проверьте правописание. Чтобы убедиться, что вы используете правильный URL-адрес, перейдите на страницу репозитория и скопируйте URL-адрес из кнопки «Клонировать»:
Где скопировать URL на GitHub (A) и GitLab (B)
Нажмите кнопку справа от URL-адреса на GitHub (A) или GitLab (B), чтобы скопировать URL-адрес в буфер обмена.
Если расположение репозитория верное, может быть другая проблема с URL-адресом:
Не удалось прочитать имя пользователя: подсказки терминала отключены
Если вы пытаетесь установить пакет из частного репозитория, для которого требуется аутентификация, в консоли Unity появится сообщение, похожее на это:
SSH использует пару открытых и закрытых ключей SSH. Вы можете добавить свой открытый SSH-ключ в Bitbucket, GitHub или GitLab, а затем получить доступ к репозиториям без необходимости вводить имя пользователя и пароль.
Однако, если вы установили парольную фразу для обеспечения безопасности своего ключа SSH, вам все равно придется ввести эту парольную фразу в терминал или диалоговое окно, чтобы авторизовать свой ключ. В этом случае вы можете использовать агент SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени.
- Используйте диспетчер учетных данных (Git Credential Manager для Windows или OSXKeyChain). Менеджеры учетных данных обрабатывают отправку пароля без использования терминала или командной строки.
- Используйте git-credentials из терминала или командной строки. Затем запустите Hub с того же терминала, чтобы у Unity был доступ к кэшированным или сохраненным учетным данным.
- Вместо этого используйте SSH для аутентификации. Если вы настроили свой SSH-ключ без парольной фразы, диспетчеру пакетов не нужно его расшифровывать для аутентификации на сервере Git. Если вы решите использовать парольную фразу для дополнительной безопасности, вы все равно можете обойти проблему аутентификации с помощью агента ssh в macOS или Windows.
Решения для SSH
Если вы используете протокол SSH для установки пакета по URL-адресу Git, вы можете получить ошибку аутентификации от Git. Обычно это происходит, когда вы настраиваете закрытый ключ SSH на локальном компьютере, который защищен парольной фразой.
Решение этой проблемы заключается в настройке агента SSH, который может разблокировать ваш ключ SSH для аутентификации в диспетчере пакетов от вашего имени. Следуйте инструкциям в разделе, соответствующем вашей операционной системе:
Настройка OpenSSH для Windows
Собственная версия ssh-agent для Windows OpenSSH работает лучше, чем версия, доступная по умолчанию в Git для Windows. Эта процедура объясняет, как настроить клиент OpenSSH и добавить свой ключ в его ssh-агент. Если вы используете Git для Windows, вы также можете отдать приоритет собственному Windows OpenSSH над агентом Git для Windows SSH:
Убедитесь, что клиент OpenSSH установлен, выполнив поиск в окне «Дополнительные функции» в настройках Windows («Пуск» > «Настройки», затем выполните поиск «Дополнительные функции»). Это относится к Windows 10+.
Проверьте переменную среды %PATH%, чтобы убедиться, что отображается собственное расположение Windows OpenSSH (например, C:\WINDOWS\System32\OpenSSH\).
Примечание. Если вы уже используете Git для Windows, убедитесь, что собственное расположение Windows OpenSSH указано перед расположением Git для Windows SSH в вашей переменной %PATH%. Это гарантирует, что Windows использует собственный агент Windows OpenSSH вместо агента Git для Windows SSH.
В терминале PowerShell запустите процесс ssh-agent и убедитесь, что он запускается автоматически:
Импортируйте свой ключ в ssh-agent, запустив ssh-add в командной строке и следуя инструкциям. По умолчанию агент добавляет ключ %USERPROFILE%\.ssh\id_rsa и запрашивает пароль.
Чтобы использовать другой ключ, вы можете указать его в качестве аргумента:
Если вы не можете вспомнить название своего ключа, вы можете попросить агента перечислить их:
Если вы установили Git для Windows, сбросьте переменную среды %GIT-SSH%, чтобы убедиться, что Git всегда использует родную версию ssh-agent Windows OpenSSH:
Добавление ключей SSH в агент SSH для macOS
Используйте следующую команду, чтобы добавить ключи SSH к агенту ssh, работающему в вашей системе macOS:
После выполнения этой команды терминал запрашивает пароль для разблокировки ключа SSH, а затем добавляет его в цепочку ключей macOS. Однако после перезагрузки системы все ключи, хранящиеся в ssh-agent, сбрасываются.
Чтобы предотвратить повторный ввод пароля после перезагрузки системы, откройте файл ~/.ssh/config (или создайте его, если не найдете) и добавьте следующее:
Перезагрузите компьютер, чтобы применить эти изменения.
Не удается обновить версию Git
Если вы пытаетесь обновить зависимость Git. Диспетчер пакетов получает зависимости Git напрямую из репозитория Git, а не из реестра пакетов. Зависимости Git используют ссылку URL-адреса Git вместо версии, и нет никаких гарантий относительно качества, стабильности, достоверности пакета или даже того, соответствует ли версия, указанная в его файле package.json, правилам семантического управления версиями в отношении официально опубликованных выпусков этого пакета. . Дополнительная информация
См. в глоссарии более новую версию из репозитория, но она не работает, возможно, это связано с тем, что ваша зависимость от Git заблокирована. Если вы хотите обновить свою зависимость Git до более новой версии из репозитория, используйте кнопку Добавить пакет из URL-адреса git и введите URL-адрес Git. Дополнительные сведения см. в разделе Заблокированные зависимости Git.
Если вы видите следующее сообщение в окне консоли при попытке загрузить пакет из Asset Store, возможно, возникла проблема с кешем Asset Store:
Чтобы решить эту проблему, удалите все загруженные ресурсы из каталога пакетов Asset Store, а затем повторите попытку загрузки ресурсов.
Предупреждение. Если ваш проект содержит много данных об объектах, повторная загрузка может занять много времени и трафика.
Отсутствует «Мои реестры» в окне диспетчера пакетов
Не все поставщики реестра совместимы с диспетчером пакетов Unity. Если добавленный вами сервер реестра пакетов не реализует конечные точки /-/v1/search или /-/all, ваш реестр с заданной областью действия несовместим с диспетчером пакетов Unity и не отображается в контексте «Мои реестры» в окне диспетчера пакетов. .
Отсутствуют ошибки MonoBehaviour
Во время сборки, если возникает много ошибок, связанных с отсутствующим поведением, UnityLinker может по ошибке удалить компонент, который, по его мнению, не указан. Часто это происходит из-за слишком агрессивного уровня зачистки. Например, если у вас есть сборный тип ресурса, который позволяет хранить игровой объект с компонентами и свойствами. Префаб действует как шаблон, из которого вы можете создавать новые экземпляры объектов на сцене. Дополнительная информация
См. в глоссарии в AssetBundle, который ссылается на компонент SpriteShape в пакете 2D SpriteShape, объект может отсутствовать и может генерировать предупреждения компилятора.
Чтобы исправить это, вы можете либо понизить уровень разделения для UnityLinker, либо объявить сборки пакета внутри файла link.xml, чтобы предотвратить их удаление:
Дополнительную информацию об уровнях удаления и UnityLinker см. в разделе Управляемое удаление кода.
Добро пожаловать в центр разработчиков OneSignal New IA. Вы найдете исчерпывающие руководства и документацию, которые помогут вам начать работу с OneSignal New IA как можно быстрее, а также поддержку, если вы застряли. Давайте сразу!
Распространенные проблемы с установкой iOS
📘
Действия по устранению неполадок
- Идентификатор вашего приложения OneSignal
- Подробности, журналы и/или скриншоты проблемы.
- Этапы воспроизведения
Пожалуйста, выполните все шаги ниже. Если у вас по-прежнему возникают проблемы, обратитесь в службу поддержки, предоставив журнал, созданный в соответствии с приведенными ниже инструкциями.
Вернитесь к руководству по установке, которому вы следовали в разделе Mobile Push Quickstart, чтобы убедиться, что вы выполнили все шаги по добавлению OneSignal SDK в свое приложение.
В разделе «Требования» руководства по установке следите за тем, чтобы вы использовали правильную версию Xcode. Вы должны протестировать на реальном устройстве iOS. Симулятор не поддерживает push.
При использовании Cocoapods: убедитесь, что у вас установлена версия 1.11.0 или новее CocoaPods, запустив pod --version из терминала.
Убедитесь, что вы используете OneSignal SDK версии 2.16.7 или новее. Мы рекомендуем выполнить обновление до основной версии OneSignal SDK. Подробнее см. в Руководствах по миграции API мобильных SDK.
Запустите модуль обновления OneSignal с терминала, чтобы обновить OneSignal SDK до последней версии.
После выполнения остальной части этого руководства по устранению неполадок используйте метод setLogLevel OneSignal SDK для Verbose и отправьте нам полный logcat с устройства при воспроизведении поведения.
Если вам нужна помощь в интерпретации журналов, поделитесь ими через Pastebin или в виде файла .txt, чтобы наша служба поддержки и команда инженеров помогли вам.
"APNS Delegate Never Fired" – это сообщение о тайм-ауте, когда iOS не выдает сообщение об успешном или неудачном выполнении, если не установлено соединение с серверами APNS Apple. Обычно это происходит в средах разработки/специальных средах и реже в рабочей среде.
Пожалуйста, проверьте следующее:
Попробуйте переключить Wi-Fi на устройстве iOS, попробуйте другое устройство или другую сеть. Вы можете чаще видеть это при разработке сборок вашего приложения, так как это будет подключение к серверу Apple Sandbox, а не к рабочей версии.
Убедитесь, что вы используете Xcode 10 или более позднюю версию и у вас есть возможность push-уведомлений в главном целевом приложении > «Подписание и возможности» > Push-уведомления. Некоторые пользователи сообщили, что включение фоновой загрузки в главном приложении также помогло снизить частоту. Убедитесь, что это включено как для сборки Debug, так и для сборки Release. Возможно, вам придется проверить свои права, если они отличаются.
Другие зависимости, особенно другие SDK поставщика push-уведомлений, могут мешать этому. Лучше всего удалить другой Push SDK из приложения. Мы изменяем методы AppDelegate, и это может повлиять на другие сторонние SDK.
Вы можете видеть или не видеть в журналах: ПРЕДУПРЕЖДЕНИЕ: UIApplication.setDelegate уже просканирован. Убедитесь, что библиотека OneSignal не загружена в среду выполнения дважды!
Распространенные проблемы с зависимостями:
Появляется, что React Native Push Notifications добавляет методы в собственный файл AppDelegate.m.Найдите проект в Xcode для RNCPushNotificationIOS и закомментируйте этот код.
MParticle должен работать с swizzling вместо делегирования прокси.
Если вы используете Cocoapods, снова запустите $ sudo gem install Cocoapods, чтобы получить обновление, а затем pod update, чтобы обновить свои модули. Обязательно удалите все модули, которые вы больше не используете (особенно другие push-пакеты SDK).
После вышеуказанных шагов. Если у вас все еще есть проблемы, лучше всего подключить устройство к вашей IDE и использовать наш метод SetLogLevel для Verbose. Затем удалите и заново создайте приложение на устройстве. Это поможет регистрировать любые проблемы в вашей консоли IDE.
Убедитесь, что ваше приложение инициализирует OneSignal из didFinishLaunchingWithOptions и из основного потока. В противном случае он может пропустить событие щелчка, если приложение запущено из холодного состояния по щелчку.
Если у вас есть какие-либо другие SDK или библиотеки, обрабатывающие push-уведомления, возможно, проблема связана с изменением обработчика кликов iOS и конфликтом с OneSignal.
❗️
О безопасности транспорта приложений
Не оставляйте NSAllowsArbitraryLoads включенным при выпуске приложения в App Store, так как это может создать уязвимость в системе безопасности вашего приложения. Для получения дополнительной информации, пожалуйста, прочитайте Обзор безопасности Apple
Откройте URL-адрес вложения в веб-браузере. Убедитесь, что это прямая ссылка на изображение, оно не может быть частью HTML-страницы. Также не поддерживаются перенаправления.
Убедитесь, что ваш URL заканчивается правильным расширением файла. Если URL-адрес не содержит расширения файла, вы можете добавить его в качестве параметра, добавив, например, ?filetype=file.jpg в конец URL-адреса.
Перепроверьте, правильно ли вы добавили расширение NotificationServiceExtension, указанное в шаге 1 руководства по установке iOS.
Если вы правильно добавили расширение службы уведомлений OneSignal, но расширенные push-уведомления (изображения, кнопки) по-прежнему не отображаются, убедитесь, что цель развертывания в службе расширений соответствует цели развертывания вашего приложения.
Перепроверьте, правильно ли вы добавили расширение NotificationServiceExtension, указанное в шаге 1 руководства по установке iOS.
Сначала дважды проверьте, выполнили ли вы все инструкции по установке. Дополнительную информацию см. в документах SDK, которые вы используете.
Две строки отладки в исходном файле .m, которые мы предоставляем, являются двумя способами подтвердить, что расширение службы уведомлений запущено.
self.bestAttemptContent.body = [@"[Modified] "
stringByAppendingString:self.bestAttemptContent.body];
Эта строка добавит "[Modified] " в начало всех ваших уведомлений. Вы должны видеть это во всех уведомлениях на вашем устройстве.
Это добавит запись в журнал устройства при запуске расширения. Вы можете просмотреть это в Xcode в разделе «Окно»> «Устройства и симуляторы». Выберите свое устройство слева и откройте журнал со стрелкой вверх внизу.
Мы рекомендуем очистить журнал перед отправкой уведомления для тестирования, так как он может быстро увеличиваться. Скопируйте журнал и найдите запись отладки «Running NotificationServiceExtension».
Мы не рекомендуем пытаться подключиться к процессу расширения с помощью отладчика в Xcode через меню "Отладка". Это может создать проблемы с его запуском, поэтому мы рекомендуем перезагрузить устройство, если вы пытались это сделать.
Наконец, расширение службы уведомлений будет работать только в том случае, если вы установили наши кнопки действий, мультимедийное вложение или установили изменяемый контент в уведомлении, поэтому убедитесь, что в тестовом уведомлении установлен один из этих параметров.
Диспетчер пакетов Swift Если вы видите эту ошибку с нашим XCFramework через диспетчер пакетов Swift, убедитесь, что вы обновили Xcode до последней версии. Это общая проблема, решенная в Xcode 13.2.
CocoaPods. Поды, написанные на Swift, следует импортировать с использованием use_frameworks! , и CocoaPods будет жаловаться, если вы этого не сделаете и попытаетесь импортировать pod в коде Swift.
Импорт вручную. Один из способов решить вашу проблему – перейти к настройкам сборки и определить пути поиска фреймворка к папке, содержащей рассматриваемые фреймворки. Если инфраструктура OneSignal размещена в каталоге вашего проекта, просто задайте для пути поиска фреймворка значение $(SRCROOT) и укажите рекурсивный.
Проблема со SwiftLint: (SwiftLint — это инструмент, используемый для проверки соответствия вашего кода определенным правилам). Если Swiftlint был запущен до того, как была встроена платформа OneSignal, это приведет к появлению этой ошибки, которая затем будет устранена после того, как все будет связано.
ПРИМЕЧАНИЕ. Чтобы ваш сбой отображался на следующих шагах, сбой должен произойти, когда ваше устройство не подключено к вашему Mac. Подключите его после того, как воспроизведете сбой.
- В Xcode выберите "Окно" > "Устройства и симуляторы".
- Выберите свое устройство слева и нажмите кнопку "Открыть консоль".
- Выберите "Все сообщения" (вверху слева).
- Воспроизведите проблему с подключенным устройством.
- Нажмите Command + A, чтобы выбрать все, затем Command + C, чтобы скопировать журнал. ол>
- Отправьте его в службу поддержки OneSignal вместе с информацией о воспроизведении сбоя.
- Номер значка > 0
- Приложение открыто из push-уведомления.
OneSignal SDK автоматически удаляет ранее полученные push-уведомления при открытии приложения в двух случаях:
Такое поведение вызвано тем, что наша система очищает номер значка. Большинство разработчиков приложений хотят такого поведения, однако некоторые этого не хотят. Чтобы этого не произошло, вы можете добавить OneSignal_disable_badge_clearing = true в Info.plist своего приложения.
Эта ошибка является нормальной и возникает из-за ошибки в iOS. Он должен появиться, если вы правильно добавили группы приложений. Для получения дополнительной информации прочитайте этот комментарий сотрудника Apple.
Например, мы используем несколько целей в одном проекте Xcode. 2 отдельных приложения для загрузки в магазин приложений. Получение ошибки «Идентификатор пакета встроенного двоичного файла не имеет префикса с идентификатором пакета родительского приложения» и не может включать отдельные группы приложений для отдельных целей.
К сожалению, вам нужен отдельный NSE для каждого приложения. Может быть обходной путь с написанием пользовательского скрипта сборки, который динамически устанавливает bundle_id NSE на основе содержащего его идентификатора пакета Apps, но это выходит за рамки OneSignal.
Теперь вы просматриваете эту ветку и будете получать электронные письма, когда в ней будет активность. Нажмите еще раз, чтобы прекратить просмотр, или перейдите в свой профиль/домашнюю страницу, чтобы управлять просмотренными цепочками.
Вы прекратили просмотр этой ветки и больше не будете получать электронные письма, когда в ней есть активность. Нажмите еще раз, чтобы начать просмотр.
Недавно я выполнил сброс до заводских настроек на своем Macbook Pro и пытаюсь вернуть инструменты разработчика командной строки xcode.
Когда я запускаю xcode-select --version, я получаю следующее:
Несмотря на то, что у меня есть номер версии для xcode-select (2373), похоже, у меня нет доступа к основным инструментам разработчика. Например, вот что происходит, когда я пытаюсь использовать git .
xcode-select: примечание: в папке «/Applications/Xcode.app» не найдены инструменты разработчика, требующие установки. Выберите параметр в диалоговом окне, чтобы загрузить инструменты разработчика командной строки.
Это предлагает мне установить инструменты разработчика командной строки. Когда я нажимаю установить, я получаю следующую ошибку.
Не удается установить программное обеспечение, так как оно в настоящее время недоступно на сервере обновлений программного обеспечения.
Я также сталкиваюсь с точно такой же проблемой при запуске xcode-select --install .
Примечание. Сейчас я использую macOS Catalina версии 10.15.6
Принятый ответ
Мне удалось решить проблему. У меня не был установлен Xcode. Я скачал его через App Store, и все стало нормально.
Если вы столкнулись с этой проблемой, сначала убедитесь, что у вас установлен Xcode 🤦♂️
Ответы
Не удается установить программное обеспечение, так как оно в настоящее время недоступно на сервере обновлений программного обеспечения.
Я предполагаю, что вы работаете с Xcode 12.x (не бета-версия), но это предостережение кажется очевидным, учитывая текущий поток обновлений и то, насколько загружены серверы обновлений прямо сейчас.
Возможно, серверы подписи не так сильно связаны ;)
Мне удалось решить проблему. У меня не был установлен Xcode. Я скачал его через App Store, и все стало нормально.
Если вы столкнулись с этой проблемой, сначала убедитесь, что у вас установлен Xcode 🤦♂️
Это все еще происходит со мной. До Xcode 12 самому Xcode не требовалось устанавливать инструменты командной строки с помощью xcode-select. Когда xcode-select --install будет исправлен?
У меня тоже такая проблема. JetBrains говорит: «Неверный путь к инструментам командной строки», но когда я пытаюсь исправить, открывается диалоговое окно, которое либо зависает, либо сообщает мне, что программное обеспечение в настоящее время недоступно.
У меня возникла эта проблема как до, так и после обновления Xcode. Я также недавно просто перешел на Catalina, раньше у меня не было этой проблемы.
Мне помогло решение @bubbleshadow.
Проблема сохраняется. В XCode 12.1 ("версия 2373") xcode-select --install по-прежнему приводит к ошибке, о которой сообщается, возможно, из-за отсутствия соответствующей версии пакета инструментов в репозитории. Версия CommandLineToolsforXcode12GM_seed работает при загрузке вручную, но, похоже, это не то, что запрашивает XCode. Не похоже, что добавление пакета с соответствующим именем в репозиторий не должно требовать значительных усилий.
Команда xcode-select --install по-прежнему не работает. Хотя можно загрузить установщик инструментов командной строки, это нежелательный обходной путь.
Команда xcode-select --install не работает с момента выпуска Xcode 12 более месяца назад.
Я думаю, что на самом деле это комбинация обоих:
У вас должен быть установлен Xcode, и Инструменты командной строки устанавливаются только в том случае, если они загружены вручную со страницы, указанной выше.
В по крайней мере, так было со мной два раза.
Раньше мы могли устанавливать инструменты командной строки отдельно, без необходимости использовать весь Xcode, который лично мне не нужен.
Поскольку для установки бутылок Homebrew требуются инструменты командной строки, я прошу восстановить эту функциональность.
Это необычно — не в хорошем смысле!
У меня была эта проблема на другом компьютере с Catalina около месяца назад, и я переключался между "xcode-select --install" и удалениями. В конце концов, я понятия не имею, что я сделал, CLT был установлен. Хура. Я подумал: «Этого больше никогда не повторится», потому что не знал, что это широко распространенное явление, и забыл об этом.
Теперь я пытаюсь заставить brew работать на другой машине Catalina. Чем бы я ни баловался до того, как я не смог «просто сделать это». Итак, я следовал инструкциям здесь. я зашел на сайт Apple Developer и скачал CLT, и теперь brew снова работает.
Но вот в чем дело. загруженный .dmg составляет ~ 435 МБ, а установщик использовал> 2,4 ГБ дискового пространства! Какой?! Я хочу только CLT. Если бы мне нужен был такой большой пакет, я бы установил весь пакет Xcode и просто надеялся, что клиент не сделает ничего разрушительного по ошибке.
Мне действительно не нравится, как Apple использует наши машины так, как хотят ОНИ, а не так, как хотим мы. Я уже перешел на Linux и серьезно подумываю о переносе своих клиентов вместе со мной.
Решение найдено, но решение Apple не приветствуется.
ps Для ясности: я благодарен сообществу за найденное и опубликованное решение. Я просто думаю, что Apple не заботятся о мелких разработчиков.
Читайте также: