Přejít na obsah

Průvodce · iOS (Swift)

Přidejte affiliate nebo referral program do své iOS aplikace.

Swift balíček InfluTo funguje v aplikacích na SwiftUI i UIKit. Řekne vám, který tvůrce instalaci doporučil, přijímá ručně zadané referral kódy a zajistí ověření každého nákupu: přes RevenueCat, nebo přímo ze StoreKit 2 a App Store Server API.

Aktualizováno 1. listopadu 2026

Ve zkratce

Přidejte Swift balíček github.com/influto/influto-ios do cíle (target) své aplikace, při spuštění jednou zavolejte InfluTo.initialize z Tasku a potom checkAttribution a identifyUser. Bez RevenueCat je zachytávání přes StoreKit 2 přímo v SDK: to sleduje Transaction.updates a zpětně doplní aktuální nároky. Navíc hned po úspěšném product.purchase() zavoláte reportPurchase(verification:). S RevenueCat předejte revenueCatAttributeSetter, aby SDK mohlo předplatitele označit. iOS 16+, žádné závislosti třetích stran, žádné IDFA ani výzva ATT. Počítejte s jedním odpolednem.

Co získáte

Balíček závisí jen na Foundation, StoreKit 2 a CryptoKit, distribuuje se přes Swift Package Manager (CocoaPods pod neexistuje) a má licenci MIT. Vyžaduje iOS 16 a Swift 5.9 (Xcode 15) nebo novější. Sestaví se také pro macOS 13, tvOS 16 a watchOS 9.

  • Připsání bez sledování. Zadaný kód se shoduje přesně. Jinak SDK spáruje instalaci s nedávným klepnutím na odkaz tvůrce, a to do 72 hodin. Žádný reklamní identifikátor, žádné vlastnosti zařízení, takže se nezobrazí výzva App Tracking Transparency.

  • Pole pro kód ve SwiftUI. InfluToReferralCodeInput ověřuje kód během psaní a po klepnutí ho použije. V UIKit ho vložte do UIHostingController.

  • Zachytávání přes StoreKit 2 už v balíčku. U aplikací napojených přímo na obchod hlásí nákupy samo SDK a InfluTo každou podepsanou transakci ověřuje u Applu.

Krok 1: přidejte Swift balíček

V Xcode zvolte File → Add Package Dependencies, vložte URL repozitáře a přidejte knihovnu InfluTo do cíle své aplikace. Nebo ji uveďte v Package.swift:

// Xcode → File → Add Package Dependencies →
//   https://github.com/influto/influto-ios   (from 1.1.1)
// Or in Package.swift:
.package(url: "https://github.com/influto/influto-ios.git", from: "1.1.1")

Krok 2: inicializace při spuštění

Každá metoda SDK je asynchronní. Zavolejte initialize jednou při spuštění z Tasku a počkejte na výsledek. Při selhání (špatný klíč, chybí síť) vyhodí chybu: zachyťte ji, zalogujte a pokračujte. Při dalším spuštění se to zkusí znovu. V UIKit spusťte Task z application(_:didFinishLaunchingWithOptions:).

checkAttribution nikdy nevyhazuje chybu. Při chybě nebo když initialize neproběhlo úspěšně, vrátí attributed == false a nic neuloží. Kladná odpověď se uloží do zařízení, takže další volání ji vrátí bez požadavku na server.

API klíč (it_…, najdete ho v Setup & SDK) platí pro vývoj i produkci. Nedávejte ho do verzovaných zdrojáků, třeba ho uložte do souboru .xcconfig, který se necommituje, a načtěte přes Info.plist. Typický start ve SwiftUI u aplikace s RevenueCat:

import SwiftUI
import InfluTo
import RevenueCat // only if you use RevenueCat

@main
struct MyApp: App {
    init() {
        Purchases.configure(withAPIKey: "appl_…") // RevenueCat apps: configure it first
        Task { await startInfluTo() }
    }
    var body: some Scene { WindowGroup { ContentView() } }
}

