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

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

Материал из Документация АппОптима
(Новая страница: «Для того чтобы начать мониторинг мобильного приложения с помощью Ключ-АСТРОМ, необходим...»)
 
Нет описания правки
 
(не показано 8 промежуточных версий 2 участников)
Строка 1: Строка 1:
Для того чтобы начать мониторинг мобильного приложения с помощью Ключ-АСТРОМ, необходимо создать объект приложения в веб-интерфейсе Ключ-АСТРОМ, а затем инструментировать ваше мобильное приложение с помощью ЕдиныйАгент для iOS.
'''''[[Модули платформы]] / [[Модули платформы|Цифровой опыт]] / [https://docs.expert-apm.ru/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B#:~:text=%D0%9C%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F Мобильные приложения] / [https://docs.expert-apm.ru/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8_%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%8B#:~:text=%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5%20%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B4%D0%BB%D1%8F%20iOS Инструментальные приложения для iOS] / Мониторинг iOS-приложений и настройка ЕдиногоАгента'''''
 
Для того чтобы начать мониторинг мобильного приложения с помощью АппОптима, необходимо создать объект приложения в веб-интерфейсе АппОптима, а затем инструментировать ваше мобильное приложение с помощью ЕдиныйАгент для iOS.


После инструментирования мобильного приложения, вы можете настроить его в соответствии со своими потребностями:
После инструментирования мобильного приложения, вы можете настроить его в соответствии со своими потребностями:
Строка 8: Строка 10:
* Узнайте, какие данные собирает ЕдиныйАгент для iOS, чтобы заполнить или обновить анкету App Store Connect о данных конфиденциальности.
* Узнайте, какие данные собирает ЕдиныйАгент для iOS, чтобы заполнить или обновить анкету App Store Connect о данных конфиденциальности.


