Ugrás a tartalomhoz

Útmutató · iOS (Swift)

Adj affiliate- vagy ajánlói programot az iOS-alkalmazásodhoz.

Az InfluTo Swift-csomagja SwiftUI- és UIKit-alkalmazásokban is működik. Megmondja, melyik alkotó ajánlott egy telepítést, fogadja a beírt ajánlókódokat, és ellenőrizteti az egyes vásárlásokat: a RevenueCat-en keresztül, vagy közvetlenül a StoreKit 2-ből és az App Store Server API-ból.

Frissítve: 2026. november 1.

Röviden

Add hozzá a github.com/influto/influto-ios Swift csomagot az app targetedhez, hívd meg egyszer az InfluTo.initialize-t induláskor egy Taskból, majd jöhet a checkAttribution és az identifyUser. RevenueCat nélkül a StoreKit 2 rögzítés be van építve: az SDK figyeli a Transaction.updates-t, és pótolja az aktuális jogosultságokat. Emellett a product.purchase() sikeres lefutása után rögtön hívd meg a reportPurchase(verification:)-t. RevenueCat esetén adj át egy revenueCatAttributeSetter-t, hogy az SDK meg tudja címkézni az előfizetőt. iOS 16+, harmadik féltől származó függőségek nélkül, IDFA és ATT-kérés nélkül. Számíts egy délutánra.

Mit kapsz

A csomag csak a Foundationtől, a StoreKit 2-től és a CryptoKittől függ, Swift Package Managerrel települ (CocoaPods pod nincs), és MIT-licencű. iOS 16-ot és Swift 5.9-et (Xcode 15) vagy újabbat igényel, macOS 13-ra, tvOS 16-ra és watchOS 9-re is lefordul.

  • Attribúció követés nélkül. A beírt kód pontos egyezés. Egyébként a linkkattintás-párosítás 72 órán belül összeköti a telepítést az alkotó linkjére tett friss kattintással. Nincs hirdetési azonosító és nincsenek eszközjellemzők, így App Tracking Transparency-kérés sem kell.

  • SwiftUI kódmező. Az InfluToReferralCodeInput gépelés közben ellenőrzi a kódot, és koppintásra alkalmazza. UIKitben tedd egy UIHostingControllerbe.

  • Beépített StoreKit 2 rögzítés. Store-direct alkalmazásoknál az SDK maga jelenti a vásárlásokat, az InfluTo pedig minden aláírt tranzakciót ellenőriz az Apple-nél.

1. lépés: add hozzá a Swift csomagot

Xcode-ban válaszd a File → Add Package Dependencies menüpontot, illeszd be a tároló URL-jét, és add hozzá az InfluTo könyvtárat az app targetedhez. Vagy add meg a Package.swift fájlban:

// 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")

2. lépés: inicializálás induláskor

Az SDK minden metódusa async. Az initialize-t egyszer hívd meg induláskor egy Taskból, és várd meg. Hiba esetén (rossz kulcs, nincs hálózat) kivételt dob: kapd el, naplózd, és menj tovább; a következő induláskor újra próbálkozik. UIKitben a Taskot az application(_:didFinishLaunchingWithOptions:) metódusból indítsd.

A checkAttribution soha nem dob kivételt. Hiba esetén, vagy ha az initialize nem sikerült, attributed == false értéket ad vissza, és nem tárol semmit. A pozitív választ az eszköz eltárolja, így a későbbi hívások kérés nélkül ezt adják vissza.

Az API-kulcs (it_…, a Setup & SDK oldalon) fejlesztéshez és éles használathoz is jó. Ne kerüljön be a verziókezelt forráskódba. Tedd például egy nem commitolt .xcconfig fájlba, és az Info.plisten át olvasd be. Tipikus SwiftUI-indítás egy RevenueCat-es appban:

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)
}

3. lépés: kösd be a vásárlásokat