func startInfluTo() async {
    var config = InfluToConfig(
        apiKey: Bundle.main.object(forInfoDictionaryKey: "INFLUTO_API_KEY") as? String ?? "",
        appVersion: Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String
    )
    config.revenueCatAttributeSetter = { attrs in
        Purchases.shared.attribution.setAttributes(attrs)
    }
    do {
        try await InfluTo.initialize(config)
    } catch {
        print("InfluTo initialize failed: \(error)") // retried on the next launch
        return
    }
    let attribution = await InfluTo.checkAttribution()
    await InfluTo.identifyUser(Purchases.shared.appUserID)
}

Krok 3: propojte nákupy

InfluTo vyplácí provizi jen za nákupy ověřené obchodem. Pro iOS zvolte jednu z cest:

  • RevenueCat: předejte revenueCatAttributeSetter, jako v MyApp.swift výše. Bez něj atribut na iOS nenastaví nic. SDK ho zavolá jednou, když najde doporučení, proto nastavte RevenueCat před checkAttribution. Pak propojte webhook v Setup & SDK.

  • Přímo přes obchod (StoreKit 2): když je aplikace v Settings → Validation nastavená na store-direct, initialize začne sledovat Transaction.updates a zpětně doplní aktuální nároky a nedokončené transakce. Každá transakce se hlásí jednou, podle původního ID transakce. SDK nikdy nevolá finish(); transakce dál dokončuje vaše aplikace.

Záleží na jednom detailu StoreKitu: nákupy provedené uvnitř vaší aplikace se vracejí volajícímu product.purchase(), ne listeneru na pozadí. Proto nákup nahlaste hned po úspěšném dokončení, jak ukazuje příklad níže. Hlášení se deduplikují, takže nákup nahlášený tady i automatickým zachycením se počítá jednou.

Chcete-li transakce spojit s ID uživatele, předejte account token StoreKitu: product.purchase(options: [.appAccountToken(InfluTo.appAccountToken(forUserID: userID))]). Pro dané ID uživatele je to pokaždé stejné UUID. reportPurchase vyhodí InfluToError.retryable při odpovědi 503 (zkuste později) a InfluToError.notConfigured při 400 (iOS ještě není nastavené jako store-direct).

// Store-direct only (no RevenueCat). Report right after a purchase — StoreKit
// doesn't send purchases made in your app to the background listener, and
// reports are de-duplicated, so this is safe alongside auto-capture:
if case .success(let verification) = try await product.purchase() {
  let r = try await InfluTo.reportPurchase(verification: verification)
}

Krok 4: přidejte klíč App Store Server API

Režim store-direct potřebuje čtecí přístup k App Store Server API. InfluTo jen čte, ve vašem účtu App Store Connect nic nemění.

  1. 1

    Vytvořte klíč. V App Store Connect otevřete Users and Access → Integrations → In-App Purchase, vytvořte klíč a stáhněte soubor .p8. Apple ho dovolí stáhnout jen jednou. Poznamenejte si Issuer ID a Key ID.

  2. 2

    Nahrajte ho. V InfluTo otevřete Settings → Validation, přetáhněte soubor .p8 (Key ID se načte z výchozího názvu souboru od Applu) a zadejte Issuer ID, Key ID a číselné App Store ID aplikace.

  3. 3

    Vyberte prostředí a pak přepněte. Při testování přes TestFlight nebo se sandbox testery zvolte Sandbox, před vydáním Production. Jakmile je kontrola přihlašovacích údajů zelená, nastavte iOS na Apple — direct. Do té doby hlášení dostávají odpověď 400, takže SDK můžete bez obav vydat dřív.

Od té chvíle InfluTo každou hodinu kontroluje u Applu připsaná předplatná kvůli obnovením, zrušením a refundacím a při refundaci provizi stornuje. Vlastní backend nepotřebujete.

Krok 5: test přes TestFlight nebo sandbox testera

