Мониторинг iOS-приложений и настройка ЕдиногоАгента
Для того чтобы начать мониторинг мобильного приложения с помощью Ключ-АСТРОМ, необходимо создать объект приложения в веб-интерфейсе Ключ-АСТРОМ, а затем инструментировать ваше мобильное приложение с помощью ЕдиныйАгент для iOS.
После инструментирования мобильного приложения, вы можете настроить его в соответствии со своими потребностями:
- Настроить функции автоинструментации с помощью ключей конфигурации.
- Захватить дополнительных данные с помощью ручного инструментирования.
- Настроить параметры конфиденциальности данных для ваших мобильных приложений. Например, настроить маскирование действий пользователя.
- Узнайте, какие данные собирает ЕдиныйАгент для iOS, чтобы заполнить или обновить анкету App Store Connect о данных конфиденциальности.
1. Создайте приложение в веб-интерфейсе Ключ-АСТРОМ
- В меню выберите Deploy Ключ-АСТРОМ.
- Прокрутите вниз и выберите Set up mobile monitoring.
- Введите имя для своего приложения и выберите Create mobile app. Откроется страница настроек приложения.
2. Настройка ЕдиныйАгент
Используйте CocoaPods, Swift Package Manager или Carthage, чтобы настроить Real User Monitoring вашего мобильного приложения.
Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.
Вы можете настроить ЕдиныйАгент как dynamic XCFramework, static XCFramework (доступен для ЕдиныйАгент for iOS версии 8.237+), traditional framework или static library.
❗ Важно
Вы не можете комбинировать static XCFramework Ключ-АСТРОМ и dynamic XCFramework Session Replay. Для Session Replay обе XCFrameworks должны быть динамическими. Если вы используете static XCFramework, traditional framework или static library для инструментирования iOS-приложения, вам потребуется выполнить некоторые дополнительные действия. |
2.1. Настройка ЕдиныйАгент с помощью CocoaPods
- Добавьте Ключ-АСТРОМ ЕдиныйАгент в качестве зависимости в спецификацию CocoaPods Podfile. Это можно сделать, настроив ЕдиныйАгент как dynamic XCFramework, static XCFramework, traditional framework или static library.
Dynamic XCFramework | Static XCFramework | Traditional XCFramework | Static library |
Чтобы настроить Ключ-АСТРОМ как dynamic XCFramework, добавьте pod Ключ-АСТРОМ в ваш Podfile.
Убедитесь, что вы раскомментировали строку use_frameworks!. # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'DemoApp' do # Uncomment this line if you're using Swift or want to use dynamic frameworks use_frameworks! # Pods for DemoApp pod 'Ключ-АСТРОМ', '~> 8.237' end |
Чтобы настроить Ключ-АСТРОМ как static XCFramework, добавьте pod Ключ-АСТРОМ/xcframeworkStatic в ваш Podfile.
Убедитесь, что вы раскомментировали строку use_frameworks!. # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'DemoApp' do # Uncomment this line if you're using Swift or want to use dynamic frameworks use_frameworks! # Pods for DemoApp pod 'Ключ-АСТРОМ/xcframeworkStatic', '~> 8.237' end |
Чтобы настроить Ключ-АСТРОМ как traditional framework, добавьте pod Ключ-АСТРОМ/framework в ваш Podfile.
Убедитесь, что вы раскомментировали строку use_frameworks!. # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'DemoApp' do # Uncomment this line if you're using Swift or want to use dynamic frameworks use_frameworks! # Pods for DemoApp pod 'Ключ-АСТРОМ/framework', '~> 8.237' end |
Чтобы настроить Ключ-АСТРОМ как static library, добавьте pod Ключ-АСТРОМ/lib в ваш Podfile.
Убедитесь, что вы раскомментировали строку use_frameworks!. # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'DemoApp' do # Uncomment this line if you're using Swift or want to use dynamic frameworks # use_frameworks! # Pods for DemoApp pod 'Ключ-АСТРОМ/lib', '~> 8.237' end |
❗ Важно
Традиционная платформа и статическая библиотека устарели, поскольку они не поддерживают ARM64 Simulator architecture.
Эта архитектура необходима для создания приложений на компьютерах Mac с помощью Apple Silicon.
2. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки (instrumentation wizard) в веб-интерфейсе Ключ-АСТРОМ.
3. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
CocoaPods автоматически добавляет ЕдиныйАгент в ваш iOS-проект в процессе сборки.
❗ Важно
Для получения дополнительной информации о Podfiles, смотрите Справочник по синтаксису. |
2.2. Настройка ЕдиныйАгент с помощью Swift Package Manager
- В Xcode, выберете File > Swift Packages > Add Package Dependency.
- В качестве URL-адреса репозитория пакетов добавьте https://github.com/Ключ-АСТРОМ/swift-mobile-sdk.git
- Выберите только один package product:
- Ключ-АСТРОМ – чтобы добавить только ЕдиныйАгент.
- Ключ-АСТРОМSessionReplay – чтобы добавить ЕдиныйАгент и Session Replay при сбоях.
❗ Важно
Не выбирайте Ключ-АСТРОМSessionReplay для tvOS, поскольку Session Replay недоступно для этой операционной системы.
- Ключ-АСТРОМ-Static – чтобы добавить только ЕдиныйАгент как static XCFramework
- Выполните дополнительные шаги в зависимости от используемой платформы:
Static XCFramework: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ framework.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import <Ключ-АСТРОМStatic/Ключ-АСТРОМ.h>
Static library: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ library.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import Ключ-АСТРОМ.h
5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки (instrumentation wizard) в веб-интерфейсе Ключ-АСТРОМ.
6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
2.3. Настройка ЕдиныйАгент с помощью Carthage
- Добавьте binary "https://mobileagent.downloads.Ключ-АСТРОМ.com/ios/carthage/Ключ-АСТРОМ.json" ~> 8.237 в ваш Cartfile.
- Запустите carthage update --use-xcframeworks.
Если вы используете устаревший traditional framework Ключ-АСТРОМ.framework, запустите carthage update.
- Добавьте Ключ-АСТРОМ.xcframework и Ключ-АСТРОМSessionReplay.xcframework из папки Carthage/Build в раздел Frameworks, Libraries and Embedded Content, расположенный на вкладке General целевого приложения, и установите для него значение Embed & Sign.
- Выполните некоторые дополнительные шаги в зависимости от используемой вами платформы:
Static XCFramework: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Добавить linked library
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Frameworks, Libraries, and Embedded Content..
- Добавьте библиотеку libc++.tbd.
❗ Важно
Возможно, вам придется добавить эту библиотеку дважды. В наших внутренних тестах библиотека была связана с деревом проекта только после того, как мы добавили библиотеку во второй раз.
Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ framework.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import <Ключ-АСТРОМStatic/Ключ-АСТРОМ.h>
Traditional framework: Remove iOS Simulator architecture of the release binary
- В Xcode добавьте фазу Run Script в качестве последней Build Phase вашего целевого приложения.
- Добавьте следующий скрипт:
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
- Выберите Run script: For install builds only.
Это удалит iOS Simulator architecture из бинарного файла вашего релиза, используемого для загрузки AppStore Connect.
Static library: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ library.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import Ключ-АСТРОМ.h
5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки (instrumentation wizard) в веб-интерфейсе Ключ-АСТРОМ.
6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
2.4. Настройка ЕдиныйАгент вручную
- Получите доступ к mobile instrumentation wizard.
- Выберите iOS и перейдите на вкладку Developer.
- Следуйте предоставленным инструкциям.
- Выполните некоторые дополнительные шаги в зависимости от используемой вами платформы:
Static XCFramework: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Добавить linked library
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Frameworks, Libraries, and Embedded Content..
- Добавьте библиотеку libc++.tbd.
❗ Важно
Возможно, вам придется добавить эту библиотеку дважды. В наших внутренних тестах библиотека была связана с деревом проекта только после того, как мы добавили библиотеку во второй раз.
Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ framework.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import <Ключ-АСТРОМStatic/Ключ-АСТРОМ.h>
Traditional framework: Remove iOS Simulator architecture of the release binary
- В Xcode добавьте фазу Run Script в качестве последней Build Phase вашего целевого приложения.
- Добавьте следующий скрипт:
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
- Выберите Run script: For install builds only.
Это удалит iOS Simulator architecture из бинарного файла вашего релиза, используемого для загрузки AppStore Connect.
Static library: Добавить linker flag
- В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
- Разверните Linking.
- Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ library.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
- Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
- Добавьте следующую строку импорта в файл bridging header:
#import Ключ-АСТРОМ.h
5. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
3. Доступ к mobile instrumentation wizard
Мастер инструментирования для мобильных устройств в веб-интерфейсе Ключ-АСТРОМ предоставляет вам инструкции по инструментированию ваших приложений iOS. Более подробная инструкция, находится в данном документе в разделе Настройка ЕдиныйАгент.
Мастер также содержит фрагменты кода с идентификационными ключами вашего приложения, которые необходимо добавить в файл Info.plist.
- В меню Ключ-АСТРОМ выберите Mobile.
- Выберите мобильное приложение, которое вы хотите настроить.
- Выберите More (…) > Edit в правом верхнем углу плитки с названием вашего приложения.
- В настройках приложения перейдите к Instrumentation wizard.
4. Ограничения
- Авто-инструментированное приложение не может выполнять такие функции, как Ключ-АСТРОМ.shutdown() или Ключ-АСТРОМ.flushEvents(). Вы можете вручную вставить эти методы, а также другие пользовательские действия и события перед выполнением автоинструментации.
- Следующие элементы управления нельзя использовать для создания автоматически сгенерированных действий:
- Жесты
- Определенные UIBarButton элементы, в том числе настраиваемые UIBarButton элементы, добавленные на панель навигации storyboard (например, info), которые используют переходы для перехода к другим представлениям.