Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Мониторинг iOS-приложений и настройка ЕдиногоАгента

Материал из Документация АппОптима
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Для того чтобы начать мониторинг мобильного приложения с помощью АппОптима, необходимо создать объект приложения в веб-интерфейсе АппОптима, а затем инструментировать ваше мобильное приложение с помощью ЕдиныйАгент для 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, 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 'astromkey', '~> 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 'astromkey/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 'astromkey/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 'astromkey/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://git.ruscomtech.ru/free/swift-mobile-sdk
  3. Выберите только один package product:
  • Astromkey – чтобы добавить только ЕдиныйАгент.

Важно

  • -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 Astromkey.h


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

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

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

  1. Добавьте binary "https://ruscomtech.ru/static/ios/carthage/astromkey.json" ~> 8.237 в ваш Cartfile.
  2. Запустите carthage update --use-xcframeworks.
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 <AstromkeyStatic/Astromkey.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 Astromkey.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 <AstromkeyStatic/Astromkey.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 Astromkey.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), которые используют переходы для перехода к другим представлениям.
Содержание