Подключение SDK к проекту
Для использования SDK на платформе Flutter необходимо внедрить в Ваш Flutter проект нативные SDK для iOS и Android. С этим Вам поможет данная инструкция.
iOS
Перейдите в Вашем проекте в папку ios
, откройте Runner.xcodeproj
с помощью Xcode
, перетащите файл переданный вам с договором в Frameworks, Libraries, and Embedded Content
, а также выставите Embed & Sign
.
В файле info.plist проекта Runner.xcodeproj
должны быть добавлены следующие параметры:
<key>DTXAutoStart</key>
<string>false</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sbolidexternallogin</string>
<string>sberbankidexternallogin</string>
</array>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>gate1.spaymentsplus.ru</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>ift.gate2.spaymentsplus.ru</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>cms-res.online.sberbank.ru</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Данные Bluetooth собираются и отправляются на сервер для безопасного проведения оплаты</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Данные Bluetooth собираются и отправляются на сервер для безопасного проведения оплаты</string>
Для успешной авторизации в среде банка необходимо в настройках таргета проекта Runner.xcodeproj
зарегистрировать deeplink
вашего приложения.
Добавьте Access wi-fi information
в Capabilities таргета вашего проекта Runner.xcodeproj
.
Для этого выберите ваш таргет → Signing & Capabilities → +Capability → Access wi-fi information.
Android
Перейдите в Вашем проекте в папку android
, откройте проект с помощью Android Studio
.
Для получения зависимости из maven репозитория необходимо добавить его в файл settings.gradle.
dependencyResolutionManagement {
...
repositories {
google()
mavenCentral()
...
maven {
name = "GitHubPackages"
url = uri("*URL из договора*")
credentials {
username = "*username из договора*"
password = "*password из договора*"
}
}
}
}
Далее нужно перейти в build.gradle Вашего модуля и добавить зависимости внутрь блока dependencies { ... }.
dependencies {
...
implementation '*название зависимости из договора*:x.y.z'
...
}
ВАЖНО!: Также здесь необходимо явно добавить транзитивные зависимости библиотек.
:::
// Kotlin
implementation("androidx.core:core-ktx:1.9.0")
// AppCompat
implementation("androidx.appcompat:appcompat:1.6.1")
// Material
implementation("com.google.android.material:material:1.9.0")
// ConstraintLayout
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
// SPaySdk
implementation(files("../libs/fingerprint-1.9.0.aar"))
// Bi.Zone sdk
implementation(files("../libs/spaysdk-2.0.4.aar"))
// Activity
implementation("androidx.activity:activity-ktx:1.6.1")
// SberIdSDK
implementation("io.github.sberid:SberIdSDK:2.4.3")
// Coroutines
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
// Dynatrace
implementation("com.dynatrace.agent:agent-android:8.257.1.1007")
// OkHttp
implementation("com.squareup.okhttp3:okhttp:4.10.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.10.0")
// Retrofit
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.3.0")
// Jsoup
implementation("org.jsoup:jsoup:1.13.1")
// Play services
implementation("com.google.android.gms:play-services-safetynet:18.0.1")
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
implementation("com.google.android.gms:play-services-appset:16.0.2")
implementation("com.google.android.gms:play-services-auth-api-phone:18.0.1")
// Dagger2
implementation("com.google.dagger:dagger:2.44")
annotationProcessor("com.google.dagger:dagger-compiler:2.44")
// Timber
implementation("com.jakewharton.timber:timber:5.0.1")
// Three Ten BP
implementation("com.jakewharton.threetenabp:threetenabp:1.2.1")
testImplementation("org.threeten:threetenbp:1.2.1") {
exclude("com.jakewharton.threetenabp:threetenabp:1.2.0")
}
// Coil
implementation("io.coil-kt:coil-base:2.4.0")
implementation("io.coil-kt:coil-svg:2.4.0")
// Shimmer
implementation("com.facebook.shimmer:shimmer:0.5.0")
// Firebase Database
implementation("com.google.firebase:firebase-database-ktx:20.2.0")
// Biometric
implementation("androidx.biometric:biometric:1.1.0")
// Encrypted Shared Preferences
implementation("androidx.security:security-crypto:1.1.0-alpha06")
// Lottie
implementation("com.airbnb.android:lottie:6.2.0")
}