Мониторинг iOS-приложений и настройка ЕдиногоАгента: различия между версиями

Материал из Документация Ключ-АСТРОМ
Строка 10: Строка 10:
= 1. Создайте приложение в веб-интерфейсе Ключ-АСТРОМ =
= 1. Создайте приложение в веб-интерфейсе Ключ-АСТРОМ =


# В меню выберите '''Deploy Ключ-АСТРОМ'''.
# В меню выберите '''Развернуть Ключ-АСТРОМ'''.
# Прокрутите вниз и выберите '''Set up mobile monitoring'''.
# Прокрутите вниз и выберите '''Настроить мобильный мониторинг'''.
# Введите имя для своего приложения и выберите '''Create mobile app'''.  Откроется страница настроек приложения.
# Введите имя для своего приложения и выберите '''Создать мобильное приложение'''.  Откроется страница настроек приложения.


= 2. Настройка ЕдиныйАгент =
= 2. Настройка ЕдиныйАгент =
Используйте CocoaPods, Swift Package Manager или Carthage, чтобы настроить Real User Monitoring вашего мобильного приложения.  
Используйте CocoaPods, Swift Package Manager или Carthage, чтобы настроить мониторинг пользовательского опыта вашего мобильного приложения.  


Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.
Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.

Версия 09:28, 26 мая 2023

Для того чтобы начать мониторинг мобильного приложения с помощью Ключ-АСТРОМ, необходимо создать объект приложения в веб-интерфейсе Ключ-АСТРОМ, а затем инструментировать ваше мобильное приложение с помощью ЕдиныйАгент для iOS.

После инструментирования мобильного приложения, вы можете настроить его в соответствии со своими потребностями:

  • Настроить функции автоинструментации с помощью ключей конфигурации.
  • Захватить дополнительных данные с помощью ручного инструментирования.
  • Настроить параметры конфиденциальности данных для ваших мобильных приложений. Например, настроить маскирование действий пользователя.
  • Узнайте, какие данные собирает ЕдиныйАгент для iOS, чтобы заполнить или обновить анкету App Store Connect о данных конфиденциальности.

1. Создайте приложение в веб-интерфейсе Ключ-АСТРОМ

  1. В меню выберите Развернуть Ключ-АСТРОМ.
  2. Прокрутите вниз и выберите Настроить мобильный мониторинг.
  3. Введите имя для своего приложения и выберите Создать мобильное приложение. Откроется страница настроек приложения.

2. Настройка ЕдиныйАгент

Используйте CocoaPods, Swift Package Manager или Carthage, чтобы настроить мониторинг пользовательского опыта вашего мобильного приложения.

Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.

Вы можете настроить ЕдиныйАгент как 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

  1. Добавьте Ключ-АСТРОМ ЕдиныйАгент в качестве зависимости в спецификацию 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 'Dynatrace', '~> 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 'Dynatrace/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 'Dynatrace/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 'Dynatrace/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

  1. В Xcode, выберете File > Swift Packages > Add Package Dependency.
  2. В качестве URL-адреса репозитория пакетов добавьте https://github.com/Dynatrace/swift-mobile-sdk.git
  3. Выберите только один package product:
  • Dynatrace – чтобы добавить только ЕдиныйАгент.
  • DyatraceSessionReplay – чтобы добавить ЕдиныйАгент и воспроизведение сессий при сбоях.

Важно

Не выбирайте DynatraceSessionReplay для tvOS, поскольку Session Replay недоступно для этой операционной системы.

  • -Static – чтобы добавить только ЕдиныйАгент как static XCFramework
  1. Выполните дополнительные шаги в зависимости от используемой платформы:
Static XCFramework: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к фреймворку.


Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import <Ключ-АСТРОМStatic/Ключ-АСТРОМ.h>

Static library: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к библиотеке.

Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import dynatrace.h


5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки (instrumentation wizard) в веб-интерфейсе Ключ-АСТРОМ.

6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.

2.3. Настройка ЕдиныйАгент с помощью Carthage

  1. Добавьте binary "https://mobileagent.downloads.dynatrace.com/ios/carthage/dynatrace.json" ~> 8.237 в ваш Cartfile.
  2. Запустите carthage update --use-xcframeworks.