Az InfluTo csak az áruházban ellenőrzött vásárlások után fizet jutalékot. iOS-en válassz egy utat:

  • RevenueCat: adj át egy revenueCatAttributeSetter-t, ahogy fent a MyApp.swiftben; enélkül iOS-en semmi nem állítja be az attribútumot. Az SDK egyszer hívja meg, amikor megtalálja az ajánlást, ezért a RevenueCat-et a checkAttribution előtt konfiguráld. Utána kösd be a webhookot a Setup & SDK oldalon.

  • Store-direct (StoreKit 2): ha az app a Beállítások → Ellenőrzés menüben store-direct módra van állítva, az initialize elkezdi figyelni a Transaction.updates-t, és pótolja az aktuális jogosultságokat és a le nem zárt tranzakciókat. Minden tranzakciót egyszer jelent, az eredeti tranzakcióazonosító alapján. Az SDK soha nem hívja meg a finish()-t; a tranzakciókat továbbra is az appod zárja le.

Egy StoreKit-részlet fontos: az appodon belüli vásárlások eredménye a product.purchase() hívójához kerül vissza, nem a háttérben figyelő listenerhez. Ezért sikeres vásárlás után rögtön jelents, az alábbi módon. A jelentések duplikációmentesek, így az itt és az automatikus rögzítéssel is jelentett vásárlás csak egyszer számít.

A tranzakciók felhasználói azonosítóhoz kötéséhez add át a StoreKit fióktokenjét: product.purchase(options: [.appAccountToken(InfluTo.appAccountToken(forUserID: userID))]). Egy adott felhasználói azonosítóhoz mindig ugyanazt az UUID-t add. A reportPurchase 503 esetén InfluToError.retryable hibát dob (próbáld később), 400 esetén InfluToError.notConfigured hibát (az iOS még nem 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)
}

4. lépés: add meg az App Store Server API-kulcsodat

A store-direct módhoz olvasási hozzáférés kell az App Store Server API-hoz. Az InfluTo csak olvas; az App Store Connect fiókodban soha nem módosít semmit.

  1. 1

    Hozd létre a kulcsot. Az App Store Connectben nyisd meg a Users and Access → Integrations → In-App Purchase részt, hozz létre egy kulcsot, és töltsd le a .p8 fájlt. Az Apple csak egyszer engedi letölteni. Jegyezd fel az Issuer ID-t és a Key ID-t.

  2. 2

    Töltsd fel. Az InfluToban nyisd meg a Beállítások → Ellenőrzés oldalt, húzd be a .p8 fájlt (a Key ID az Apple alapértelmezett fájlnevéből kiolvasható), majd add meg az Issuer ID-t, a Key ID-t és az app numerikus App Store ID-ját.

  3. 3

    Válaszd ki a környezetet, aztán kapcsold át. Sandbox-ot válassz, amíg TestFlighttal vagy sandbox-tesztelőkkel tesztelsz, Production-t a kiadás előtt. Ha a hitelesítőadat-ellenőrzés zöld, állítsd az iOS-t Apple — direct értékre. Addig a jelentések 400-as hibát kapnak, így nyugodtan kiadhatod előbb az SDK-t.

Ettől kezdve az InfluTo óránként ellenőrzi az Apple-nél a hozzád rendelt előfizetéseket: megújítást, lemondást és visszatérítést keres. Visszatérítésnél visszavonja a jutalékot. Saját backend nem kell hozzá.

5. lépés: tesztelés TestFlighttal vagy sandbox-tesztelővel

A TestFlight- és sandbox-vásárlások soha nem mozgatnak pénzt, és nem érintik a statisztikáidat:

  1. 1

    Vásárlás szimulálása. A Setup & SDK oldalon a Vásárlás szimulálása egy sandbox tesztvásárlást küld át az InfluTo éles folyamatán. Csak az InfluTo oldalát ellenőrzi, a te hitelesítő adataidat soha.

  2. 2

    Telepítés ajánlói linken át. Csatlakozz a kampányodhoz egy második alkotói fiókkal, nyisd meg a linkjét egy tesztelőeszközön, telepítsd a TestFlight-buildet, és indítsd el. A legmegbízhatóbb teszt a kód beírása.

  3. 3

    Vásárlás sandbox-fiókkal. Ha az Apple-környezet Sandbox-ra van állítva, vásárolj TestFlight- vagy sandbox-tesztelővel. A Sandbox-ra állított Integrációs napló a kódodhoz rendelt vásárlást mutatja.

