Huawei Mobile Services
Шаг 1. Настройки проекта Huawei Mobile Services
Создайте проект AppGalleryConnect. Для этого перейдите в раздел Разработка и сервисы -> Добавить проект:

Добавьте новое приложение в проект:

Укажите данные о вашем приложении:

Выполните загрузку файла agconnect-services.plist
:

В левой боковой панели выберите Push Kit в разделе Рост:

Нажмите Включить — Выберите место хранения данных:

Далее перейдите в раздел PushKit — Настройки — Приложение — Конфигурация IOS — Включить. В открывшейся конфигурации IOS укажите:
- Ключ аутентификации APNs — данные из файла закрытого .p8-ключа открытого в текстовом редакторе;
- ID ключа —
keyID
файла закрытого .p8-ключа (обычно совпадает с названием самого файла — значение послеAuthKey_
); - ID разработчика —
teamID
из Apple Developer.

Шаг 2. Настройка ресурса Altcraft
В платформе Altcraft создайте ресурс или добавьте к существующему новый канал коммуникации — Push. Затем в настройках ресурса выберите платформу iOS и активируйте переключатель Huawei Mobile Services:

Чуть ниже перейдите в настройки Huawei и укажите ID приложения, ID клиента OAuth 2.0 и секрет клиента OAuth 2.0:

Обратите внимание, что ID приложения — ID клиента из раздела Данные приложения.
Все эти данные можно найти в разделе Данные приложения в Huawei Mobile Services:

После внесения изменений не забудьте сохранить ресурс.
Шаг 3. Интеграция Huawei Push Kit в проект приложения
Переместите загруженный файл agconnect-services.plist
в корневой каталог модуля приложения (app). Затем подключите pod-файл HmsPushSDK
.
Настройте таргет приложения:
- General — Frameworks, Libraries, and Embedded Content
Проверьте, что необходимые фреймворки добавлены и установлены как Do Not Embed:
AGConnectCore.xcframework
;AGConnectCredential.xcframework
;HiAnalytics.xcframework
;HMFoundation.xcframework
.

- Signing & Capabilities
Добавьте Push Notifications.
Шаг 4. Получение HMS-токена
Получите HMS-токен с помощью функции HmsInstanceId.getInstance().getToken(apnsToken)
, передав APNs-токен в качестве параметра:
Пример получения и удаления токена HMS в реализации интерфейса SDK
import Foundation
// обязательно импортируйте HmsPushSdk в файлы в которых используете функции HMS
import HmsPushSdk
import Altcraft
class HMSProvider: HMSInterface {
/// Извлекает текущий токен HMS с помощью токена APNs
func getToken(completion: @escaping (String?) -> Void) {
guard let apnsToken = getAPNsTokenFromUserDefault() else {
completion(nil)
return
}
let token = HmsInstanceId.getInstance().getToken(apnsToken)
completion(token)
}
func deleteToken(completion: @escaping (Bool) -> Void) {
HmsInstanceId.getInstance().deleteToken()
completion(true)
}
}