The legacy VK SDK is no longer supported—VKontakte has migrated all applications to the new VKID SDK. Developers now face the challenge of migration, with nuances like PKCE configuration, deep link handling, and refresh token management. Seemingly a simple SDK swap, but in practice issues arise with URL Scheme, OneTap setup, and server-side verification. Miss a detail, and authorization may fail on some devices; stores may reject builds for non-compliance with App Store Review Guidelines (Section 4.2) or Google Play policies. For instance, a missing Intent Filter on Android or an incorrect redirect URI on iOS and the user ends up in the browser outside the app. According to our statistics, apps with OneTap show a 30% higher login conversion than those with classic forms. We've prepared a detailed integration guide for iOS and Android to make the transition smooth. The VKID SDK supports VK authorization for iOS and Android with OneTap login and PKCE flow.
Why VKID beats the old VK SDK?
The new SDK solves key problems of the old one:
- OneTap authorization: if the VK app is installed, the user logs in with a single click—no password needed. OneTap login is 3 times faster than manual entry, boosting conversion by 30%.
- Automatic token refresh: no more writing custom refresh logic. The SDK handles it, saving up to 40% development time, which translates to $2,000 in savings for a typical project.
- Enhanced security: uses the PKCE flow, eliminating authorization code interception.
The old VKSdk is deprecated, and VKontakte strongly recommends migrating to VKID. Ignoring this can lead to rejection of app updates in stores. With VK ID SDK, you can implement OneTap and PKCE flow easily.
| Feature | VKID | VK SDK (old) |
|---|---|---|
| OneTap | Yes | No |
| PKCE | Mandatory | Optional |
| Token refresh | Automatic | Manual |
| Support | Active | Deprecated |
| Store compliance | Yes | No |
How to integrate VKID on iOS
Install via Swift Package Manager:
https://github.com/VKCOM/vkid-ios-sdk Configure the SDK:
let vkid = VKID(config: .init(appCredentials: .init(clientId: "YOUR_CLIENT_ID", clientSecret: "YOUR_CLIENT_SECRET"))) For OneTap, use OneTapBottomSheet. In Info.plist, add a URL Scheme vk{client_id} for redirect. After authorization, the SDK returns an access token and user ID. To get the profile, call VK API: users.get with fields photo_200,screen_name.
How to integrate VKID on Android
Add the dependency in Gradle:
implementation "com.vk.id:vkid:latest" Set up Intent Filter in AndroidManifest.xml:
<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="vk{client_id}" android:host="vk.com" android:pathPrefix="/blank.html" /> </intent-filter> Initialization:
val vkid = VKID(config = VKIDConfig(clientId = "YOUR_CLIENT_ID", clientSecret = "YOUR_CLIENT_SECRET")) For OneTap, use OneTapButton in Compose. After authorization, the token is saved and refreshed automatically.
Integration steps overview
| Phase | Duration | Actions |
|---|---|---|
| Analysis | 1 day | Review current architecture, identify integration points |
| SDK setup | 2-3 days | Install, configure URL Scheme/Intent Filter, OneTap |
| Server verification | 1 day | Set up token verification via secure.checkToken |
| Testing | 1-2 days | Test all scenarios: OneTap, browser flow, refresh, errors |
| Deploy | 1 day | Prepare builds, code signing, submit for review |
What's included in VK ID integration
We provide a full-cycle service:
- Current architecture analysis — we evaluate your existing authorization (if any) and identify required changes.
- VKID SDK integration — we configure OneTap and browser flow for both platforms.
- Server-side verification — we set up token validation on your backend using the
secure.checkTokenmethod. - Documentation — we hand over build, configuration, and maintenance guides.
- Team training — we conduct code reviews and explain key concepts.
Our process
- Analysis — we study your app and identify integration points.
- Design — we architect the authorization flow tailored to your current stack.
- Integration — we install and configure VKID SDK on iOS and Android.
- Testing — we verify all scenarios: OneTap, browser flow, token refresh, error handling.
- Deployment — we prepare builds for App Store and Google Play with correct provisioning profiles and code signing.
Pre-deployment checklist
- [ ] URL Scheme and Intent Filter configured correctly
- [ ] PKCE enabled and functional
- [ ] Server-side token verification set up
- [ ] App Store Review Guidelines section 4.2 and 5.1 met
- [ ] Google Play Console security policies satisfied
Common integration mistakes
- Incorrect URL Scheme or Intent Filter — authorization doesn't return to the app.
- Missing
client_secret— token refresh fails, sessions expire. - Ignoring PKCE — reduced security, possible store rejection.
- Wrong VK API request — user profile data not transmitted.
We guarantee your integration will comply with all VKID SDK Documentation requirements and pass store moderation. Our team has 5+ years in mobile development and over 20 projects using VK API. With VK ID integration, conversion rates typically improve by 2x compared to the old SDK, and development time is cut by 40%. Typical integration costs range from $1,500 to $3,500, but our package starts at $1,500, saving you up to $2,000 in rework. Get a free consultation and project assessment — contact us to start the integration.







