Начало работы с iOS
Важно!
Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio до полного прекращения его использования, существует несколько рекомендуемых вариантов, на которые можно перейти.
Узнайте больше о сроках поддержки и альтернативных вариантах.
Пакет SDK центра приложений использует модульную архитектуру, поэтому вы можете использовать любую или все службы.
Сведения о данных, собираемых Центром приложений, можно найти на страницах Data Collected by App Center SDK, General Data Protection Regulation и Faq . Кроме того, часто задаваемые вопросы содержат ответы, которые необходимо предоставить для App Store конфигурации конфиденциальности.
Давайте приступим к настройке пакета SDK центра приложений для iOS в приложении для использования аналитики Центра приложений и сбоев Центра приложений. Чтобы добавить распространение центра приложений в приложение, ознакомьтесь с документацией по распространению в Центре приложений.
1. Предварительные требования
Чтобы использовать пакет SDK для Центра приложений, необходимо выполнить следующие требования:
- Проект iOS настроен в Xcode 13 или более поздней версии в macOS версии 10.14.4 или более поздней.
- Вы нацелены на устройства под управлением ios 11.0 или более поздней версии.
- Вы не используете другую библиотеку, которая предоставляет функции отчетов о сбоях (только для сбоев Центра приложений).
- Если вы используете CocoaPods для интеграции App Center, вам потребуется CocoaPods версии 1.10 или более поздней.
Аналитика и сбои пакета SDK центра приложений совместимы с Mac Catalyst через XCFramework или SwiftPM.
2. Создайте приложение на портале Центра приложений, чтобы получить секрет приложения
Если вы уже создали приложение на портале Центра приложений, этот шаг можно пропустить.
- Перейдите к appcenter.ms.
- Зарегистрируйтесь или войдите в систему и нажмите синюю кнопку в правом верхнем углу портала с надписью Добавить и выберите Добавить новое приложение в раскрывающемся меню.
- Введите имя и необязательное описание приложения.
- Выберите iOS в качестве ОС и Objective-C/Swift в качестве платформы.
- Нажмите кнопку в правом нижнем углу с надписью Добавить новое приложение.
После создания приложения его секрет можно получить на странице Параметры на портале Центра приложений. В правом верхнем углу страницы Параметры щелкните тройную вертикальную точку и выберите Copy app secret
, чтобы получить секрет приложения.
3. Добавление модулей пакета SDK для Центра приложений
Пакет SDK центра приложений для iOS можно добавить в приложение с помощью Cocoapods, Carthage, диспетчера пакетов Swift или путем добавления двоичных файлов в проект вручную.
Примечание
4.0.0
В версии Центра приложений были введены критические изменения. Следуйте указаниям в разделе Миграция на пакет SDK 4.0.0 и более поздних версий Центра приложений , чтобы перенести Центр приложений из предыдущих версий.
3.1 Интеграция с cocoapods
Примечание
Симуляторы ARM64 (при запуске из Xcode, работающей на Apple Silicon Mac) не поддерживаются через CocoaPods. Рассмотрите возможность использования других методов интеграции, чтобы они работали.
Добавьте в приложение
podfile
следующие зависимости, чтобы включить аналитику Центра приложений и аварийное завершение работы центра приложений. Это действие использует следующие платформы: AppCenter, AppCenterAnalytics и AppCenterCrashes. Вместо этого можно указать нужные службы в приложении. Каждая служба имеет собственный подспец, и все они зависят от AppCenter. Он будет извлечен автоматически.# Use the following line to use App Center Analytics and Crashes.x pod 'AppCenter' # Use the following lines if you want to specify which service you want to use. pod 'AppCenter/Analytics' pod 'AppCenter/Crashes' pod 'AppCenter/Distribute'
Выполните команду
pod install
, чтобы установить только что определенный модуль pod, и откройте файл проекта.xcworkspace
.
Примечание
Если при выполнении pod install
отображается сообщение об ошибке [!] Unable to find a specification for `AppCenter`
, выполните команду pod repo update
, чтобы получить последние модули pod из репозитория Cocoapods, а затем выполните команду pod install
.
Теперь, когда вы интегрировали платформы в приложение, пришло время запустить пакет SDK и использовать службы Центра приложений.
3.2 Интеграция через Карфаген
Ниже приведены шаги по интеграции пакета SDK центра приложений в проект Xcode с помощью Carthage версии 0.30 или более поздней, децентрализованного диспетчера зависимостей, который создает зависимости и предоставляет двоичные платформы.
Примечание
Интеграция с Carthage не работает в Xcode 12. Чтобы это работало, ознакомьтесь с этой инструкцией в Карфагене
Добавьте следующие зависимости в центр
Cartfile
приложений. Эти зависимости извлекает все платформы. Затем можно связать только те платформы, которые вы хотите использовать в приложении.# Use the following line to get the latest version of App Center github "microsoft/appcenter-sdk-apple"
# Use the following line to get the specific version of App Center github "microsoft/appcenter-sdk-apple" ~> X.X.X
Выполните команду
carthage update
, чтобы получить зависимости в папку Carthage/Checkouts . Затем выполните сборку каждой платформы.Откройте вкладку Общие параметры целевого объекта приложения. Перетащите файлы AppCenter.framework, AppCenterAnalytics.framework и AppCenterCrashes.framework из папки Carthage/Build/iOS в навигатор проектов Xcode. Для запуска пакета SDK требуется AppCenter.framework . Если он не будет добавлен в проект, другие модули не будут работать и ваше приложение не будет компилироваться.
Появится диалоговое окно, убедитесь, что установлен флажок целевого объекта приложения. Нажмите кнопку Готово.
Примечание
Если вы используете
carthage copy-frameworks
на этапе сборки , не следует добавлять туда пакеты SDK центра приложений, так как они поставляются как статические платформы.
Теперь, когда вы интегрировали платформы в приложение, пришло время запустить пакет SDK и использовать службы Центра приложений.
3.3 Интеграция с помощью диспетчера пакетов Swift
- В меню Xcode выберите Файл > Swift Packages > Add Package Dependency (Добавить зависимость пакета).
- В появившемся диалоговом окне введите URL-адрес репозитория: https://github.com/microsoft/appcenter-sdk-apple.git.
- В разделе Версия выберите До следующей основной и выберите параметр по умолчанию.
- Выберите необходимые модули в столбце Package Product (Продукт пакета ).
Теперь, когда вы интегрировали платформы в приложение, пришло время запустить пакет SDK и использовать службы Центра приложений.
Примечание
Если вы интегрируете Центр приложений через SwiftPM и хотите использовать его в целевом объекте расширения приложения, убедитесь, что вы указали DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC=YES
в конфигурации. Это необходимо, чтобы избежать ограничений SwiftPM при связывании модуля с несколькими целевыми объектами.
3.4 Интеграция путем копирования двоичных файлов в проект
Ниже приведены инструкции по интеграции скомпилированных двоичных файлов в проект Xcode для настройки аналитики Центра приложений и сбоев центра приложений для приложения iOS.
Примечание
Пакет SDK центра приложений поддерживает использование XCframework
. Если вы хотите интегрировать XCframeworks в проект, скачайте AppCenter-SDK-Apple-XCFramework.zip на странице выпусков и распакуйте его. Результирующее содержимое папки не зависит от платформы, вместо этого оно содержит XCframeworks для каждого модуля. Их можно интегрировать так же, как обычные платформы, как описано ниже.
Скачайте платформы пакета SDK центра приложений , предоставленные в виде ZIP-файла.
Распакуйте файл, и вы увидите папку с именем AppCenter-SDK-Apple , которая содержит различные платформы для каждой службы центра приложений в каждой папке платформы. Вызываемая платформа
AppCenter
является обязательной в проекте, так как она содержит код, который совместно используется различными модулями.[Необязательно] Создайте подкаталог для сторонних библиотек.
- Рекомендуется, что сторонние библиотеки обычно находятся в подкаталоге, который часто называется Vendor. Если проект не упорядочен с подкаталогом для библиотек, создайте подкаталог Vendor .
- Создайте группу с именем Vendor в проекте Xcode, чтобы имитировать структуру файлов на диске.
Откройте распакованную папку AppCenter-SDK-Apple в Finder и скопируйте ее в папку проекта в нужном расположении. Папка содержит платформы во вложенных папках для других платформ, поддерживаемых пакетом SDK центра приложений, поэтому может потребоваться удалить ненужные вложенные папки.
Добавьте платформы SDK в проект в Xcode:
- Убедитесь, что отображается навигатор проекта (⌘+1).
- Теперь перетащите & AppCenter.framework, AppCenterAnalytics.framework и AppCenterCrashes.framework из Finder (в расположении из предыдущего шага) в навигатор проекта Xcode. Для запуска пакета SDK требуется AppCenter.framework . Если он не будет добавлен в проект, другие модули не будут работать и ваше приложение не будет компилироваться.
- Появится диалоговое окно, убедитесь, что установлен флажок целевого объекта приложения. Нажмите кнопку Готово.
Теперь, когда вы интегрировали платформы в приложение, пришло время запустить пакет SDK и использовать службы Центра приложений.
4. Запустите пакет SDK
Чтобы использовать Центр приложений, согласитесь на модули, которые вы хотите использовать. По умолчанию модули не запускаются, и при запуске пакета SDK необходимо вызывать каждый из них.
Приведенные ниже инструкции немного отличаются в зависимости от используемого жизненного цикла. Начиная с Xcode 12 можно выбрать один из двух жизненных циклов: "Приложение интерфейса Swift" (выбрано по умолчанию в Xcode 12) и "AppDelegate для набора пользовательского интерфейса". Если вы разрабатываете расширение, см. страницу Начало работы с расширением.
4.1. Добавление инструкций импорта
Откройте файл AppDelegate проекта (для жизненного цикла AppDelegate комплекта пользовательского интерфейса) или <файл ProjectName>App.swift (для жизненного цикла приложения пользовательского интерфейса Swift) и добавьте следующие инструкции импорта:
@import AppCenter;
@import AppCenterAnalytics;
@import AppCenterCrashes;
import AppCenter
import AppCenterAnalytics
import AppCenterCrashes
4.2 Добавление start:withServices:
метода
Комплект пользовательского интерфейса AppDelegate
Добавьте код инициализации в didFinishLaunchingWithOptions
метод делегата:
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])
Жизненный цикл приложения пользовательского интерфейса Swift
Чтобы убедиться, что пакет SDK центра приложений правильно работает с пользовательским интерфейсом Swift, инициализируйте его после загрузки пользовательского интерфейса. Самый простой способ добиться этого — использовать UIApplicationDelegate:
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
AppCenter.start(withAppSecret: "{Your App Secret}", services:[
Crashes.self, Analytics.self, Distribute.self])
return true
}
}
Затем используйте UIApplicationDelegateAdaptor
в struct
:
@main
struct YourAppName: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Если у вас есть приложение Catalyst, вы можете передавать секреты приложения как для iOS, так и для macOS одновременно:
AppCenter.start(withAppSecret:"ios={Your iOS App Secret};macos={Your macOS App Secret}", services: [Analytics.self, Crashes.self])
Предупреждение
Не рекомендуется внедрять секрет приложения в исходный код.
Если вам нужно запустить службы Центра приложений отдельно, выполните следующие действия:
- Настройте или запустите его с помощью секрета приложения.
- Если код можно вызвать несколько раз, проверка, если центр приложений уже настроен.
- Запустите необходимые службы без секрета приложения.
[MSACAppCenter configureWithAppSecret:@"{Your App Secret}"];
if ([MSACAppCenter isConfigured]) {
[MSACAppCenter startService:[MSACAnalytics class]];
[MSACAppCenter startService:[MSACCrashes class]];
}
AppCenter.configure(withAppSecret: "{Your App Secret}")
if AppCenter.isConfigured {
AppCenter.startService(Analytics.self)
AppCenter.startService(Crashes.self)
}
4.3. Замените заполнитель секретом приложения
Обязательно замените {Your App Secret}
текст фактическим значением для приложения. Секрет приложения можно найти на странице начало работы или на странице параметров на портале Центра приложений.
Страница начало работы содержит приведенный выше пример кода с секретом приложения. Вы можете скопировать и вставить весь пример.
В приведенном выше примере показано, как использовать метод (start(withAppSecret:services:)
для Swift) и включить аналитику start:withServices
Центра приложений и сбои Центра приложений.
Если вы не хотите использовать одну из двух служб, удалите соответствующий параметр из вызова метода выше.
Если вы явно не указали каждый модуль в качестве параметра в методе start, вы не сможете использовать эту службу Центра приложений. Кроме того, start:withServices
API (start(withAppSecret:services:)
для Swift) можно использовать только один раз в жизненном цикле приложения. Все остальные вызовы будут записывать предупреждение в консоль, и будут доступны только модули, включенные в первый вызов.
Например, если вы хотите подключиться к Аналитике Центра приложений, необходимо изменить start:withServices
вызов API (start(withAppSecret:services:)
для Swift) следующим образом:
[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self])
Отлично, все готово для визуализации данных аналитики и сбоев на портале, которые пакет SDK собирает автоматически.
Ознакомьтесь с документацией по аналитике Центра приложений и Документации по сбоям Центра приложений , чтобы узнать, как настроить и использовать более сложные функции обеих служб.
Чтобы узнать, как приступить к работе с обновлениями из приложения, ознакомьтесь с документацией по распространению в Центре приложений.