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)
}
}