Ú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
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
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
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
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
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
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