Если вы используете устаревший traditional framework dynatrace.framework, запустите carthage update.

  1. Добавьте dynatrace.xcframework и DynatraceSessionReplay.xcframework из папки Carthage/Build в раздел Frameworks, Libraries and Embedded Content, расположенный на вкладке General целевого приложения, и установите для него значение Embed & Sign.
  2. Выполните некоторые дополнительные шаги в зависимости от используемой вами платформы:
Static XCFramework: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Добавить linked library
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Frameworks, Libraries, and Embedded Content..
  3. Добавьте библиотеку libc++.tbd.

Важно

Возможно, вам придется добавить эту библиотеку дважды. В наших внутренних тестах библиотека была связана с деревом проекта только после того, как мы добавили библиотеку во второй раз.

Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к фреймворку.

Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import <DynatraceStatic/Dynatrace.h>

Traditional framework: Remove iOS Simulator architecture of the release binary
  1. В Xcode добавьте фазу Run Script в качестве последней Build Phase вашего целевого приложения.
  2. Добавьте следующий скрипт:

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

  1. Выберите Run script: For install builds only.

Это удалит iOS Simulator architecture из бинарного файла вашего релиза, используемого для загрузки AppStore Connect.

Static library: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к библиотеке.

Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import dynatrace.h


5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки (instrumentation wizard) в веб-интерфейсе Ключ-АСТРОМ.

6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.

2.4. Настройка ЕдиныйАгент вручную

  1. Получите доступ к mobile instrumentation wizard.
  2. Выберите iOS и перейдите на вкладку Developer.
  3. Следуйте предоставленным инструкциям.
  4. Выполните некоторые дополнительные шаги в зависимости от используемой вами платформы:
Static XCFramework: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static XCFramework: Добавить linked library
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Frameworks, Libraries, and Embedded Content..
  3. Добавьте библиотеку libc++.tbd.

Важно

Возможно, вам придется добавить эту библиотеку дважды. В наших внутренних тестах библиотека была связана с деревом проекта только после того, как мы добавили библиотеку во второй раз.

Static XCFramework: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к Ключ-АСТРОМ framework.

Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import <DynatraceStatic/Dynatrace.h>

Traditional framework: Remove iOS Simulator architecture of the release binary
  1. В Xcode добавьте фазу Run Script в качестве последней Build Phase вашего целевого приложения.
  2. Добавьте следующий скрипт:

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

  1. Выберите Run script: For install builds only.

Это удалит iOS Simulator architecture из бинарного файла вашего релиза, используемого для загрузки AppStore Connect.

Static library: Добавить linker flag
  1. В Xcode перейдите на вкладку Build Settings вашего целевого приложения.
  2. Разверните Linking.
  3. Добавьте linker flag -ObjC к Other Linker Flags.
Static library: Сделайте Ключ-АСТРОМ доступным для кода Swift

Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к библиотеке.

Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.

  1. Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
  2. Добавьте следующую строку импорта в файл bridging header:

#import dynatrace.h


5. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.

3. Доступ к mobile instrumentation wizard

Мастер инструментирования для мобильных устройств в веб-интерфейсе Ключ-АСТРОМ предоставляет вам инструкции по инструментированию ваших приложений iOS. Более подробная инструкция, находится в данном документе в разделе Настройка ЕдиныйАгент.

Мастер также содержит фрагменты кода с идентификационными ключами вашего приложения, которые необходимо добавить в файл Info.plist.

  1. В меню Ключ-АСТРОМ выберите Mobile.
  2. Выберите мобильное приложение, которое вы хотите настроить.
  3. Выберите More (…) > Edit в правом верхнем углу плитки с названием вашего приложения.
  4. В настройках приложения перейдите к Instrumentation wizard.

4. Ограничения

  • Авто-инструментированное приложение не может выполнять такие функции, как shutdown() или flushEvents(). Вы можете вручную вставить эти методы, а также другие пользовательские действия и события перед выполнением автоинструментации.
  • Следующие элементы управления нельзя использовать для создания автоматически сгенерированных действий:
    • Жесты
    • Определенные UIBarButton элементы, в том числе настраиваемые UIBarButton элементы, добавленные на панель навигации storyboard (например, info), которые используют переходы для перехода к другим представлениям.