A kiadás előtt állítsd vissza a környezetet Production-re: az InfluTo pontosan azt a környezetet ellenőrzi, amelyet kiválasztasz. A clearAttribution() visszaállítja az eszközt egy újabb próbához.

iOS-megjegyzések

A review és a store-direct szempontjából fontos részletek:

  • Csak StoreKit 2. A store-direct az aláírt tranzakciót (JWS) igényli; az aláíratlan JSON-reprezentációt soha ne küldd el. Az SDK akkor is elküldi a JWS-t, ha az eszközön végzett ellenőrzés sikertelen, az InfluTo pedig a szerveren ellenőrzi.

  • Adatvédelmi manifest mellékelve. A csomag tartalmazza a PrivacyInfo.xcprivacy fájlt: nincs követés, nincsenek követési domainek, a gyűjtött adattípusok pedig nincsenek személyazonossághoz kötve. Az adatvédelmi dokumentáció megfelelteti ezt az App Privacy válaszaidnak.

  • Helyi állapot. Az SDK az állapotát a com.influto.sdk UserDefaults suite-ban tárolja. Az appfrissítéseket túléli; az app törlésével törlődik.

Vagy bízd a kódoló ágensre

Kösd össze az InfluTo MCP-szerverét a Claude Code-dal, a Codexszel vagy a Cursorral, és kérd el tőle az integrációt: az ágens megírja az indítási és a vásárlási kódot, ad egy linket, ahol magad töltheted fel a .p8 fájlt, lefuttatja a hitelesítőadat-ellenőrzést, és megerősít egy hozzád rendelt sandbox-vásárlást.

iOS affiliate SDK, válaszokkal.

Van affiliate SDK Swiftben írt iOS-appokhoz?

Igen. Az InfluTo Swift csomagja (github.com/influto/influto-ios, MIT) ajánlott telepítések felismerését, ajánlókódokat és vásárlási attribúciót ad a SwiftUI- és UIKit-appokhoz. iOS 16-ot és Swift 5.9-et vagy újabbat igényel, és nincs harmadik féltől származó függősége.

Követhetem az influencerek ajánlásait iOS-en ATT-kérés nélkül?

Igen. Az InfluTo nem használ IDFA-t, és soha nem párosít eszközjellemzők alapján. A beírt kódok pontos egyezést adnak, a linkkattintás-párosítás pedig 72 órás tartalék megoldás, amely az appodra korlátozódik. A csomag adatvédelmi manifestje nem deklarál követést.

RevenueCat nélkül is működik?

Igen. A StoreKit 2 rögzítés be van építve, az InfluTo pedig minden aláírt tranzakciót ellenőriz az App Store Server API-val, az általad feltöltött, csak olvasásra jogosító In-App Purchase kulccsal. Saját szerver nem kell hozzá.

Van CocoaPods pod?

Nincs. Az SDK csak Swift Package Managerrel települ, és szerepel a Swift Package Indexen.

Működnek a TestFlight-vásárlások?

Igen, ha az alkalmazás Apple-környezete Sandboxra van állítva a Beállítások → Érvényesítés menüben. A TestFlight- és sandbox-vásárlások megjelennek az Integrációs naplóban, de soha nem mozgatnak pénzt, és nem módosítják a statisztikáidat.

Mennyibe kerül?

Havi 0 $. Minden ellenőrzött vásárlás után az általad megadott jutalékot fizeted, plusz ugyanennek a bevételnek a 10%-át (nagyobb forgalomnál 7%, 5% vagy 3%). Az előre feltöltött egyenleg 50 $-tól indul, és visszatéríthető. Az InfluTo havonta fizet az alkotóknak Stripe Connecten keresztül 33 országban, amint elérték a 20 $-t.

Add ki az ajánlókódokat a következő TestFlight-buildeddel.

Egy Swift-csomag, egy ellenőrzési út, visszatéríthető letét. Havi 0 $; 10% csak az alkotók által hozott bevételből.

Kezdd el ingyen