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

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

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FzuzyfZ2Bzl6eLaxEuBZO%2F1.webp?alt=media&#x26;token=81e3f5c3-f205-4687-8fd7-72bfa33a4439" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FanfSBiZbx9kVRiLD22qL%2Fimage.png?alt=media&#x26;token=e830ff2b-01ab-4036-a6c9-13d5119f07c6" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FtcPoNfH9IwEjfJFDZFEa%2Fimage.png?alt=media&#x26;token=6a09e408-223b-4155-b82c-84f93e398e11" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FbW9uYzSneIpr7FWJGq9J%2Fimage.png?alt=media&#x26;token=746c7fed-4a81-4050-8700-1de22e46906d" 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://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FmfyqTD2Oqh02Hmz44CgI%2Fimage.png?alt=media&#x26;token=baeca7b5-434a-41bd-9b0a-f9d3ee3005ea" 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`&#x20;

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2F1y8t75TKXAnsniOmfHtB%2Fimage.png?alt=media&#x26;token=2030fe93-bb59-47ec-baba-f13ca1313fe8" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FPeqyaKBbg3HkxncBAlxO%2Fimage.png?alt=media&#x26;token=354a0264-eff3-4ec2-8b1d-e8a97fe4e5cc" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2FeqgJ3alKpQtR6suFcyVM%2Fimage.png?alt=media&#x26;token=fef215da-5cbc-4da3-992f-4e41c6f53494" 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`&#x20;

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2Ff5eoDOEW7xyYP8rB3nSo%2Fimage.png?alt=media&#x26;token=3c17dc4c-caf3-4825-a70a-b2b9f26a9f65" alt=""><figcaption></figcaption></figure>

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

<figure><img src="https://7631003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPxw9DqlRH3nHzNm5NYPG%2Fuploads%2Fh60dGGSKoJm5iBu0AtwB%2Fimage.png?alt=media&#x26;token=8735e79f-e2ac-4ca7-862a-247b8aacc6ee" 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` не будет создан.
