> For the complete documentation index, see [llms.txt](https://doc.ozforensics.com/oz-knowledge-ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/vypolnenie-proverok.md).

# Выполнение проверок

**Если наш SDK используется только для съемки, пропустите этот шаг.**

## OzCapsula (SDK версии 8.22 и новее)

Отправьте зашифрованный контейнер на ваш собственный бэкенд в виде необработанных байтов (`application/octet-stream`). Ваш бэкенд передает его в Oz API и возвращает ответ с результатом анализа.

{% hint style="warning" %}
**Не** запускайте анализ напрямую из мобильного SDK. При интеграции со встроенным SDK вызов анализа должен проходить через ваш собственный бэкенд.
{% endhint %}

{% hint style="danger" %}
Код ниже приведен для иллюстрации — `YourBackend.uploadOzContainer` **не** является частью Oz SDK. Вы реализуете этот метод самостоятельно в клиенте вашего бэкенда; Oz SDK не предоставляет хелпер для загрузки для этого пути интеграции.
{% endhint %}

```swift
func handleContainer(_ container: DataContainer) {
    YourBackend.uploadOzContainer(
        container,
        contentType: "application/octet-stream"
    ) { result in
        DispatchQueue.main.async {
            self.handleAnalysisResult(result)
        }
    }
}
```

Далее ваш бэкенд должен передать контейнер в Oz API, как описано [здесь](/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/rabota-s-konteinerom-dannykh-ozcapsula.md).

<details>

<summary>Прежний способ: метод <code>run</code> (прямое взаимодействие SDK с API). Внимание: использование данного метода менее безопасно, чем использование вашего бэкенда в качестве посредника, как показано выше</summary>

В результате съемки видео вы получили контейнер данных со всей необходимой информацией. Отправьте его на анализ с помощью методов `addContainer(container)` и `run`.

{% code title="" %}

```swift
func onResult(container: DataContainer) {
  let analysisRequest = AnalysisRequestBuilder()
  analysisRequest.addContainer(container)
  analysisRequest.run(
            statusHandler: { status in
            },
            errorHandler: { error in
            }
        ) { result in
        }
}
```

{% endcode %}

</details>

## SDK версии до 8.21 включительно

Чтобы выполнить проверку, нужно загрузить в систему медиафайлы, а затем запустить для них анализы.&#x20;

{% hint style="info" %}
Как интерпретировать результаты анализов, описано здесь: [Типы анализов](/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/api/oz-api/types-of-analyzes.md).
{% endhint %}

Пример:

{% code lineNumbers="true" %}

```swift
let analysisRequest = AnalysisRequestBuilder()

// создайте анализы
let analysis = Analysis.init(
    media: mediaToAnalyze, // mediaToAnalyze – массив объектов OzMedia 
    type: .quality, // типы анализов перечислены в методах iOS SDK
    mode: .serverBased // .onDevice для анализа на устройстве
)
analysisRequest.addAnalysis(analysis)

// initiate the analyses
analysisRequest.run(
    statusHandler: { state in }, // добавьте обработчик шагов сценария
    errorHandler: { _ in } 
) { result in
          // ваш обработчик результата
  }
```

{% endcode %}

Для удаления медиафайлов после выполнения всех проверок используйте метод `clearTempDirectory`.

### Добавление метаданных

Для добавления метаданных используйте метод `AnalysisRequest.addFolderMeta`.

```swift
let analysis = Analysis.init(media: mediaToAnalyze, type: .quality, mode: .serverBased)
var folderMeta: [String: Any] = ["key1": "value1"]
analysisRequest.addFolderMeta(folderMeta)
...
```

### Извлечение лучшего кадра

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

```swift
let analysis = Analysis.init(media: mediaToAnalyze, type: .quality, mode: .serverBased, params: [“extract_best_shot” : true])
```

### Использование медиафайла, снятого не нашим SDK

Чтобы использовать медиафайлы, снятые не Oz iOS SDK, укажите путь к ним в структуре [OzMedia](https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/pages/58ocyasEYOnj9V51ifLR#h.hizmhq9c5cq9) (поле`bestShotURL`):

```swift
let referenceMedia = OZMedia.init(movement: .selfie,
                  mediaType: .movement,
                  metaData: ["meta":"data"],
                  videoURL: nil,
                  bestShotURL: imageUrl,
                  preferredMediaURL: nil,
                  timestamp: Date())
```

### Добавление медиафайлов в определенную папку

Для добавления медиафайлов в определенную папку используйте метод `addFolderId:`

```swift
let analysis = Analysis.init(media: mediaToAnalyze, type: .quality, mode: .serverBased)
analysisRequest.addFolderId(IdRequired)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://doc.ozforensics.com/oz-knowledge-ru/rukovodstva/rukovodstvo-razrabotchika/sdk/oz-mobile-sdk/ios/vypolnenie-proverok.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
