# Установка трекингового SDK в приложение на iOS

{% tabs %}
{% tab title="Swift Package Manager" %}
Добавьте модуль через **Swift Package Manager:**

Для этого в Xcode выберите свой проект и перейдите на вкладку Package Dependencies.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-97ed9430235c945cf16c070a9c0655f3497fea5f%2F1.webp?alt=media" alt=""><figcaption></figcaption></figure>

Нажмите на "+" для добавления нового пакета и укажите URL репозитория: `https://github.com/top-100-writer/top100-tracker-ios` в нем находится Package.swift.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-d81801f3213ce9e4493bd6c3110fb7044202b098%2Fimage%20(22).png?alt=media" alt=""><figcaption></figcaption></figure>

Выберете версию пакета и настройте правило обновления. Добавьте пакет в свой проект.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-d0845cd6f8d9dcf8139fd55f8ca7990d3836c525%2Fimage%20(26).png?alt=media" alt=""><figcaption></figcaption></figure>

После добавления, пакет должен появиться в Package Dependencies, а также в левой панели.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-a92207dd13a6dc5ba83bde815e1ddbb99b986011%2Fimage%20(18).png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="CocoaPods" %}
Добавьте модуль через **CocoaPods:**

Добавьте пакет TrackerTop100SDK в `Podfile` в своем проекте

```
platform :ios, '11.0'

target 'MyApp' do
  use_frameworks!
  pod 'TrackerTop100SDK', '1.5.1'
  ...
end
```

Обновите зависимости c помощью команды `pod install`

После этого, откройте созданный файл проекта `.xcworkspace`, там должен отобразиться подключенный пакет с фреймворком

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-196d470dfcb46a808d98233e111e42711adb3fee%2Fimage%20(12).png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Carthage" %}
Добавьте модуль через **Carthage:**

Для подключения добавьте зависимость в `Cartfile`

```
binary "https://raw.githubusercontent.com/top-100-writer/top100-tracker-ios/main/TrackerTop100SDK.json" ~> 1.5.1
```

Обновите зависимости с помощью команды `carthage update --use-xcframeworks`

Откройте вкладку `General settings` вашего приложения и найдите раздел `Frameworks, Libraries, and Embedded Content`

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-9795c57931dd5a668eea03b8abb39393fbc331e8%2Fimage.png?alt=media" alt=""><figcaption></figcaption></figure>

Выберете пакет `TrackerTop100SDK.xcframework` из папки `Carthage/Build` на диске или просто перетяните его.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-609fdd8f6e0e119249303813fecee938dc60f7ef%2Fimage%20(15).png?alt=media" alt=""><figcaption></figcaption></figure>

После сборки проекта пакет в виде фреймворка должен отобразиться левой панели.

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-fcaff92c144cde7b44abcf0bcf36155097f816c4%2Fimage%20(30).png?alt=media" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Прямое подключение" %}
Если вы не используете системы управления зависимостями, то можете подключить фреймворк с пакетом напрямую в свое приложение.

Для подключения напрямую:

[Загрузите архив с пакетом](https://github.com/top-100-writer/top100-tracker-ios/releases/download/1.5.1/TrackerTop100SDK.xcframework.zip)

Откройте вкладку `General settings` вашего приложения и найдите раздел `Frameworks, Libraries, and Embedded Content`

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-15987ffcbf96f86e234600472405cdbb43043343%2Fimage%20(16).png?alt=media" alt=""><figcaption></figcaption></figure>

Выберете пакет `TrackerTop100SDK.xcframework` из папки `Carthage/Build` на диске или просто перетяните его

<figure><img src="https://148191947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MhSYAUvo0b-WJxrFQLO%2Fuploads%2Fgit-blob-8515a5a88c591a688b0bbf20787c9e12bb488096%2Fimage%20(27).png?alt=media" alt=""><figcaption></figcaption></figure>

После сборки проекта пакет в виде фреймворка должен отобразиться левой панели.
{% endtab %}
{% endtabs %}

## Базовая инициализация

{% tabs %}
{% tab title="Swift" %}
Инициализируйте библиотеку в методе `application(_:didFinishLaunchingWithOptions:)` вашего `AppDelegate`:

```swift
//  AppDelegate.swift
import TrackerTop100SDK

@main
class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        let settings = TrackerTop100Settings(projectId: "PROJECT_ID")!
            // ... установка параметров sdk
            .build()
        TrackerTop100.activate(settings: settings)
    }
}
```

{% endtab %}

{% tab title="Objective-C" %}
Инициализируйте библиотеку в методе `- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions` вашего `AppDelegate` :

```objectivec
// AppDelegate.m
@import TrackerTop100SDK;

@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    TrackerTop100Settings *settings = [[TrackerTop100Settings alloc] initWithProjectId: @"PROJECT_ID"];
    // ... установка параметров sdk
    [TrackerTop100 activateWithSettings: [settings build]];
}
```

{% endtab %}
{% endtabs %}

**PROJECT\_ID** (обязательный) — идентификатор проекта (строка с цифрами), аналогичный JS-счётчику. В случае некорректного значения, `TrackerTop100Settings` не будет создан.