Nákupy v TestFlightu a sandboxu nepřesouvají peníze ani nemění vaše statistiky:

  1. 1

    Nasimulujte nákup. Tlačítko Simulate a purchase v Setup & SDK pošle testovací sandbox nákup skutečným řetězcem zpracování InfluTo. Ověří jen stranu InfluTo, vaše přihlašovací údaje nikdy.

  2. 2

    Nainstalujte přes odkaz doporučení. Zapojte se do své kampaně druhým účtem tvůrce, otevřete jeho odkaz na testovacím zařízení, nainstalujte build z TestFlightu a spusťte ho. Nejspolehlivější test je zadat kód ručně.

  3. 3

    Kupte se sandbox účtem. S prostředím Apple nastaveným na Sandbox nakupujte jako tester z TestFlightu nebo sandboxu. Integration log přepnutý na Sandbox ukáže nákup připsaný vašemu kódu.

Před vydáním přepněte prostředí zpět na Production: InfluTo ověřuje přesně proti prostředí, které zvolíte. clearAttribution() vynuluje zařízení pro další test.

Poznámky k iOS

Detaily, na kterých záleží při review i u store-direct:

  • Pouze StoreKit 2. Store-direct potřebuje podepsanou transakci (JWS). Nikdy neposílejte nepodepsanou JSON reprezentaci. SDK pošle JWS i když selže ověření na zařízení a InfluTo ho ověří na serveru.

  • Privacy manifest je součástí. Balíček obsahuje PrivacyInfo.xcprivacy: žádné sledování, žádné domény pro sledování a jen sbírané typy dat, nepropojené s identitou. Dokumentace soukromí je mapuje na vaše odpovědi v App Privacy.

  • Místní stav. SDK drží svůj stav v sadě UserDefaults com.influto.sdk. Přežije aktualizace aplikace, smazáním aplikace zmizí.

Nebo to nechte udělat kódovacího agenta

Připojte MCP server InfluTo ke Claude Code, Codexu nebo Cursoru a požádejte o integraci. Agent napíše kód pro start i nákupy, dá vám odkaz, přes který .p8 nahrajete sami, spustí kontrolu přihlašovacích údajů a potvrdí připsaný sandbox nákup.

Affiliate SDK pro iOS: odpovědi.

Existuje affiliate SDK pro iOS aplikace psané ve Swiftu?

Ano. Swift balíček InfluTo (github.com/influto/influto-ios, MIT) přidává do aplikací ve SwiftUI i UIKit rozpoznání instalací z doporučení, referral kódy a připisování nákupů. Vyžaduje iOS 16 a Swift 5.9 nebo novější a nemá žádné závislosti třetích stran.

Mohu na iOS sledovat doporučení od influencerů bez výzvy ATT?

Ano. InfluTo nepoužívá IDFA a nikdy nepáruje podle vlastností zařízení. Zadané kódy se shodují přesně a párování podle kliknutí na odkaz je záložní možnost na 72 hodin, omezená na vaši aplikaci. Privacy manifest balíčku deklaruje, že nesleduje.

Funguje to i bez RevenueCat?

Ano. Zachytávání přes StoreKit 2 je součástí SDK a InfluTo každou podepsanou transakci ověřuje přes App Store Server API pomocí klíče In-App Purchase jen pro čtení, který nahrajete. Vlastní server nepotřebujete.

Existuje CocoaPods pod?

Ne. SDK se distribuuje pouze přes Swift Package Manager a je uvedené ve Swift Package Index.

Fungují nákupy z TestFlightu?

Ano, pokud je prostředí Apple u aplikace v Nastavení → Ověřování přepnuté na Sandbox. Nákupy z TestFlightu a sandboxu se zobrazí v logu integrace, ale nikdy nepřesunou peníze ani nezmění vaše statistiky.

Kolik to stojí?

0 $ měsíčně. Za každý ověřený nákup platíte provizi, kterou jste nastavili, plus 10 % ze stejných tržeb (při vyšším objemu 7 %, 5 % nebo 3 %). Předplacená peněženka začíná na 50 $ a dá se vrátit. InfluTo vyplácí tvůrce měsíčně přes Stripe Connect ve 33 zemích, jakmile vydělají 20 $.

Nasaďte referral kódy už v příštím buildu v TestFlightu.

Jeden balíček Swift, jedna cesta ověřování, vratná záloha. 0 $ měsíčně; 10 % jen z tržeb, které přivedou tvůrci.

Začít zdarma