= 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, чтобы настроить мониторинг пользовательского опыта вашего мобильного приложения.  


Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.
Вы также можете использовать ручной способ инструментирования, хотя рекомендуется использовать один из автоматизированных подходов.
Строка 22: Строка 24:
{| class="wikitable"
{| class="wikitable"
|❗ '''''Важно'''''
|❗ '''''Важно'''''
Вы не можете комбинировать static XCFramework Ключ-АСТРОМ и dynamic XCFramework Session Replay. Для Session Replay обе XCFrameworks должны быть динамическими.


Если вы используете static XCFramework, traditional framework или static library для инструментирования iOS-приложения, вам потребуется выполнить некоторые дополнительные действия.
Если вы используете static XCFramework, traditional framework или static library для инструментирования iOS-приложения, вам потребуется выполнить некоторые дополнительные действия.
Строка 30: Строка 30:
== 2.1. Настройка ЕдиныйАгент с помощью CocoaPods ==
== 2.1. Настройка ЕдиныйАгент с помощью CocoaPods ==


# Добавьте Ключ-АСТРОМ ЕдиныйАгент в качестве зависимости в спецификацию CocoaPods Podfile. Это можно сделать, настроив ЕдиныйАгент как dynamic XCFramework, static XCFramework, traditional framework или static library.
# Добавьте АппОптима ЕдиныйАгент в качестве зависимости в спецификацию CocoaPods Podfile. Это можно сделать, настроив ЕдиныйАгент как dynamic XCFramework, static XCFramework, traditional framework или static library.


{| class="wikitable"
{| class="wikitable"
Строка 38: Строка 38:
|'''Static library'''
|'''Static library'''
|-
|-
|Чтобы настроить Ключ-АСТРОМ как '''dynamic XCFramework''', добавьте pod Ключ-АСТРОМ в ваш Podfile.  
|Чтобы настроить АппОптима как '''dynamic XCFramework''', добавьте pod АппОптима в ваш Podfile.  


Убедитесь, что вы раскомментировали строку use_frameworks!.
Убедитесь, что вы раскомментировали строку use_frameworks!.
Строка 54: Строка 54:
<nowiki>#</nowiki> Pods for DemoApp
<nowiki>#</nowiki> Pods for DemoApp


pod 'Ключ-АСТРОМ', '~> 8.237'
pod 'AppOptima', '~> 8.237'


end
end
|Чтобы настроить Ключ-АСТРОМ как '''static XCFramework''', добавьте pod Ключ-АСТРОМ/xcframeworkStatic в ваш Podfile.  
|Чтобы настроить АппОптима как '''static XCFramework''', добавьте pod АппОптима/xcframeworkStatic в ваш Podfile.  


Убедитесь, что вы раскомментировали строку use_frameworks!.
Убедитесь, что вы раскомментировали строку use_frameworks!.
Строка 73: Строка 73:
<nowiki>#</nowiki> Pods for DemoApp
<nowiki>#</nowiki> Pods for DemoApp


pod 'Ключ-АСТРОМ/xcframeworkStatic', '~> 8.237'
pod 'AppOptima/xcframeworkStatic', '~> 8.237'


end
end
|Чтобы настроить Ключ-АСТРОМ как traditional framework, добавьте pod Ключ-АСТРОМ/framework в ваш Podfile.
|Чтобы настроить АппОптима как traditional framework, добавьте pod АппОптима/framework в ваш Podfile.


Убедитесь, что вы раскомментировали строку use_frameworks!.
Убедитесь, что вы раскомментировали строку use_frameworks!.
Строка 92: Строка 92:
<nowiki>#</nowiki> Pods for DemoApp
<nowiki>#</nowiki> Pods for DemoApp


pod 'Ключ-АСТРОМ/framework', '~> 8.237'
pod 'AppOptima/framework', '~> 8.237'


end
end
|Чтобы настроить Ключ-АСТРОМ как static library, добавьте pod Ключ-АСТРОМ/lib в ваш Podfile.
|Чтобы настроить АппОптима как static library, добавьте pod АппОптима/lib в ваш Podfile.


Убедитесь, что вы раскомментировали строку use_frameworks!.
Убедитесь, что вы раскомментировали строку use_frameworks!.
Строка 111: Строка 111:
<nowiki>#</nowiki> Pods for DemoApp
<nowiki>#</nowiki> Pods for DemoApp


pod 'Ключ-АСТРОМ/lib', '~> 8.237'
pod 'AppOptima/lib', '~> 8.237'


end
end
|}
|}
❗ '''''Важно'''''
Традиционная платформа и статическая библиотека устарели, поскольку они не поддерживают ARM64 Simulator architecture.
Эта архитектура необходима для создания приложений на компьютерах Mac с помощью Apple Silicon.
2.  Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки ([[Мониторинг iOS-приложений и настройка ЕдиногоАгента#%203.%20%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BA|instrumentation wizard]]) в веб-интерфейсе АппОптима.
3. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
CocoaPods автоматически добавляет ЕдиныйАгент в ваш iOS-проект в процессе сборки.
{| class="wikitable"
|❗ '''''Важно'''''
Для получения дополнительной информации о Podfiles, смотрите Справочник по синтаксису.
|}
== 2.2. Настройка ЕдиныйАгент с помощью Swift Package Manager ==
# В Xcode, выберете '''File > Swift Packages > Add Package Dependency'''.
# В качестве URL-адреса репозитория пакетов добавьте https://git.ruscomtech.ru/free/swift-mobile-sdk
# Выберите только один package product:
* '''AppOptima''' – чтобы добавить только ЕдиныйАгент.
❗ '''''Важно'''''
* '''-Static''' – чтобы добавить только ЕдиныйАгент как static XCFramework
# Выполните дополнительные шаги в зависимости от используемой платформы:
===== Static XCFramework: Добавить linker flag =====
# В Xcode перейдите на вкладку '''Build Settings''' вашего целевого приложения.
# Разверните '''Linking'''.
# Добавьте linker flag '''-ObjC''' к '''Other Linker Flags'''.
===== Static XCFramework: Сделайте АппОптима доступным для кода Swift =====
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к фреймворку.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
# Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
# Добавьте следующую строку импорта в файл bridging header:
<nowiki>#</nowiki>import <АппОптимаStatic/АппОптима.h>
===== Static library: Добавить linker flag =====
# В Xcode перейдите на вкладку '''Build Settings''' вашего целевого приложения.
# Разверните '''Linking'''.
# Добавьте linker flag '''-ObjC''' к '''Other Linker Flags'''.
===== Static library: Сделайте АппОптима доступным для кода Swift =====
Вы можете пропустить этот шаг, если в вашем приложении нет кода Swift или ему не нужен доступ к библиотеке.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
# Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
# Добавьте следующую строку импорта в файл bridging header:
<nowiki>#</nowiki>import AppOptima.h
5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки ([[Мониторинг iOS-приложений и настройка ЕдиногоАгента#%203.%20%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BA|instrumentation wizard]]) в веб-интерфейсе АппОптима.
6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
== 2.3. Настройка ЕдиныйАгент с помощью Carthage ==
# Добавьте '''binary "'''[https://ruscomtech.ru/static/ios/carthage/astromkey.json https://ruscomtech.ru/static/ios/carthage/AppOptima.json]'''" ~> 8.237<nowiki/>''' в ваш '''Cartfile'''.
# Запустите '''carthage update --use-xcframeworks'''.
===== 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 или ему не нужен доступ к фреймворку.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
# Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
# Добавьте следующую строку импорта в файл bridging header:
<nowiki>#</nowiki>import <AppOptimaStatic/AppOptima.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 или ему не нужен доступ к библиотеке.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
# Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
# Добавьте следующую строку импорта в файл bridging header:
<nowiki>#</nowiki>import AppOptima.h
5. Добавьте ключи идентификации вашего приложения в файл Info.plist. Точные значения можно найти в мастере настройки ([[Мониторинг iOS-приложений и настройка ЕдиногоАгента#%203.%20%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BA|instrumentation wizard]]) в веб-интерфейсе АппОптима.
6. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
== 2.4. Настройка ЕдиныйАгент вручную ==
# Получите доступ к [[Мониторинг iOS-приложений и настройка ЕдиногоАгента#%203.%20%D0%94%D0%BE%D1%81%D1%82%D1%83%D0%BF%20%D0%BA|'''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:
<nowiki>#</nowiki>import <AppOptimaStatic/AppOptima.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 или ему не нужен доступ к библиотеке.
Мы предполагаем, что вы уже создали файл Objective-C bridging header для своего кода Swift в Xcode.
# Убедитесь, что вы установили файл bridging header в настройках сборки целевого приложения.
# Добавьте следующую строку импорта в файл bridging header:
<nowiki>#</nowiki>import AppOptima.h
5. Запустите сборку вашего проекта один раз, прежде чем использовать One Agent SDK или любые объявления импорта в Xcode.
= 3. Доступ к mobile instrumentation wizard =
Мастер инструментирования для мобильных устройств в веб-интерфейсе АппОптима предоставляет вам инструкции по инструментированию ваших приложений iOS. Более подробная инструкция, находится в данном документе в разделе [[Мониторинг iOS-приложений и настройка ЕдиногоАгента#%202.%20%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20OneAgent|'''Настройка ЕдиныйАгент''']].
Мастер также содержит фрагменты кода с идентификационными ключами вашего приложения, которые необходимо добавить в файл Info.plist.
# В меню АппОптима выберите '''Mobile'''.
# Выберите мобильное приложение, которое вы хотите настроить.
# Выберите '''More (…) > Edit''' в правом верхнем углу плитки с названием вашего приложения.
# В настройках приложения перейдите к '''Instrumentation wizard'''.
= 4. Ограничения =
* Авто-инструментированное приложение не может выполнять такие функции, как '''shutdown()''' или '''flushEvents()'''. Вы можете вручную вставить эти методы, а также другие пользовательские действия и события перед выполнением автоинструментации.
* Следующие элементы управления нельзя использовать для создания автоматически сгенерированных действий:
** Жесты
** Определенные '''UIBarButton''' элементы, в том числе настраиваемые '''UIBarButton''' элементы, добавленные на панель навигации storyboard (например, '''info'''), которые используют переходы для перехода к другим представлениям.

Текущая версия от 19:30, 2 января 2025

Модули платформы / Цифровой опыт / Мобильные приложения / Инструментальные приложения для iOS / Мониторинг 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 'AppOptima', '~> 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 'AppOptima/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 'AppOptima/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 'AppOptima/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:
  • AppOptima – чтобы добавить только ЕдиныйАгент.

Важно

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


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

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

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

  1. Добавьте binary "https://ruscomtech.ru/static/ios/carthage/AppOptima.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 <AppOptimaStatic/AppOptima.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 AppOptima.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 <AppOptimaStatic/AppOptima.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 AppOptima.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), которые используют переходы для перехода к другим представлениям.
Содержание