> For the complete documentation index, see [llms.txt](https://knowledgebase.offer18.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://knowledgebase.offer18.com/pt/rede/sdk/sdk-ios.md).

# SDK iOS

Para implementar o método de Importação Manual Direta para o SDK iOS da Offer18, siga as etapas descritas abaixo:

## Etapas de integração:

1. Baixar e preparar: descompacte o arquivo xcframework.zip para localizar a pasta Offer18SDK.xcframework.

```
Link para download:
https://web-resources.offer18.net/sdk/ios/build-file/Offer18SDK.xcframework.zip
```

2. Acessar o Xcode: abra o projeto do aplicativo no Xcode e selecione o Project Target apropriado.
3. Importar framework: navegue até a aba General e role até a seção Frameworks, Libraries, and Embedded Content.
4. Adicionar arquivos: arraste e solte a pasta Offer18SDK.xcframework diretamente para esta seção.
5. Configurar incorporação (obrigatório): você deve garantir que a opção "Embed" ao lado do framework esteja definida como Embed & Sign. Observação: não selecionar "Embed & Sign" fará com que o aplicativo trave ao iniciar.

```javascript
let payload: [String: String] = [
    "offerID":123,
    "event": "register",
    "tid": "tid-1234567890",
    "affiliateID": "123",
    "adv_sub1": "advSub1",
    "adv_sub2": "advSub2",
    "adv_sub3": "advSub3",
    "adv_sub4": "advSub4",
    "adv_sub5": "advSub5",
    "adv_sub7": "advSub7",
    "coupon": "coupon_0124",
    "sale": "", //sale amount
    "payout": "", //payout amount
    "p_sub_aff_id": "pSubAffId",
    "p_country": "IN",
    "p_timestamp": "17905634563",
    "p_postbackid": "23dds", //unique postback ID
    "p_package": "package", //package ID
    "status": "1"
]

do {
    Offer18.setDebugLoggingEnabled(true) // debug trace

    try Offer18.configure(domain: domain, accountID: accountID)

    try Offer18.trackConversion(data: payload, completion: { result in
        switch result {
        case .success(let response):
            print(response.responseBody)
            self.trackResponse = response.responseBody
            self.statusMessage = response.message
        case .failure(let error):
            self.trackResponse = error.localizedDescription
            self.statusMessage = "Tracking failed."
            print(error.localizedDescription)
        }
    })
    statusMessage = "SDK configured successfully."
} catch {
    statusMessage = "Initialization failed: \(error)"
    print(error)
}
```
