diff --git a/Gemfile b/Gemfile
index 911f61d3c2..0057dd43c0 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,8 +1,8 @@
source "https://rubygems.org"
ruby "3.2.1"
-gem "fastlane", "2.220.0"
-gem "cocoapods", "1.16.0"
+gem "fastlane", "2.225.0"
+gem "cocoapods", "1.16.1"
gem "generamba", git: "https://github.com/ivan-magda/Generamba.git", branch: "develop"
eval_gemfile("fastlane/Pluginfile")
\ No newline at end of file
diff --git a/Gemfile.lock b/Gemfile.lock
index 582254dc0d..4092fe1238 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -56,10 +56,10 @@ GEM
base64 (0.2.0)
bigdecimal (3.1.8)
claide (1.1.0)
- cocoapods (1.16.0)
+ cocoapods (1.16.1)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
- cocoapods-core (= 1.16.0)
+ cocoapods-core (= 1.16.1)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -74,7 +74,7 @@ GEM
nap (~> 1.0)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.26.0, < 2.0)
- cocoapods-core (1.16.0)
+ cocoapods-core (1.16.1)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
@@ -139,7 +139,7 @@ GEM
faraday_middleware (1.2.1)
faraday (~> 1.0)
fastimage (2.3.1)
- fastlane (2.220.0)
+ fastlane (2.225.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@@ -155,6 +155,7 @@ GEM
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
+ fastlane-sirp (>= 1.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
@@ -183,7 +184,10 @@ GEM
fastlane-plugin-firebase_app_distribution (0.9.1)
google-apis-firebaseappdistribution_v1 (~> 0.3.0)
google-apis-firebaseappdistribution_v1alpha (~> 0.2.0)
+ fastlane-sirp (1.0.0)
+ sysrandom (~> 1.0)
ffi (1.17.0-arm64-darwin)
+ ffi (1.17.0-x86_64-linux-gnu)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
@@ -194,10 +198,9 @@ GEM
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
- googleauth (~> 1.9)
- httpclient (>= 2.8.3, < 3.a)
+ googleauth (>= 0.16.2, < 2.a)
+ httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
- mutex_m
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
@@ -223,7 +226,7 @@ GEM
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
- googleauth (~> 1.9)
+ googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
@@ -280,6 +283,7 @@ GEM
simctl (1.6.10)
CFPropertyList
naturally
+ sysrandom (1.0.5)
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@@ -310,10 +314,11 @@ GEM
PLATFORMS
arm64-darwin-22
+ x86_64-linux
DEPENDENCIES
- cocoapods (= 1.16.0)
- fastlane (= 2.220.0)
+ cocoapods (= 1.16.1)
+ fastlane (= 2.225.0)
fastlane-plugin-firebase_app_distribution
generamba!
@@ -321,4 +326,4 @@ RUBY VERSION
ruby 3.2.1p31
BUNDLED WITH
- 2.4.10
+ 2.5.22
diff --git a/Podfile b/Podfile
index 75e6a5dc94..9bbc833ca1 100644
--- a/Podfile
+++ b/Podfile
@@ -15,14 +15,14 @@ project "Stepic",
def shared_pods
pod "StepikModel", path: "./StepikModel"
- pod "Alamofire", "5.4.4"
+ pod "Alamofire", "5.10.1"
pod "Atributika", "4.10.1"
- pod "SwiftyJSON", "5.0.0"
- pod "SDWebImage", "5.12.1"
- pod "SVGKit", :git => "https://github.com/SVGKit/SVGKit.git", :branch => "2.x"
- pod "DeviceKit", "4.5.2"
- pod "PromiseKit", :git => "https://github.com/mxcl/PromiseKit.git", :tag => "6.16.2"
- pod "SwiftLint", "0.45.1"
+ pod "SwiftyJSON", "5.0.2"
+ pod "SDWebImage", "5.19.7"
+ pod "SVGKit", :git => "https://github.com/SVGKit/SVGKit.git", :branch => "3.x"
+ pod "DeviceKit", "5.5.0"
+ pod "PromiseKit", "8.0.0"
+ pod "SwiftLint", "0.57.0"
if ENV["FASTLANE_BETA_PROFILE"] == "true"
pod "FLEX",
@@ -39,21 +39,19 @@ end
def all_pods
shared_pods
- pod "DownloadButton", "0.1.0"
- pod "SVProgressHUD", "2.2.5"
-
- pod "SnapKit", "5.0.1"
+ pod "SVProgressHUD", "2.3.1"
+ pod "SnapKit", "5.7.1"
# Firebase
- pod "Firebase/Core", "10.15.0"
- pod "Firebase/Messaging", "10.15.0"
- pod "Firebase/Analytics", "10.15.0"
- pod "Firebase/Crashlytics", "10.15.0"
- pod "Firebase/RemoteConfig", "10.15.0"
+ pod "Firebase/Core", "10.29.0"
+ pod "Firebase/Messaging", "10.29.0"
+ pod "Firebase/Analytics", "10.29.0"
+ pod "Firebase/Crashlytics", "10.29.0"
+ pod "Firebase/RemoteConfig", "10.29.0"
- pod "YandexMobileMetrica/Dynamic", "3.17.0"
- pod "Amplitude", "8.5.0"
- pod "Branch", "1.40.2"
+ pod "AppMetricaCore", "5.8.2"
+ pod "Amplitude", "8.22.0"
+ pod "BranchSDK", "3.6.5"
pod "BEMCheckBox", "1.4.1"
@@ -71,17 +69,17 @@ def all_pods
pod "Presentr", :git => "https://github.com/ivan-magda/Presentr.git", :tag => "v1.9.1"
pod "PanModal", :git => "https://github.com/ivan-magda/PanModal.git", :branch => "remove-presenting-appearance-transitions"
- pod "Agrume", "5.6.13"
+ pod "Agrume", "5.8.0"
pod "Highlightr", :git => "https://github.com/ivan-magda/Highlightr.git", :tag => "v2.1.3"
pod "TTTAttributedLabel", "2.0.0"
pod "lottie-ios", "3.2.3"
pod "Koloda", "5.0.1"
- pod "Charts", "4.1.0"
+ pod "DGCharts", "5.1.0"
pod "EasyTipView", "2.1.0"
- pod "ActionSheetPicker-3.0", "2.7.1"
- pod "Nuke", "9.5.0"
+ pod "ActionSheetPicker-3.0", "2.7.4"
+ pod "Nuke", "10.7.1"
pod "STRegex", "2.1.1"
- pod "Tabman", "2.10.0"
+ pod "Tabman", "3.2.0"
pod "SwiftDate", "6.3.1"
end
diff --git a/Podfile.lock b/Podfile.lock
index a3a77c45b9..aee86855aa 100644
--- a/Podfile.lock
+++ b/Podfile.lock
@@ -1,100 +1,139 @@
PODS:
- - ActionSheetPicker-3.0 (2.7.1)
- - Agrume (5.6.13):
+ - ActionSheetPicker-3.0 (2.7.4)
+ - Agrume (5.8.0):
- SwiftyGif
- - Alamofire (5.4.4)
- - Amplitude (8.5.0)
+ - Alamofire (5.10.1)
+ - Amplitude (8.22.0):
+ - AnalyticsConnector (~> 1.0.0)
+ - AnalyticsConnector (1.0.3)
- AppAuth (1.7.5):
- AppAuth/Core (= 1.7.5)
- AppAuth/ExternalUserAgent (= 1.7.5)
- AppAuth/Core (1.7.5)
- AppAuth/ExternalUserAgent (1.7.5):
- AppAuth/Core
+ - AppMetricaCore (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaEncodingUtils (= 5.8.2)
+ - AppMetricaFMDB (= 5.8.2)
+ - AppMetricaHostState (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaNetwork (= 5.8.2)
+ - AppMetricaPlatform (= 5.8.2)
+ - AppMetricaProtobuf (= 5.8.2)
+ - AppMetricaProtobufUtils (= 5.8.2)
+ - AppMetricaStorageUtils (= 5.8.2)
+ - AppMetricaCoreUtils (5.8.2):
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaEncodingUtils (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaPlatform (= 5.8.2)
+ - AppMetricaFMDB (5.8.2)
+ - AppMetricaHostState (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaLog (5.8.2)
+ - AppMetricaNetwork (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaPlatform (= 5.8.2)
+ - AppMetricaPlatform (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
+ - AppMetricaProtobuf (5.8.2)
+ - AppMetricaProtobufUtils (5.8.2):
+ - AppMetricaProtobuf (= 5.8.2)
+ - AppMetricaStorageUtils (5.8.2):
+ - AppMetricaCoreUtils (= 5.8.2)
+ - AppMetricaLog (= 5.8.2)
- Atributika (4.10.1)
- BEMCheckBox (1.4.1)
- - Branch (1.40.2)
- - Charts (4.1.0):
- - Charts/Core (= 4.1.0)
- - Charts/Core (4.1.0):
- - SwiftAlgorithms (~> 1.0)
+ - BranchSDK (3.6.5)
- CocoaLumberjack (3.8.5):
- CocoaLumberjack/Core (= 3.8.5)
- CocoaLumberjack/Core (3.8.5)
- - DeviceKit (4.5.2)
- - DownloadButton (0.1.0)
+ - DeviceKit (5.5.0)
+ - DGCharts (5.1.0):
+ - DGCharts/Core (= 5.1.0)
+ - DGCharts/Core (5.1.0)
- EasyTipView (2.1.0)
- - Firebase/Analytics (10.15.0):
+ - Firebase/Analytics (10.29.0):
- Firebase/Core
- - Firebase/Core (10.15.0):
+ - Firebase/Core (10.29.0):
- Firebase/CoreOnly
- - FirebaseAnalytics (~> 10.15.0)
- - Firebase/CoreOnly (10.15.0):
- - FirebaseCore (= 10.15.0)
- - Firebase/Crashlytics (10.15.0):
+ - FirebaseAnalytics (~> 10.29.0)
+ - Firebase/CoreOnly (10.29.0):
+ - FirebaseCore (= 10.29.0)
+ - Firebase/Crashlytics (10.29.0):
- Firebase/CoreOnly
- - FirebaseCrashlytics (~> 10.15.0)
- - Firebase/Messaging (10.15.0):
+ - FirebaseCrashlytics (~> 10.29.0)
+ - Firebase/Messaging (10.29.0):
- Firebase/CoreOnly
- - FirebaseMessaging (~> 10.15.0)
- - Firebase/RemoteConfig (10.15.0):
+ - FirebaseMessaging (~> 10.29.0)
+ - Firebase/RemoteConfig (10.29.0):
- Firebase/CoreOnly
- - FirebaseRemoteConfig (~> 10.15.0)
+ - FirebaseRemoteConfig (~> 10.29.0)
- FirebaseABTesting (10.29.0):
- FirebaseCore (~> 10.0)
- - FirebaseAnalytics (10.15.0):
- - FirebaseAnalytics/AdIdSupport (= 10.15.0)
+ - FirebaseAnalytics (10.29.0):
+ - FirebaseAnalytics/AdIdSupport (= 10.29.0)
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- - nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseAnalytics/AdIdSupport (10.15.0):
+ - nanopb (< 2.30911.0, >= 2.30908.0)
+ - FirebaseAnalytics/AdIdSupport (10.29.0):
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- - GoogleAppMeasurement (= 10.15.0)
+ - GoogleAppMeasurement (= 10.29.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- - nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseCore (10.15.0):
+ - nanopb (< 2.30911.0, >= 2.30908.0)
+ - FirebaseCore (10.29.0):
- FirebaseCoreInternal (~> 10.0)
- - GoogleUtilities/Environment (~> 7.8)
- - GoogleUtilities/Logger (~> 7.8)
+ - GoogleUtilities/Environment (~> 7.12)
+ - GoogleUtilities/Logger (~> 7.12)
- FirebaseCoreExtension (10.29.0):
- FirebaseCore (~> 10.0)
- FirebaseCoreInternal (10.29.0):
- "GoogleUtilities/NSData+zlib (~> 7.8)"
- - FirebaseCrashlytics (10.15.0):
+ - FirebaseCrashlytics (10.29.0):
- FirebaseCore (~> 10.5)
- FirebaseInstallations (~> 10.0)
+ - FirebaseRemoteConfigInterop (~> 10.23)
- FirebaseSessions (~> 10.5)
- GoogleDataTransport (~> 9.2)
- GoogleUtilities/Environment (~> 7.8)
- - nanopb (< 2.30910.0, >= 2.30908.0)
+ - nanopb (< 2.30911.0, >= 2.30908.0)
- PromisesObjC (~> 2.1)
- FirebaseInstallations (10.29.0):
- FirebaseCore (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
- PromisesObjC (~> 2.1)
- - FirebaseMessaging (10.15.0):
+ - FirebaseMessaging (10.29.0):
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
- - GoogleDataTransport (~> 9.2)
+ - GoogleDataTransport (~> 9.3)
- GoogleUtilities/AppDelegateSwizzler (~> 7.8)
- GoogleUtilities/Environment (~> 7.8)
- GoogleUtilities/Reachability (~> 7.8)
- GoogleUtilities/UserDefaults (~> 7.8)
- - nanopb (< 2.30910.0, >= 2.30908.0)
- - FirebaseRemoteConfig (10.15.0):
+ - nanopb (< 2.30911.0, >= 2.30908.0)
+ - FirebaseRemoteConfig (10.29.0):
- FirebaseABTesting (~> 10.0)
- FirebaseCore (~> 10.0)
- FirebaseInstallations (~> 10.0)
+ - FirebaseRemoteConfigInterop (~> 10.23)
+ - FirebaseSharedSwift (~> 10.0)
- GoogleUtilities/Environment (~> 7.8)
- "GoogleUtilities/NSData+zlib (~> 7.8)"
+ - FirebaseRemoteConfigInterop (10.29.0)
- FirebaseSessions (10.29.0):
- FirebaseCore (~> 10.5)
- FirebaseCoreExtension (~> 10.0)
@@ -104,27 +143,28 @@ PODS:
- GoogleUtilities/UserDefaults (~> 7.13)
- nanopb (< 2.30911.0, >= 2.30908.0)
- PromisesSwift (~> 2.1)
+ - FirebaseSharedSwift (10.29.0)
- FLEX (4.4.1)
- - GoogleAppMeasurement (10.15.0):
- - GoogleAppMeasurement/AdIdSupport (= 10.15.0)
+ - GoogleAppMeasurement (10.29.0):
+ - GoogleAppMeasurement/AdIdSupport (= 10.29.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- - nanopb (< 2.30910.0, >= 2.30908.0)
- - GoogleAppMeasurement/AdIdSupport (10.15.0):
- - GoogleAppMeasurement/WithoutAdIdSupport (= 10.15.0)
+ - nanopb (< 2.30911.0, >= 2.30908.0)
+ - GoogleAppMeasurement/AdIdSupport (10.29.0):
+ - GoogleAppMeasurement/WithoutAdIdSupport (= 10.29.0)
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- - nanopb (< 2.30910.0, >= 2.30908.0)
- - GoogleAppMeasurement/WithoutAdIdSupport (10.15.0):
+ - nanopb (< 2.30911.0, >= 2.30908.0)
+ - GoogleAppMeasurement/WithoutAdIdSupport (10.29.0):
- GoogleUtilities/AppDelegateSwizzler (~> 7.11)
- GoogleUtilities/MethodSwizzler (~> 7.11)
- GoogleUtilities/Network (~> 7.11)
- "GoogleUtilities/NSData+zlib (~> 7.11)"
- - nanopb (< 2.30910.0, >= 2.30908.0)
+ - nanopb (< 2.30911.0, >= 2.30908.0)
- GoogleDataTransport (9.4.1):
- GoogleUtilities/Environment (~> 7.7)
- nanopb (< 2.30911.0, >= 2.30908.0)
@@ -178,74 +218,69 @@ PODS:
- URITemplate (~> 3.0)
- Mockingjay/XCTest (3.0.0-alpha.1):
- Mockingjay/Core
- - nanopb (2.30909.1):
- - nanopb/decode (= 2.30909.1)
- - nanopb/encode (= 2.30909.1)
- - nanopb/decode (2.30909.1)
- - nanopb/encode (2.30909.1)
+ - nanopb (2.30910.0):
+ - nanopb/decode (= 2.30910.0)
+ - nanopb/encode (= 2.30910.0)
+ - nanopb/decode (2.30910.0)
+ - nanopb/encode (2.30910.0)
- Nimble (9.2.1)
- - Nuke (9.5.0)
- - Pageboy (3.6.2)
+ - Nuke (10.7.1)
+ - Pageboy (4.2.0)
- PanModal (1.2.7)
- pop (1.0.12)
- Presentr (1.9)
- - PromiseKit (6.16.1):
- - PromiseKit/CorePromise (= 6.16.1)
- - PromiseKit/Foundation (= 6.16.1)
- - PromiseKit/UIKit (= 6.16.1)
- - PromiseKit/CorePromise (6.16.1)
- - PromiseKit/Foundation (6.16.1):
+ - PromiseKit (8.0.0):
+ - PromiseKit/CorePromise (= 8.0.0)
+ - PromiseKit/Foundation (= 8.0.0)
+ - PromiseKit/UIKit (= 8.0.0)
+ - PromiseKit/CorePromise (8.0.0)
+ - PromiseKit/Foundation (8.0.0):
- PromiseKit/CorePromise
- - PromiseKit/UIKit (6.16.1):
+ - PromiseKit/UIKit (8.0.0):
- PromiseKit/CorePromise
- PromisesObjC (2.4.0)
- PromisesSwift (2.4.0):
- PromisesObjC (= 2.4.0)
- Quick (4.0.0)
- - SDWebImage (5.12.1):
- - SDWebImage/Core (= 5.12.1)
- - SDWebImage/Core (5.12.1)
- - SnapKit (5.0.1)
+ - SDWebImage (5.19.7):
+ - SDWebImage/Core (= 5.19.7)
+ - SDWebImage/Core (5.19.7)
+ - SnapKit (5.7.1)
- StepikModel (0.0.1)
- STRegex (2.1.1)
- - SVGKit (2.1.0):
+ - SVGKit (3.1.1):
- CocoaLumberjack (~> 3.0)
- - SVProgressHUD (2.2.5)
- - SwiftAlgorithms (1.0.0)
+ - SVProgressHUD (2.3.1):
+ - SVProgressHUD/Core (= 2.3.1)
+ - SVProgressHUD/Core (2.3.1)
- SwiftDate (6.3.1)
- - SwiftLint (0.45.1)
+ - SwiftLint (0.57.0)
- SwiftyGif (5.4.5)
- - SwiftyJSON (5.0.0)
- - Tabman (2.10.0):
- - Pageboy (~> 3.6.0)
+ - SwiftyJSON (5.0.2)
+ - Tabman (3.2.0):
+ - Pageboy (~> 4.2.0)
- TTTAttributedLabel (2.0.0)
- TUSafariActivity (1.0.4)
- URITemplate (3.0.1)
- VK-ios-sdk (1.6.2)
- - YandexMobileMetrica/Dynamic (3.17.0):
- - YandexMobileMetrica/Dynamic/Core (= 3.17.0)
- - YandexMobileMetrica/Dynamic/Crashes (= 3.17.0)
- - YandexMobileMetrica/Dynamic/Core (3.17.0)
- - YandexMobileMetrica/Dynamic/Crashes (3.17.0):
- - YandexMobileMetrica/Dynamic/Core
DEPENDENCIES:
- - ActionSheetPicker-3.0 (= 2.7.1)
- - Agrume (= 5.6.13)
- - Alamofire (= 5.4.4)
- - Amplitude (= 8.5.0)
+ - ActionSheetPicker-3.0 (= 2.7.4)
+ - Agrume (= 5.8.0)
+ - Alamofire (= 5.10.1)
+ - Amplitude (= 8.22.0)
+ - AppMetricaCore (= 5.8.2)
- Atributika (= 4.10.1)
- BEMCheckBox (= 1.4.1)
- - Branch (= 1.40.2)
- - Charts (= 4.1.0)
- - DeviceKit (= 4.5.2)
- - DownloadButton (= 0.1.0)
+ - BranchSDK (= 3.6.5)
+ - DeviceKit (= 5.5.0)
+ - DGCharts (= 5.1.0)
- EasyTipView (= 2.1.0)
- - Firebase/Analytics (= 10.15.0)
- - Firebase/Core (= 10.15.0)
- - Firebase/Crashlytics (= 10.15.0)
- - Firebase/Messaging (= 10.15.0)
- - Firebase/RemoteConfig (= 10.15.0)
+ - Firebase/Analytics (= 10.29.0)
+ - Firebase/Core (= 10.29.0)
+ - Firebase/Crashlytics (= 10.29.0)
+ - Firebase/Messaging (= 10.29.0)
+ - Firebase/RemoteConfig (= 10.29.0)
- FLEX (from `https://github.com/ivan-magda/FLEX.git`, branch `master`)
- GoogleSignIn (= 6.1.0)
- Highlightr (from `https://github.com/ivan-magda/Highlightr.git`, tag `v2.1.3`)
@@ -255,25 +290,24 @@ DEPENDENCIES:
- lottie-ios (= 3.2.3)
- Mockingjay (from `https://github.com/kylef/Mockingjay.git`, branch `master`)
- Nimble (= 9.2.1)
- - Nuke (= 9.5.0)
+ - Nuke (= 10.7.1)
- PanModal (from `https://github.com/ivan-magda/PanModal.git`, branch `remove-presenting-appearance-transitions`)
- Presentr (from `https://github.com/ivan-magda/Presentr.git`, tag `v1.9.1`)
- - PromiseKit (from `https://github.com/mxcl/PromiseKit.git`, tag `6.16.2`)
+ - PromiseKit (= 8.0.0)
- Quick (= 4.0.0)
- - SDWebImage (= 5.12.1)
- - SnapKit (= 5.0.1)
+ - SDWebImage (= 5.19.7)
+ - SnapKit (= 5.7.1)
- StepikModel (from `./StepikModel`)
- STRegex (= 2.1.1)
- - SVGKit (from `https://github.com/SVGKit/SVGKit.git`, branch `2.x`)
- - SVProgressHUD (= 2.2.5)
+ - SVGKit (from `https://github.com/SVGKit/SVGKit.git`, branch `3.x`)
+ - SVProgressHUD (= 2.3.1)
- SwiftDate (= 6.3.1)
- - SwiftLint (= 0.45.1)
- - SwiftyJSON (= 5.0.0)
- - Tabman (= 2.10.0)
+ - SwiftLint (= 0.57.0)
+ - SwiftyJSON (= 5.0.2)
+ - Tabman (= 3.2.0)
- TTTAttributedLabel (= 2.0.0)
- TUSafariActivity (= 1.0.4)
- VK-ios-sdk (= 1.6.2)
- - YandexMobileMetrica/Dynamic (= 3.17.0)
SPEC REPOS:
https://github.com/CocoaPods/Specs.git:
@@ -281,14 +315,25 @@ SPEC REPOS:
- Agrume
- Alamofire
- Amplitude
+ - AnalyticsConnector
- AppAuth
+ - AppMetricaCore
+ - AppMetricaCoreUtils
+ - AppMetricaEncodingUtils
+ - AppMetricaFMDB
+ - AppMetricaHostState
+ - AppMetricaLog
+ - AppMetricaNetwork
+ - AppMetricaPlatform
+ - AppMetricaProtobuf
+ - AppMetricaProtobufUtils
+ - AppMetricaStorageUtils
- Atributika
- BEMCheckBox
- - Branch
- - Charts
+ - BranchSDK
- CocoaLumberjack
- DeviceKit
- - DownloadButton
+ - DGCharts
- EasyTipView
- Firebase
- FirebaseABTesting
@@ -300,7 +345,9 @@ SPEC REPOS:
- FirebaseInstallations
- FirebaseMessaging
- FirebaseRemoteConfig
+ - FirebaseRemoteConfigInterop
- FirebaseSessions
+ - FirebaseSharedSwift
- GoogleAppMeasurement
- GoogleDataTransport
- GoogleSignIn
@@ -316,6 +363,7 @@ SPEC REPOS:
- Nuke
- Pageboy
- pop
+ - PromiseKit
- PromisesObjC
- PromisesSwift
- Quick
@@ -323,7 +371,6 @@ SPEC REPOS:
- SnapKit
- STRegex
- SVProgressHUD
- - SwiftAlgorithms
- SwiftDate
- SwiftLint
- SwiftyGif
@@ -333,7 +380,6 @@ SPEC REPOS:
- TUSafariActivity
- URITemplate
- VK-ios-sdk
- - YandexMobileMetrica
EXTERNAL SOURCES:
FLEX:
@@ -351,13 +397,10 @@ EXTERNAL SOURCES:
Presentr:
:git: https://github.com/ivan-magda/Presentr.git
:tag: v1.9.1
- PromiseKit:
- :git: https://github.com/mxcl/PromiseKit.git
- :tag: 6.16.2
StepikModel:
:path: "./StepikModel"
SVGKit:
- :branch: 2.x
+ :branch: 3.x
:git: https://github.com/SVGKit/SVGKit.git
CHECKOUT OPTIONS:
@@ -376,40 +419,50 @@ CHECKOUT OPTIONS:
Presentr:
:git: https://github.com/ivan-magda/Presentr.git
:tag: v1.9.1
- PromiseKit:
- :git: https://github.com/mxcl/PromiseKit.git
- :tag: 6.16.2
SVGKit:
- :commit: c40671b9a264f8f71831c4e0452736debfae2164
+ :commit: 6f75e96948fa72fa5ebc5d1f0bfa761a5614c546
:git: https://github.com/SVGKit/SVGKit.git
SPEC CHECKSUMS:
- ActionSheetPicker-3.0: 36da254b97a09ff89679ecb8b8510bd3e5bdc773
- Agrume: 21b96a1138abc0f890211bfcb12f8b1e3464b4c1
- Alamofire: f3b09a368f1582ab751b3fff5460276e0d2cf5c9
- Amplitude: ef9ed339ddd33c9183edf63fa4bbaa86cf873321
+ ActionSheetPicker-3.0: a380d57270b6b2d321c4add024ba5c466a7f5cfd
+ Agrume: 0b1a42b5bfbc3aa9f0801f2857d8df1138cf2951
+ Alamofire: 840d2a1ad82355b536ec6ba5f97e5bfa54600ca3
+ Amplitude: d5c696f6fc1632a0e6672af2f01aa184e0b93194
+ AnalyticsConnector: a53214d38ae22734c6266106c0492b37832633a9
AppAuth: 501c04eda8a8d11f179dbe8637b7a91bb7e5d2fa
+ AppMetricaCore: bf95c826ec74260b8c81cca9fc21efb8aea52a70
+ AppMetricaCoreUtils: e272b7ae0d4da73e178cc9d7cf391ce67c713d61
+ AppMetricaEncodingUtils: ee11733ecad85bf10d513920ef091bbc0ae5f2c7
+ AppMetricaFMDB: 44ffa4aa173513c04af2a1fbf6dfc180f266872a
+ AppMetricaHostState: c6a10727120cdd4d7eaaabf57f9e562ec9cd6b0f
+ AppMetricaLog: 49eb3d5ef7d4288a388cc34eaa53cbcd42241b8a
+ AppMetricaNetwork: f29d5bedc1abb6dff4be1f89422e5403dcda7dee
+ AppMetricaPlatform: f3423676add2e9a61b6b67f2692f385b62bf87a8
+ AppMetricaProtobuf: d895f7478c9e90ac3a50bd2f2ae8bd022205dbd1
+ AppMetricaProtobufUtils: 2e4134f486620a27306940347265c824784c906c
+ AppMetricaStorageUtils: d4b1470acba258fe9a07d9860defdeb93096b89b
Atributika: 47e778507cfb3cd2c996278b0285221a62e97d71
BEMCheckBox: 5ba6e37ade3d3657b36caecc35c8b75c6c2b1a4e
- Branch: d99436c6f3d5b2529ba948d273e47e732830f207
- Charts: ce0768268078eee0336f122c3c4ca248e4e204c5
+ BranchSDK: ef7d89062afb08b20f65d5b1633b215ee77ab77f
CocoaLumberjack: 6a459bc897d6d80bd1b8c78482ec7ad05dffc3f0
- DeviceKit: c622fc19f795f3e0b4d75d6d11b26604338cdab3
- DownloadButton: 49a21a89e0d7d1b42d9134f79aaa40e727cd57c3
+ DeviceKit: d83e38ca196a4ebf0cc5f37d6f0316a24b794d5b
+ DGCharts: 1c6daf585b6cfc78807af44ea690d357c410627f
EasyTipView: a92b6edc377b81c5ac18e9fd35d5ee78e9409488
- Firebase: 66043bd4579e5b73811f96829c694c7af8d67435
+ Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d
FirebaseABTesting: d87f56707159bae64e269757a6e963d490f2eebe
- FirebaseAnalytics: 47cef43728f81a839cf1306576bdd77ffa2eac7e
- FirebaseCore: 2cec518b43635f96afe7ac3a9c513e47558abd2e
+ FirebaseAnalytics: 23717de130b779aa506e757edb9713d24b6ffeda
+ FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16
FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f
FirebaseCoreInternal: df84dd300b561c27d5571684f389bf60b0a5c934
- FirebaseCrashlytics: a83f26fb922a3fe181eb738fb4dcf0c92bba6455
+ FirebaseCrashlytics: 34647b41e18de773717fdd348a22206f2f9bc774
FirebaseInstallations: 913cf60d0400ebd5d6b63a28b290372ab44590dd
- FirebaseMessaging: 0c0ae1eb722ef0c07f7801e5ded8dccd1357d6d4
- FirebaseRemoteConfig: 64b6ada098c649304114a817effd7e5f87229b11
+ FirebaseMessaging: 7b5d8033e183ab59eb5b852a53201559e976d366
+ FirebaseRemoteConfig: 48ef3f243742a8d72422ccfc9f986e19d7de53fd
+ FirebaseRemoteConfigInterop: 6efda51fb5e2f15b16585197e26eaa09574e8a4d
FirebaseSessions: dbd14adac65ce996228652c1fc3a3f576bdf3ecc
+ FirebaseSharedSwift: 20530f495084b8d840f78a100d8c5ee613375f6e
FLEX: 75ca95cff4bd57592c6e75adee7651ace29f9c25
- GoogleAppMeasurement: 722db6550d1e6d552b08398b69a975ac61039338
+ GoogleAppMeasurement: f9de05ee17401e3355f68e8fc8b5064d429f5918
GoogleDataTransport: 6c09b596d841063d76d4288cc2d2f42cc36e1e2a
GoogleSignIn: c90b5bec45e780f54c6a8e1e3c182a86e3dda69d
GoogleUtilities: ea963c370a38a8069cc5f7ba4ca849a60b6d7d15
@@ -421,35 +474,33 @@ SPEC CHECKSUMS:
Koloda: d07b9199a383abc5898b62aa945a599f5e7c0c4b
lottie-ios: c058aeafa76daa4cf64d773554bccc8385d0150e
Mockingjay: 97656c6f59879923976a0a52ef09da45756cca82
- nanopb: d4d75c12cd1316f4a64e3c6963f879ecd4b5e0d5
+ nanopb: 438bc412db1928dac798aa6fd75726007be04262
Nimble: e7e615c0335ee4bf5b0d786685451e62746117d5
- Nuke: 6f400a4ea957e09149ec335a3c6acdcc814d89e4
- Pageboy: cf121b9dd48c63f3f281b2a9ec93d02e0f23879b
+ Nuke: 279f17a599fd1c83cf51de5e0e1f2db143a287b0
+ Pageboy: 7f7886f61c76633df635861bf7839caf2cabdb3e
PanModal: 3e16ead1a907fb06f4df3f13492fd00149fa4974
pop: d582054913807fd11fd50bfe6a539d91c7e1a55a
Presentr: 931d50e158060ea88fbf8f3dd202b17e0bb53eb0
- PromiseKit: d4b7fa52340b2bf1423ddb39b5edbc4642d1b13a
+ PromiseKit: 7039707ba8764b6ce98501debce2489561b038a5
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
PromisesSwift: 9d77319bbe72ebf6d872900551f7eeba9bce2851
Quick: 6473349e43b9271a8d43839d9ba1c442ed1b7ac4
- SDWebImage: 4dc3e42d9ec0c1028b960a33ac6b637bb432207b
- SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb
+ SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3
+ SnapKit: d612e99e678a2d3b95bf60b0705ed0a35c03484a
StepikModel: 7bf35e3dcd1687b5b7cf4f49838e1e74776a593c
STRegex: d49e88d0fe58538d3175fdd989bc1243b9be2a07
- SVGKit: 8a2fc74258bdb2abb54d3b65f3dd68b0277a9c4d
- SVProgressHUD: 1428aafac632c1f86f62aa4243ec12008d7a51d6
- SwiftAlgorithms: 38dda4731d19027fdeee1125f973111bf3386b53
+ SVGKit: 3f02ad9c8227831e508e2e37ecc4005d2f0496a5
+ SVProgressHUD: 4837c74bdfe2e51e8821c397825996a8d7de6e22
SwiftDate: 72d28954e8e1c6c1c0f917ccc8005e4f83c7d4b2
- SwiftLint: 06ac37e4d38c7068e0935bb30cda95f093bec761
+ SwiftLint: eb47480d47c982481592c195c221d11013a679cc
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
- SwiftyJSON: 36413e04c44ee145039d332b4f4e2d3e8d6c4db7
- Tabman: d8d6ab0b483c7db375a71ac227d3ef791b56a049
+ SwiftyJSON: f5b1bf1cd8dd53cd25887ac0eabcfd92301c6a5a
+ Tabman: 49f9181a2bfe5c29d002864dac2de8e0b7ea9180
TTTAttributedLabel: 8cffe8e127e4e82ff3af1e5386d4cd0ad000b656
TUSafariActivity: afc55a00965377939107ce4fdc7f951f62454546
URITemplate: 5f5a79f3e384884102c4e6b3325d159c20a8035a
VK-ios-sdk: 5bcf00a2014a7323f98db9328b603d4f96635caa
- YandexMobileMetrica: 9e713c16bb6aca0ba63b84c8d7b8b86d32f4ecc4
-PODFILE CHECKSUM: 32ae5ca74085f0729c6725e8dc77732580571c83
+PODFILE CHECKSUM: d03640469d149734e912909db96c9be5974aa6f8
-COCOAPODS: 1.16.0
+COCOAPODS: 1.16.1
diff --git a/Stepic.xcodeproj/project.pbxproj b/Stepic.xcodeproj/project.pbxproj
index 687af4acfa..12a73ed434 100644
--- a/Stepic.xcodeproj/project.pbxproj
+++ b/Stepic.xcodeproj/project.pbxproj
@@ -10562,7 +10562,6 @@
buildConfigurationList = 08DE94301B8C58AC00D278AB /* Build configuration list for PBXNativeTarget "Stepic" */;
buildPhases = (
5753E9371DCCED3A6EA46861 /* [CP] Check Pods Manifest.lock */,
- 08983F241F3E4112008199B1 /* SwiftLint Script */,
08DE940F1B8C58AC00D278AB /* Resources */,
08DE940D1B8C58AC00D278AB /* Sources */,
08DE940E1B8C58AC00D278AB /* Frameworks */,
@@ -10630,20 +10629,20 @@
TargetAttributes = {
085D5CD81D007F2100092060 = {
CreatedOnToolsVersion = 7.3;
- DevelopmentTeam = UJ4KC2QN7B;
+ DevelopmentTeam = F2X3HLX8GN;
LastSwiftMigration = 1130;
ProvisioningStyle = Automatic;
TestTargetID = 08DE94101B8C58AC00D278AB;
};
086538341EB02715003A8415 = {
CreatedOnToolsVersion = 8.3.2;
- DevelopmentTeam = UJ4KC2QN7B;
+ DevelopmentTeam = F2X3HLX8GN;
LastSwiftMigration = 0920;
ProvisioningStyle = Automatic;
};
08DE94101B8C58AC00D278AB = {
CreatedOnToolsVersion = 6.4;
- DevelopmentTeam = UJ4KC2QN7B;
+ DevelopmentTeam = F2X3HLX8GN;
LastSwiftMigration = 1130;
ProvisioningStyle = Automatic;
SystemCapabilities = {
@@ -10669,12 +10668,12 @@
};
2CF6E62425ADB92A00B5A703 = {
CreatedOnToolsVersion = 12.3;
- DevelopmentTeam = UJ4KC2QN7B;
+ DevelopmentTeam = F2X3HLX8GN;
ProvisioningStyle = Automatic;
};
8489EE7325FAF13A004A85C5 = {
CreatedOnToolsVersion = 12.4;
- DevelopmentTeam = UJ4KC2QN7B;
+ DevelopmentTeam = F2X3HLX8GN;
ProvisioningStyle = Automatic;
TestTargetID = 08DE94101B8C58AC00D278AB;
};
@@ -10906,20 +10905,6 @@
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/FirebaseCrashlytics/run\"\n";
};
- 08983F241F3E4112008199B1 /* SwiftLint Script */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "SwiftLint Script";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "${SRCROOT}/lint.sh ${TARGET_NAME}\n";
- };
2C47A16C206297D0003E87EC /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 8;
@@ -10984,14 +10969,25 @@
"${BUILT_PRODUCTS_DIR}/Agrume/Agrume.framework",
"${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
"${BUILT_PRODUCTS_DIR}/Amplitude/Amplitude.framework",
+ "${BUILT_PRODUCTS_DIR}/AnalyticsConnector/AnalyticsConnector.framework",
"${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaCore/AppMetricaCore.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaCoreUtils/AppMetricaCoreUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaEncodingUtils/AppMetricaEncodingUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaFMDB/AppMetricaFMDB.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaHostState/AppMetricaHostState.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaLog/AppMetricaLog.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaNetwork/AppMetricaNetwork.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaPlatform/AppMetricaPlatform.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaProtobuf/AppMetricaProtobuf.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaProtobufUtils/AppMetricaProtobufUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaStorageUtils/AppMetricaStorageUtils.framework",
"${BUILT_PRODUCTS_DIR}/Atributika/Atributika.framework",
"${BUILT_PRODUCTS_DIR}/BEMCheckBox/BEMCheckBox.framework",
- "${BUILT_PRODUCTS_DIR}/Branch/Branch.framework",
- "${BUILT_PRODUCTS_DIR}/Charts/Charts.framework",
+ "${BUILT_PRODUCTS_DIR}/BranchSDK/BranchSDK.framework",
"${BUILT_PRODUCTS_DIR}/CocoaLumberjack/CocoaLumberjack.framework",
+ "${BUILT_PRODUCTS_DIR}/DGCharts/DGCharts.framework",
"${BUILT_PRODUCTS_DIR}/DeviceKit/DeviceKit.framework",
- "${BUILT_PRODUCTS_DIR}/DownloadButton/DownloadButton.framework",
"${BUILT_PRODUCTS_DIR}/EasyTipView/EasyTipView.framework",
"${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseABTesting/FirebaseABTesting.framework",
@@ -11002,7 +10998,9 @@
"${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseMessaging/FirebaseMessaging.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfig/FirebaseRemoteConfig.framework",
+ "${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseSessions/FirebaseSessions.framework",
+ "${BUILT_PRODUCTS_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework",
"${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework",
@@ -11025,7 +11023,6 @@
"${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework",
"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework",
"${BUILT_PRODUCTS_DIR}/StepikModel/StepikModel.framework",
- "${BUILT_PRODUCTS_DIR}/SwiftAlgorithms/Algorithms.framework",
"${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework",
@@ -11040,8 +11037,6 @@
"${BUILT_PRODUCTS_DIR}/Nimble/Nimble.framework",
"${BUILT_PRODUCTS_DIR}/Quick/Quick.framework",
"${BUILT_PRODUCTS_DIR}/URITemplate/URITemplate.framework",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetrica/Dynamic/Core/YandexMobileMetrica.framework/YandexMobileMetrica",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetrica/Dynamic/Crashes/YandexMobileMetricaCrashes.framework/YandexMobileMetricaCrashes",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
@@ -11049,14 +11044,25 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Agrume.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Amplitude.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AnalyticsConnector.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaCoreUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaEncodingUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaFMDB.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaHostState.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaLog.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaNetwork.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaPlatform.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaProtobuf.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaProtobufUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaStorageUtils.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Atributika.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BEMCheckBox.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Branch.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Charts.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BranchSDK.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaLumberjack.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DGCharts.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DeviceKit.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DownloadButton.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EasyTipView.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseABTesting.framework",
@@ -11067,7 +11073,9 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessaging.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfig.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfigInterop.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSessions.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSharedSwift.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework",
@@ -11090,7 +11098,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StepikModel.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Algorithms.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftDate.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework",
@@ -11105,8 +11112,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Nimble.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Quick.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/URITemplate.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YandexMobileMetrica.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YandexMobileMetricaCrashes.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -11124,14 +11129,25 @@
"${BUILT_PRODUCTS_DIR}/Agrume/Agrume.framework",
"${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
"${BUILT_PRODUCTS_DIR}/Amplitude/Amplitude.framework",
+ "${BUILT_PRODUCTS_DIR}/AnalyticsConnector/AnalyticsConnector.framework",
"${BUILT_PRODUCTS_DIR}/AppAuth/AppAuth.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaCore/AppMetricaCore.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaCoreUtils/AppMetricaCoreUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaEncodingUtils/AppMetricaEncodingUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaFMDB/AppMetricaFMDB.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaHostState/AppMetricaHostState.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaLog/AppMetricaLog.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaNetwork/AppMetricaNetwork.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaPlatform/AppMetricaPlatform.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaProtobuf/AppMetricaProtobuf.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaProtobufUtils/AppMetricaProtobufUtils.framework",
+ "${BUILT_PRODUCTS_DIR}/AppMetricaStorageUtils/AppMetricaStorageUtils.framework",
"${BUILT_PRODUCTS_DIR}/Atributika/Atributika.framework",
"${BUILT_PRODUCTS_DIR}/BEMCheckBox/BEMCheckBox.framework",
- "${BUILT_PRODUCTS_DIR}/Branch/Branch.framework",
- "${BUILT_PRODUCTS_DIR}/Charts/Charts.framework",
+ "${BUILT_PRODUCTS_DIR}/BranchSDK/BranchSDK.framework",
"${BUILT_PRODUCTS_DIR}/CocoaLumberjack/CocoaLumberjack.framework",
+ "${BUILT_PRODUCTS_DIR}/DGCharts/DGCharts.framework",
"${BUILT_PRODUCTS_DIR}/DeviceKit/DeviceKit.framework",
- "${BUILT_PRODUCTS_DIR}/DownloadButton/DownloadButton.framework",
"${BUILT_PRODUCTS_DIR}/EasyTipView/EasyTipView.framework",
"${BUILT_PRODUCTS_DIR}/FLEX/FLEX.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseABTesting/FirebaseABTesting.framework",
@@ -11142,7 +11158,9 @@
"${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseMessaging/FirebaseMessaging.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfig/FirebaseRemoteConfig.framework",
+ "${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseSessions/FirebaseSessions.framework",
+ "${BUILT_PRODUCTS_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework",
"${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework",
@@ -11165,7 +11183,6 @@
"${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework",
"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework",
"${BUILT_PRODUCTS_DIR}/StepikModel/StepikModel.framework",
- "${BUILT_PRODUCTS_DIR}/SwiftAlgorithms/Algorithms.framework",
"${BUILT_PRODUCTS_DIR}/SwiftDate/SwiftDate.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyGif/SwiftyGif.framework",
"${BUILT_PRODUCTS_DIR}/SwiftyJSON/SwiftyJSON.framework",
@@ -11176,8 +11193,6 @@
"${BUILT_PRODUCTS_DIR}/lottie-ios/Lottie.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
"${BUILT_PRODUCTS_DIR}/pop/pop.framework",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetrica/Dynamic/Core/YandexMobileMetrica.framework/YandexMobileMetrica",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/YandexMobileMetrica/Dynamic/Crashes/YandexMobileMetricaCrashes.framework/YandexMobileMetricaCrashes",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
@@ -11185,14 +11200,25 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Agrume.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Amplitude.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AnalyticsConnector.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppAuth.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaCoreUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaEncodingUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaFMDB.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaHostState.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaLog.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaNetwork.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaPlatform.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaProtobuf.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaProtobufUtils.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AppMetricaStorageUtils.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Atributika.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BEMCheckBox.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Branch.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Charts.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BranchSDK.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaLumberjack.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DGCharts.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DeviceKit.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DownloadButton.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EasyTipView.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FLEX.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseABTesting.framework",
@@ -11203,7 +11229,9 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessaging.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfig.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfigInterop.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSessions.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSharedSwift.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework",
@@ -11226,7 +11254,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/StepikModel.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Algorithms.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftDate.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyGif.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwiftyJSON.framework",
@@ -11237,8 +11264,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Lottie.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/pop.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YandexMobileMetrica.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YandexMobileMetricaCrashes.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
@@ -13266,7 +13291,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Production.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -13288,7 +13313,7 @@
CLANG_ANALYZER_NONNULL = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Production.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -13310,9 +13335,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
+ CURRENT_PROJECT_VERSION = 441;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Production.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -13335,8 +13360,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Production.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -13477,8 +13502,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Stepic/Info-Production.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -13507,8 +13532,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
INFOPLIST_FILE = "Stepic/Info-Production.plist";
@@ -13598,8 +13623,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Stepic/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -13627,7 +13652,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -13650,9 +13675,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
+ CURRENT_PROJECT_VERSION = 441;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -13731,8 +13756,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Stepic/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -13757,7 +13782,7 @@
CLANG_ANALYZER_NONNULL = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -13779,8 +13804,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Develop.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -13834,7 +13859,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -13910,7 +13935,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -13982,7 +14007,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14054,7 +14079,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14125,7 +14150,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14196,7 +14221,7 @@
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14299,8 +14324,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Stepic/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -14329,7 +14354,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -14353,9 +14378,9 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
+ CURRENT_PROJECT_VERSION = 441;
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -14435,8 +14460,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Stepic/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
@@ -14461,7 +14486,7 @@
CLANG_ANALYZER_NONNULL = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StepicTests/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -14483,8 +14508,8 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 437;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ CURRENT_PROJECT_VERSION = 441;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
INFOPLIST_FILE = "StickerPackExtension/Info-Release.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
PRODUCT_BUNDLE_IDENTIFIER = com.AlexKarpov.Stepic.StickerPackExtension;
@@ -14532,7 +14557,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
@@ -14598,7 +14623,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14661,7 +14686,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14723,7 +14748,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14784,7 +14809,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -14845,7 +14870,7 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
- DEVELOPMENT_TEAM = UJ4KC2QN7B;
+ DEVELOPMENT_TEAM = F2X3HLX8GN;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
diff --git a/Stepic/Info-Develop.plist b/Stepic/Info-Develop.plist
index 948baf9d78..6f35a16350 100644
--- a/Stepic/Info-Develop.plist
+++ b/Stepic/Info-Develop.plist
@@ -16,8 +16,10 @@
Stepik
CFBundlePackageType
APPL
+ LSMinimumSystemVersion
+ 12.0
CFBundleShortVersionString
- 1.219.2-develop
+ 1.220-develop
CFBundleSignature
????
CFBundleURLTypes
@@ -62,7 +64,7 @@
CFBundleVersion
- 437
+ 441
FacebookAppID
171127739724012
FacebookDisplayName
diff --git a/Stepic/Info-Production.plist b/Stepic/Info-Production.plist
index 0718512bdc..230e782a44 100644
--- a/Stepic/Info-Production.plist
+++ b/Stepic/Info-Production.plist
@@ -17,7 +17,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.219.2
+ 1.220
CFBundleSignature
????
CFBundleURLTypes
@@ -62,7 +62,7 @@
CFBundleVersion
- 437
+ 441
FacebookAppID
171127739724012
FacebookDisplayName
@@ -78,6 +78,8 @@
fbauth2
fbshareextension
+ LSMinimumSystemVersion
+ 12.0
LSRequiresIPhoneOS
NSAppTransportSecurity
@@ -85,52 +87,19 @@
NSAllowsArbitraryLoads
- UIBackgroundModes
-
- audio
-
- UILaunchStoryboardName
- LaunchScreen
- UIMainStoryboardFile
- Main
- UIRequiredDeviceCapabilities
-
- armv7
-
- UIStatusBarStyle
- UIStatusBarStyleLightContent
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
- UIInterfaceOrientationPortraitUpsideDown
-
- UISupportedInterfaceOrientations~ipad
+ NSUserActivityTypes
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
+ $(PRODUCT_BUNDLE_IDENTIFIER).ContinueLearningUserActivity
- UIViewControllerBasedStatusBarAppearance
-
- branch_key
-
- live
- key_live_ekt7qHLldFSKQyO2DT3NYellwFfko55Q
- test
- key_test_gjtWCOSjnAMKMtV9qJ4YyeelFzced092
-
UIApplicationShortcutItems
- UIApplicationShortcutItemType
- $(PRODUCT_BUNDLE_IDENTIFIER).ContinueLearning
UIApplicationShortcutItemIconType
UIApplicationShortcutIconTypePlay
UIApplicationShortcutItemTitle
shortcutTitleContinueLearning
+ UIApplicationShortcutItemType
+ $(PRODUCT_BUNDLE_IDENTIFIER).ContinueLearning
UIApplicationShortcutItemUserInfo
version
@@ -138,12 +107,12 @@
- UIApplicationShortcutItemType
- $(PRODUCT_BUNDLE_IDENTIFIER).SearchCourses
UIApplicationShortcutItemIconType
UIApplicationShortcutIconTypeSearch
UIApplicationShortcutItemTitle
shortcutTitleSearchCourses
+ UIApplicationShortcutItemType
+ $(PRODUCT_BUNDLE_IDENTIFIER).SearchCourses
UIApplicationShortcutItemUserInfo
version
@@ -151,12 +120,12 @@
- UIApplicationShortcutItemType
- $(PRODUCT_BUNDLE_IDENTIFIER).Profile
UIApplicationShortcutItemIconType
UIApplicationShortcutIconTypeContact
UIApplicationShortcutItemTitle
shortcutTitleProfile
+ UIApplicationShortcutItemType
+ $(PRODUCT_BUNDLE_IDENTIFIER).Profile
UIApplicationShortcutItemUserInfo
version
@@ -164,12 +133,12 @@
- UIApplicationShortcutItemType
- $(PRODUCT_BUNDLE_IDENTIFIER).Notifications
UIApplicationShortcutItemIconFile
shortcut-item-notifications
UIApplicationShortcutItemTitle
shortcutTitleNotifications
+ UIApplicationShortcutItemType
+ $(PRODUCT_BUNDLE_IDENTIFIER).Notifications
UIApplicationShortcutItemUserInfo
version
@@ -177,9 +146,42 @@
- NSUserActivityTypes
+ UIBackgroundModes
- $(PRODUCT_BUNDLE_IDENTIFIER).ContinueLearningUserActivity
+ audio
+ UILaunchStoryboardName
+ LaunchScreen
+ UIMainStoryboardFile
+ Main
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UIStatusBarStyle
+ UIStatusBarStyleLightContent
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+ UIInterfaceOrientationPortraitUpsideDown
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UIViewControllerBasedStatusBarAppearance
+
+ branch_key
+
+ live
+ key_live_ekt7qHLldFSKQyO2DT3NYellwFfko55Q
+ test
+ key_test_gjtWCOSjnAMKMtV9qJ4YyeelFzced092
+
diff --git a/Stepic/Info-Release.plist b/Stepic/Info-Release.plist
index e8373e7fc3..f15374dfe0 100644
--- a/Stepic/Info-Release.plist
+++ b/Stepic/Info-Release.plist
@@ -16,8 +16,10 @@
Stepik
CFBundlePackageType
APPL
+ LSMinimumSystemVersion
+ 12.0
CFBundleShortVersionString
- 1.219.2-release
+ 1.220-release
CFBundleSignature
????
CFBundleURLTypes
@@ -62,7 +64,7 @@
CFBundleVersion
- 437
+ 441
FacebookAppID
171127739724012
FacebookDisplayName
diff --git a/Stepic/Legacy/Analytics/AnalyticsUserProperties.swift b/Stepic/Legacy/Analytics/AnalyticsUserProperties.swift
index 2fa9079950..abcc360cda 100644
--- a/Stepic/Legacy/Analytics/AnalyticsUserProperties.swift
+++ b/Stepic/Legacy/Analytics/AnalyticsUserProperties.swift
@@ -1,8 +1,8 @@
import Amplitude
+import AppMetricaCore
import FirebaseAnalytics
import FirebaseCrashlytics
import UIKit
-import YandexMobileMetrica
final class AnalyticsUserProperties: ABAnalyticsServiceProtocol {
static let shared = AnalyticsUserProperties()
@@ -12,10 +12,10 @@ final class AnalyticsUserProperties: ABAnalyticsServiceProtocol {
func setGroup(test: String, group: String) {
self.setAmplitudeProperty(key: test, value: group)
// AppMetrica
- let userProfile = YMMMutableUserProfile()
- let groupAttribute = YMMProfileAttribute.customString(test)
+ let userProfile = MutableUserProfile()
+ let groupAttribute = ProfileAttribute.customString(test)
userProfile.apply(groupAttribute.withValue(group))
- YMMYandexMetrica.report(userProfile, onFailure: nil)
+ AppMetrica.reportUserProfile(userProfile, onFailure: nil)
}
// MARK: Public API
@@ -31,7 +31,7 @@ final class AnalyticsUserProperties: ABAnalyticsServiceProtocol {
let userProfileID: String? = id != nil ? String(id.require()) : nil
// Update AppMetrica user profile id.
- YMMYandexMetrica.setUserProfileID(userProfileID)
+ AppMetrica.userProfileID = userProfileID
// Update FirebaseAnalytics user profile id.
FirebaseAnalytics.Analytics.setUserID(userProfileID)
}
@@ -158,20 +158,20 @@ final class AnalyticsUserProperties: ABAnalyticsServiceProtocol {
}
private func setYandexMetricaProfileAttributes(_ profileAttributes: [String: Any]) {
- let userProfileUpdates = profileAttributes.map { key, value -> YMMUserProfileUpdate in
+ let userProfileUpdates = profileAttributes.map { key, value -> UserProfileUpdate in
if let boolValue = value as? Bool {
- return YMMProfileAttribute.customBool(key).withValue(boolValue)
+ return ProfileAttribute.customBool(key).withValue(boolValue)
} else if let doubleValue = value as? Double {
- return YMMProfileAttribute.customNumber(key).withValue(doubleValue)
+ return ProfileAttribute.customNumber(key).withValue(doubleValue)
} else {
- return YMMProfileAttribute.customString(key).withValue(String(describing: value))
+ return ProfileAttribute.customString(key).withValue(String(describing: value))
}
}
- let userProfile = YMMMutableUserProfile()
+ let userProfile = MutableUserProfile()
userProfile.apply(from: userProfileUpdates)
- YMMYandexMetrica.report(userProfile) { error in
- print("AnalyticsUserProperties :: YMMYandexMetrica :: failed report userProfile with error = \(error)")
+ AppMetrica.reportUserProfile(userProfile) { error in
+ print("AnalyticsUserProperties :: AppMetrica :: failed report userProfile with error = \(error)")
}
}
diff --git a/Stepic/Legacy/AppDelegate.swift b/Stepic/Legacy/AppDelegate.swift
index a8115d51d2..7cac700fc5 100644
--- a/Stepic/Legacy/AppDelegate.swift
+++ b/Stepic/Legacy/AppDelegate.swift
@@ -17,7 +17,6 @@ import PromiseKit
import SVProgressHUD
import UIKit
import VK_ios_sdk
-import YandexMobileMetrica
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
diff --git a/Stepic/Legacy/Controllers/AdaptiveSteps/Adaptive.storyboard b/Stepic/Legacy/Controllers/AdaptiveSteps/Adaptive.storyboard
index a66eca8893..65b3d86743 100644
--- a/Stepic/Legacy/Controllers/AdaptiveSteps/Adaptive.storyboard
+++ b/Stepic/Legacy/Controllers/AdaptiveSteps/Adaptive.storyboard
@@ -299,7 +299,7 @@
-
+
diff --git a/Stepic/Legacy/Controllers/AdaptiveSteps/Stats/AdaptiveStats/AdaptiveStatsViewController.swift b/Stepic/Legacy/Controllers/AdaptiveSteps/Stats/AdaptiveStats/AdaptiveStatsViewController.swift
index f3b43f0cf9..6da2a71b84 100644
--- a/Stepic/Legacy/Controllers/AdaptiveSteps/Stats/AdaptiveStats/AdaptiveStatsViewController.swift
+++ b/Stepic/Legacy/Controllers/AdaptiveSteps/Stats/AdaptiveStats/AdaptiveStatsViewController.swift
@@ -6,7 +6,7 @@
// Copyright © 2017 Alex Karpov. All rights reserved.
//
-import Charts
+import DGCharts
import UIKit
final class AdaptiveStatsViewController: UIViewController {
diff --git a/Stepic/Legacy/Controllers/Quizzes/CodeQuiz/CodeAnalysis/CodePlaygroundManager.swift b/Stepic/Legacy/Controllers/Quizzes/CodeQuiz/CodeAnalysis/CodePlaygroundManager.swift
index ee6b095bdb..3fc4257671 100644
--- a/Stepic/Legacy/Controllers/Quizzes/CodeQuiz/CodeAnalysis/CodePlaygroundManager.swift
+++ b/Stepic/Legacy/Controllers/Quizzes/CodeQuiz/CodeAnalysis/CodePlaygroundManager.swift
@@ -13,9 +13,8 @@ final class CodePlaygroundManager {
typealias AnalysisResult = (text: String, position: Int, autocomplete: Autocomplete?)
typealias Changes = (isInsertion: Bool, changes: String)
- let closers: [String: String] = ["{": "}", "[": "]", "(": ")", "\"": "\"", "'": "'"]
-
- let allowedCharactersSet = Set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_")
+ private static let closers = ["{": "}", "[": "]", "(": ")", "\"": "\"", "'": "'"]
+ private static let allowedCharactersSet = Set("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_")
var suggestionsController: CodeSuggestionsTableViewController?
var isSuggestionsViewPresented: Bool { self.suggestionsController != nil }
@@ -23,62 +22,25 @@ final class CodePlaygroundManager {
/// Detects the changes string between currentText and previousText.
/// All changes should be a substring inserted somewhere into the string.
func getChangesSubstring(currentText: String, previousText: String) -> Changes {
- var maxString = ""
- var minString = ""
- var isInsertion = true
-
- // Determine if something was deleted or inserted
- if currentText.count > previousText.count {
- maxString = currentText
- minString = previousText
- isInsertion = true
- } else {
- maxString = previousText
- minString = currentText
- isInsertion = false
- }
+ let startIndex = zip(currentText, previousText)
+ .enumerated()
+ .first(where: { $1.0 != $1.1 })?.0 ?? min(currentText.count, previousText.count)
+ let endIndexCurrent = currentText.index(currentText.endIndex, offsetBy: -(currentText.count - startIndex))
+ let endIndexPrevious = previousText.index(previousText.endIndex, offsetBy: -(previousText.count - startIndex))
- // Search for the beginning of the changed substring
- var changesBeginningOffset = 0
- while changesBeginningOffset < minString.count
- && minString[minString.index(minString.startIndex, offsetBy: changesBeginningOffset)]
- == maxString[maxString.index(maxString.startIndex, offsetBy: changesBeginningOffset)] {
- changesBeginningOffset += 1
- }
+ let reversedCurrentText = String(currentText[endIndexCurrent...].reversed())
+ let reversedPreviousText = String(previousText[endIndexPrevious...].reversed())
- minString.removeSubrange(
- minString.startIndex.. previousText.count
+ let changes = isInsertion
+ ? String(currentText.dropFirst(startIndex).dropLast(reversedIndex))
+ : String(previousText.dropFirst(startIndex).dropLast(reversedIndex))
- if !minString.isEmpty {
- minString.removeSubrange(
- minString.index(
- minString.index(before: minString.endIndex),
- offsetBy: -changesEndingOffset + 1
- ).. (shouldMakeNewLine: Bool, paired: Bool) {
- switch language {
- case .python, .python31:
- return symbol == ":"
- ? (shouldMakeNewLine: true, paired: false)
- : (shouldMakeNewLine: false, paired: false)
- case .c,
- .cValgrind,
- .cpp11,
- .cpp,
- .java,
- .java8,
- .java9,
- .java11,
- .java17,
- .cs,
- .csMono,
- .kotlin,
- .swift,
- .rust,
- .javascript,
- .scala,
- .scala3,
- .go,
- .perl,
- .php:
- return symbol == "{"
- ? (shouldMakeNewLine: true, paired: true)
- : (shouldMakeNewLine: false, paired: false)
+ switch symbol {
+ case ":":
+ switch language {
+ case .python, .python31:
+ return (shouldMakeNewLine: true, paired: false)
+ default:
+ return (shouldMakeNewLine: false, paired: false)
+ }
+ case "{":
+ switch language {
+ case .c,
+ .cValgrind,
+ .cpp,
+ .cpp11,
+ .java,
+ .java8,
+ .java9,
+ .java11,
+ .java17,
+ .cs,
+ .csMono,
+ .kotlin,
+ .swift,
+ .rust,
+ .javascript,
+ .scala,
+ .scala3,
+ .go,
+ .perl,
+ .php:
+ return (shouldMakeNewLine: true, paired: true)
+ default:
+ return (shouldMakeNewLine: false, paired: false)
+ }
default:
return (shouldMakeNewLine: false, paired: false)
}
@@ -128,22 +96,30 @@ final class CodePlaygroundManager {
return ""
}
- var offsetBefore = 0
- while let character = text[safe: (cursorPosition - offsetBefore - 1)],
- self.allowedCharactersSet.contains(character) {
- offsetBefore += 1
- }
+ let startIndex = text.startIndex
+ let cursorIndex = text.index(startIndex, offsetBy: cursorPosition, limitedBy: text.endIndex) ?? text.endIndex
- var offsetAfter = 0
- while let character = text[safe: (cursorPosition + offsetAfter)],
- self.allowedCharactersSet.contains(character) {
- offsetAfter += 1
+ var beforeCursorIndex = cursorIndex
+ while beforeCursorIndex > text.startIndex {
+ let prevIndex = text.index(before: beforeCursorIndex)
+ if Self.allowedCharactersSet.contains(text[prevIndex]) {
+ beforeCursorIndex = prevIndex
+ } else {
+ break
+ }
}
- let beforeCursorString = text[safe: (cursorPosition - offsetBefore).. AnalysisResult? {
guard changes.isInsertion,
- let closer = closers[changes.changes] else {
+ let closer = Self.closers[changes.changes] else {
return nil
}
@@ -250,16 +226,16 @@ final class CodePlaygroundManager {
// Check if there is text after the bracket, not a \n or whitespace
let cursorIndex = text.index(text.startIndex, offsetBy: cursorPosition)
+
if cursorIndex != text.endIndex {
let textAfter = String(text[cursorIndex...])
if let indexOfLineEndAfter = textAfter.indexOf("\n") {
let line = String(textAfter[.. Int {
- var minTabSize = 100
+ var minTabSize = Int.max
text.enumerateLines { line, _ in
- var spacesBeforeFirstCharacter = 0
-
- for character in line {
- if character == " " {
- spacesBeforeFirstCharacter += 1
- } else {
- break
- }
- }
-
- if spacesBeforeFirstCharacter > 0 && minTabSize > spacesBeforeFirstCharacter {
- minTabSize = spacesBeforeFirstCharacter
+ let leadingSpaces = line.prefix(while: { $0 == " " }).count
+ // Update the minimum tab size if this line has leading spaces and it's fewer than any previous line
+ if leadingSpaces > 0 {
+ minTabSize = min(minTabSize, leadingSpaces)
}
}
- if minTabSize == 100 {
- minTabSize = 4
- }
-
- return minTabSize
+ return minTabSize == Int.max ? 4 : minTabSize
}
private func hideSuggestions() {
@@ -429,8 +393,8 @@ final class CodePlaygroundManager {
func textRangeFrom(position: Int, textView: UITextView) -> UITextRange {
let firstCharacterPosition = textView.beginningOfDocument
- let characterPosition = textView.position(from: firstCharacterPosition, offset: position)!
- let characterRange = textView.textRange(from: characterPosition, to: characterPosition)!
+ let characterPosition = textView.position(from: firstCharacterPosition, offset: position).require()
+ let characterRange = textView.textRange(from: characterPosition, to: characterPosition).require()
return characterRange
}
@@ -439,13 +403,18 @@ final class CodePlaygroundManager {
return
}
- let cursorPosition = textView.offset(from: textView.beginningOfDocument, to: selectedRange.start)
- var text = textView.text!
- text.insert(contentsOf: symbols, at: text.index(text.startIndex, offsetBy: cursorPosition))
- textView.text = text
- // Import here to update selectedTextRange before calling textViewDidChange #APPS-2352
- textView.selectedTextRange = self.textRangeFrom(position: cursorPosition + symbols.count, textView: textView)
- // Manually call textViewDidChange, becuase when manually setting the text of a UITextView with code,
+ if selectedRange.isEmpty {
+ let cursorPosition = textView.offset(from: textView.beginningOfDocument, to: selectedRange.start)
+ var text = textView.text ?? ""
+ text.insert(contentsOf: symbols, at: text.index(text.startIndex, offsetBy: cursorPosition))
+ textView.text = text
+ // Import here to update selectedTextRange before calling textViewDidChange #APPS-2352
+ textView.selectedTextRange = textRangeFrom(position: cursorPosition + symbols.count, textView: textView)
+ } else {
+ textView.replace(selectedRange, withText: symbols)
+ }
+
+ // Manually call textViewDidChange, because when manually setting the text of a UITextView with code,
// the textViewDidChange: method does not get called.
textView.delegate?.textViewDidChange?(textView)
}
diff --git a/Stepic/Legacy/Helpers/AnalyticsHelper.swift b/Stepic/Legacy/Helpers/AnalyticsHelper.swift
index 9751354145..188a361ee6 100644
--- a/Stepic/Legacy/Helpers/AnalyticsHelper.swift
+++ b/Stepic/Legacy/Helpers/AnalyticsHelper.swift
@@ -10,7 +10,7 @@ import Amplitude
import Firebase
import FirebaseCore
import UIKit
-import YandexMobileMetrica
+import AppMetricaCore
final class AnalyticsHelper {
static var sharedHelper = AnalyticsHelper()
@@ -18,8 +18,12 @@ final class AnalyticsHelper {
func setupAnalytics() {
FirebaseApp.configure()
- if let config = YMMYandexMetricaConfiguration(apiKey: Tokens.shared.appMetricaToken) {
- YMMYandexMetrica.activate(with: config)
+ if let configuration = AppMetricaConfiguration(apiKey: Tokens.shared.appMetricaToken) {
+ AppMetrica.activate(with: configuration)
+ } else {
+ #if DEBUG
+ print("AnalyticsHelper :: failed to initialize AppMetrica")
+ #endif
}
Amplitude.instance().initializeApiKey(Tokens.shared.amplitudeToken)
diff --git a/Stepic/Legacy/Model/Network/Endpoints/CoursesAPI.swift b/Stepic/Legacy/Model/Network/Endpoints/CoursesAPI.swift
index 8d31eeec0a..c9d776f151 100644
--- a/Stepic/Legacy/Model/Network/Endpoints/CoursesAPI.swift
+++ b/Stepic/Legacy/Model/Network/Endpoints/CoursesAPI.swift
@@ -34,7 +34,11 @@ final class CoursesAPI: APIEndpoint {
return .value([])
}
- return self.getObjectsByIds(ids: ids, updating: existing)
+ if RemoteConfig.shared.coursesApiFilterFreeOnly {
+ return self.getObjectsByIds(ids: ids, updating: existing).filterValues({ !$0.isPaid })
+ } else {
+ return self.getObjectsByIds(ids: ids, updating: existing)
+ }
}
@available(*, deprecated, message: "Legacy: we want to pass existing")
@@ -47,9 +51,22 @@ final class CoursesAPI: APIEndpoint {
return .value([])
}
- return self.coursesPersistenceService.fetch(ids: ids).then { cachedCourses, _ in
- self.getObjectsByIds(ids: ids, updating: cachedCourses)
- }.then { self.indexCoursesInSpotlight($0) }
+ if RemoteConfig.shared.coursesApiFilterFreeOnly {
+ return self.coursesPersistenceService
+ .fetch(ids: ids)
+ .then { cachedCourses, _ in
+ self.getObjectsByIds(ids: ids, updating: cachedCourses)
+ }
+ .then { self.indexCoursesInSpotlight($0) }
+ .filterValues({ !$0.isPaid })
+ } else {
+ return self.coursesPersistenceService
+ .fetch(ids: ids)
+ .then { cachedCourses, _ in
+ self.getObjectsByIds(ids: ids, updating: cachedCourses)
+ }
+ .then { self.indexCoursesInSpotlight($0) }
+ }
}
func retrieve(
@@ -120,13 +137,34 @@ final class CoursesAPI: APIEndpoint {
params["page"] = page
- return self.retrieve.requestWithFetching(
- requestEndpoint: "courses",
- paramName: "courses",
- params: params,
- withManager: self.manager
- ).then { courses, meta in
- self.indexCoursesInSpotlight(courses).map { _ in (courses, meta) }
+ if RemoteConfig.shared.coursesApiFilterFreeOnly {
+ return self.retrieve
+ .requestWithFetching(
+ requestEndpoint: "courses",
+ paramName: "courses",
+ params: params,
+ withManager: self.manager
+ )
+ .then { courses, meta in
+ self.indexCoursesInSpotlight(courses)
+ .map { _ in
+ (courses.filter({ !$0.isPaid }), meta)
+ }
+ }
+ } else {
+ return self.retrieve
+ .requestWithFetching(
+ requestEndpoint: "courses",
+ paramName: "courses",
+ params: params,
+ withManager: self.manager
+ )
+ .then { courses, meta in
+ self.indexCoursesInSpotlight(courses)
+ .map { _ in
+ (courses, meta)
+ }
+ }
}
}
diff --git a/Stepic/Legacy/Model/RemoteConfig/RemoteConfig.swift b/Stepic/Legacy/Model/RemoteConfig/RemoteConfig.swift
index 032c124508..d17fd4d28b 100644
--- a/Stepic/Legacy/Model/RemoteConfig/RemoteConfig.swift
+++ b/Stepic/Legacy/Model/RemoteConfig/RemoteConfig.swift
@@ -43,7 +43,8 @@ The price includes commission from App Store and VAT. By paying for access to th
Key.purchaseFlowDisclaimerRussian.rawValue: NSString(string: Self.defaultPurchaseFlowDisclaimerRussian),
Key.purchaseFlowDisclaimerEnglish.rawValue: NSString(string: Self.defaultPurchaseFlowDisclaimerEnglish),
Key.purchaseFlowPromoCodeEnabled.rawValue: NSNumber(value: false),
- Key.purchaseFlowStartFlowFromCourseScreenEnabled.rawValue: NSNumber(value: false)
+ Key.purchaseFlowStartFlowFromCourseScreenEnabled.rawValue: NSNumber(value: false),
+ Key.coursesApiFilterFreeOnly.rawValue: NSNumber(value: true)
]
var showStreaksNotificationTrigger: ShowStreaksNotificationTrigger {
@@ -137,6 +138,10 @@ The price includes commission from App Store and VAT. By paying for access to th
self.getStringValueFromDelegateOrRemoteConfigForKey(.promoBanners)
}
+ var coursesApiFilterFreeOnly: Bool {
+ self.getNSStringValueFromDelegateOrRemoteConfigForKey(.coursesApiFilterFreeOnly)?.boolValue ?? true
+ }
+
init(delegate: RemoteConfigDelegate? = nil) {
self.delegate = delegate
@@ -254,6 +259,7 @@ The price includes commission from App Store and VAT. By paying for access to th
case purchaseFlowPromoCodeEnabled = "purchase_flow_ios_promocode_enabled"
case purchaseFlowStartFlowFromCourseScreenEnabled = "purchase_flow_ios_start_flow_from_course_screen_enabled"
case promoBanners = "promo_banners_ios"
+ case coursesApiFilterFreeOnly = "ios_courses_api_filter_free_only"
var valueDataType: ValueDataType { .string }
diff --git a/Stepic/Legacy/Services/DeepLinks/BranchService.swift b/Stepic/Legacy/Services/DeepLinks/BranchService.swift
index 051ef70bf1..ed83d1bd2d 100644
--- a/Stepic/Legacy/Services/DeepLinks/BranchService.swift
+++ b/Stepic/Legacy/Services/DeepLinks/BranchService.swift
@@ -6,7 +6,7 @@
// Copyright © 2018 Alex Karpov. All rights reserved.
//
-import Branch
+import BranchSDK
import Foundation
final class BranchService {
diff --git a/Stepic/Sources/Common/ImageDataProvider.swift b/Stepic/Sources/Common/ImageDataProvider.swift
index c7310538a9..f082ed379e 100644
--- a/Stepic/Sources/Common/ImageDataProvider.swift
+++ b/Stepic/Sources/Common/ImageDataProvider.swift
@@ -112,5 +112,5 @@ final class NukeImageDataProvider: ImageDataProvider {
return imageContainer.image.jpegData(compressionQuality: self.compressionQuality)
}
- var contentURL: URL? { self.imageRequest.urlRequest.url }
+ var contentURL: URL? { self.imageRequest.urlRequest?.url }
}
diff --git a/Stepic/Sources/Frameworks/Analytics/AnalyticsEngine.swift b/Stepic/Sources/Frameworks/Analytics/AnalyticsEngine.swift
index ec6771075e..915a6d710b 100644
--- a/Stepic/Sources/Frameworks/Analytics/AnalyticsEngine.swift
+++ b/Stepic/Sources/Frameworks/Analytics/AnalyticsEngine.swift
@@ -1,7 +1,7 @@
import Amplitude
+import AppMetricaCore
import FirebaseAnalytics
import Foundation
-import YandexMobileMetrica
protocol AnalyticsEngine: AnyObject {
func sendAnalyticsEvent(named name: String, parameters: [String: Any]?, forceSend: Bool)
@@ -74,7 +74,7 @@ final class AppMetricaAnalyticsEngine: AnalyticsEngine {
init() {}
func sendAnalyticsEvent(named name: String, parameters: [String: Any]?, forceSend: Bool) {
- YMMYandexMetrica.reportEvent(name, parameters: parameters) { error in
+ AppMetrica.reportEvent(name: name, parameters: parameters) { error in
if LaunchArguments.analyticsDebugEnabled {
print(
"""
diff --git a/Stepic/Sources/Frameworks/InAppPurchases/IAPProductsService.swift b/Stepic/Sources/Frameworks/InAppPurchases/IAPProductsService.swift
index 0a40c58216..6813c94a00 100644
--- a/Stepic/Sources/Frameworks/InAppPurchases/IAPProductsService.swift
+++ b/Stepic/Sources/Frameworks/InAppPurchases/IAPProductsService.swift
@@ -133,7 +133,7 @@ final class IAPProductsService: IAPProductsServiceProtocol {
// MARK: - IAPProductRequest: NSObject, SKProductsRequestDelegate -
-fileprivate final class IAPProductRequest: NSObject, SKProductsRequestDelegate {
+private final class IAPProductRequest: NSObject, SKProductsRequestDelegate {
typealias CompletionHandler = (Swift.Result<[SKProduct], Swift.Error>) -> Void
private let request: SKProductsRequest
diff --git a/Stepic/Sources/Frameworks/InAppPurchases/IAPReceiptValidationService.swift b/Stepic/Sources/Frameworks/InAppPurchases/IAPReceiptValidationService.swift
index 590af8397b..7af3bdc86b 100644
--- a/Stepic/Sources/Frameworks/InAppPurchases/IAPReceiptValidationService.swift
+++ b/Stepic/Sources/Frameworks/InAppPurchases/IAPReceiptValidationService.swift
@@ -145,7 +145,7 @@ final class IAPReceiptValidationService: IAPReceiptValidationServiceProtocol {
// MARK: - IAPReceiptRefreshRequest: NSObject, SKRequestDelegate -
-fileprivate final class IAPReceiptRefreshRequest: NSObject, SKRequestDelegate {
+private final class IAPReceiptRefreshRequest: NSObject, SKRequestDelegate {
typealias CompletionHandler = (ResultType) -> Void
private let request: SKReceiptRefreshRequest
diff --git a/Stepic/Sources/Frameworks/Notifications/Registration/NotificationsRegistrationService.swift b/Stepic/Sources/Frameworks/Notifications/Registration/NotificationsRegistrationService.swift
index 141ffdd84b..49ec2c611a 100644
--- a/Stepic/Sources/Frameworks/Notifications/Registration/NotificationsRegistrationService.swift
+++ b/Stepic/Sources/Frameworks/Notifications/Registration/NotificationsRegistrationService.swift
@@ -222,7 +222,7 @@ final class NotificationsRegistrationService: NotificationsRegistrationServicePr
remoteDevice.isBadgesEnabled = true
return ApiDataDownloader.devices.update(remoteDevice)
}
- }.done { device -> Void in
+ }.done { device in
print("NotificationsRegistrationService: device registered, info = \(device.json)")
DeviceDefaults.sharedDefaults.deviceId = device.id
}.catch { error in
diff --git a/Stepic/Sources/Modules/CourseInfoSubmodules/CourseInfoTabNews/Views/CourseInfoTabNewsTableViewAdapter.swift b/Stepic/Sources/Modules/CourseInfoSubmodules/CourseInfoTabNews/Views/CourseInfoTabNewsTableViewAdapter.swift
index b9e20295ef..af92b01088 100644
--- a/Stepic/Sources/Modules/CourseInfoSubmodules/CourseInfoTabNews/Views/CourseInfoTabNewsTableViewAdapter.swift
+++ b/Stepic/Sources/Modules/CourseInfoSubmodules/CourseInfoTabNews/Views/CourseInfoTabNewsTableViewAdapter.swift
@@ -121,8 +121,14 @@ extension CourseInfoTabNewsTableViewAdapter: UITableViewDataSource {
self.cellHeightCache[viewModelUniqueIdentifier] = newHeight
- let workItem = DispatchWorkItem { [weak tableView] in
- guard let strongTableView = tableView else {
+ let workItem = DispatchWorkItem { [weak self, weak tableView] in
+ guard let strongSelf = self,
+ let strongTableView = tableView else {
+ return
+ }
+
+ guard !strongSelf.viewModels.isEmpty
+ && strongTableView.dataSource != nil else {
return
}
diff --git a/Stepic/Stepic-Bridging-Header.h b/Stepic/Stepic-Bridging-Header.h
index 934ec07d96..902411584a 100644
--- a/Stepic/Stepic-Bridging-Header.h
+++ b/Stepic/Stepic-Bridging-Header.h
@@ -1,5 +1,4 @@
#import
-#import
#import "ExceptionCatcher.h"
#import "WKWebViewPanelManager.h"
diff --git a/StepicTests/Info-Develop.plist b/StepicTests/Info-Develop.plist
index f16b5e37dd..2f24517018 100644
--- a/StepicTests/Info-Develop.plist
+++ b/StepicTests/Info-Develop.plist
@@ -15,10 +15,10 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 1.219.2-develop
+ 1.220-develop
CFBundleSignature
????
CFBundleVersion
- 437
+ 441
diff --git a/StepicTests/Info-Production.plist b/StepicTests/Info-Production.plist
index 5508f3b03b..05c9c72f0b 100644
--- a/StepicTests/Info-Production.plist
+++ b/StepicTests/Info-Production.plist
@@ -15,10 +15,10 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 1.219.2
+ 1.220
CFBundleSignature
????
CFBundleVersion
- 437
+ 441
diff --git a/StepicTests/Info-Release.plist b/StepicTests/Info-Release.plist
index d86cc2a941..824815409c 100644
--- a/StepicTests/Info-Release.plist
+++ b/StepicTests/Info-Release.plist
@@ -15,10 +15,10 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 1.219.2-release
+ 1.220-release
CFBundleSignature
????
CFBundleVersion
- 437
+ 441
diff --git a/StepicUITests/Info-Develop.plist b/StepicUITests/Info-Develop.plist
index bac3b6b782..3114dba4f4 100644
--- a/StepicUITests/Info-Develop.plist
+++ b/StepicUITests/Info-Develop.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2-develop
+ 1.220-develop
CFBundleVersion
- 437
+ 441
diff --git a/StepicUITests/Info-Production.plist b/StepicUITests/Info-Production.plist
index 8462164916..ea1a0cb19e 100644
--- a/StepicUITests/Info-Production.plist
+++ b/StepicUITests/Info-Production.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2
+ 1.220
CFBundleVersion
- 437
+ 441
diff --git a/StepicUITests/Info-Release.plist b/StepicUITests/Info-Release.plist
index 2720639f6b..389044a55d 100644
--- a/StepicUITests/Info-Release.plist
+++ b/StepicUITests/Info-Release.plist
@@ -15,8 +15,8 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2-release
+ 1.220-release
CFBundleVersion
- 437
+ 441
diff --git a/StepicWidget/Info-Develop.plist b/StepicWidget/Info-Develop.plist
index 1c97c7d59b..55abc4dfa6 100644
--- a/StepicWidget/Info-Develop.plist
+++ b/StepicWidget/Info-Develop.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2-develop
+ 1.220-develop
CFBundleVersion
- 437
+ 441
NSExtension
NSExtensionPointIdentifier
diff --git a/StepicWidget/Info-Production.plist b/StepicWidget/Info-Production.plist
index d04d5f54bc..553e2b38a5 100644
--- a/StepicWidget/Info-Production.plist
+++ b/StepicWidget/Info-Production.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2
+ 1.220
CFBundleVersion
- 437
+ 441
NSExtension
NSExtensionPointIdentifier
diff --git a/StepicWidget/Info-Release.plist b/StepicWidget/Info-Release.plist
index e51e058f45..6f63985f3a 100644
--- a/StepicWidget/Info-Release.plist
+++ b/StepicWidget/Info-Release.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 1.219.2-release
+ 1.220-release
CFBundleVersion
- 437
+ 441
NSExtension
NSExtensionPointIdentifier
diff --git a/StepicWidget/Sources/StepicWidget.swift b/StepicWidget/Sources/StepicWidget.swift
index b15ecd9606..dd10064449 100644
--- a/StepicWidget/Sources/StepicWidget.swift
+++ b/StepicWidget/Sources/StepicWidget.swift
@@ -12,6 +12,28 @@ struct StepicWidget: Widget {
.configurationDisplayName("ConfigurationDisplayName")
.description("ConfigurationDescription")
.supportedFamilies([.systemSmall, .systemMedium])
+ .safeContentMarginsDisabled()
+ }
+}
+
+extension View {
+ @ViewBuilder
+ func safeContainerBackground(@ViewBuilder content: () -> some View) -> some View {
+ if #available(iOS 17.0, *) {
+ self.containerBackground(for: .widget, content: content)
+ } else {
+ self.background(content())
+ }
+ }
+}
+
+extension WidgetConfiguration {
+ func safeContentMarginsDisabled() -> some WidgetConfiguration {
+ if #available(iOS 15.0, *) {
+ return contentMarginsDisabled()
+ } else {
+ return self
+ }
}
}
diff --git a/StepicWidget/Sources/Views/EntryView/ContinueCourseView.swift b/StepicWidget/Sources/Views/EntryView/ContinueCourseView.swift
index f1c3df7115..47a27943a9 100644
--- a/StepicWidget/Sources/Views/EntryView/ContinueCourseView.swift
+++ b/StepicWidget/Sources/Views/EntryView/ContinueCourseView.swift
@@ -54,7 +54,7 @@ struct ContinueCourseView: View {
}
.padding()
.foregroundColor(Color.white)
- .background(Color.backgroundColor)
+ .safeContainerBackground { Color.backgroundColor }
}
private var emptyView: some View {
@@ -88,7 +88,7 @@ struct ContinueCourseView: View {
}
.padding()
.foregroundColor(Color.white)
- .background(Color.backgroundColor)
+ .safeContainerBackground { Color.backgroundColor }
}
}
diff --git a/StepicWidget/Sources/Views/EntryView/ContinueCourseWithCourseListView.swift b/StepicWidget/Sources/Views/EntryView/ContinueCourseWithCourseListView.swift
index 5a8c8de7cd..e6cfb4278b 100644
--- a/StepicWidget/Sources/Views/EntryView/ContinueCourseWithCourseListView.swift
+++ b/StepicWidget/Sources/Views/EntryView/ContinueCourseWithCourseListView.swift
@@ -38,7 +38,7 @@ struct ContinueCourseWithCourseListView: View {
.background(Color.black.opacity(0.15))
}
.foregroundColor(Color.white)
- .background(Color.backgroundColor)
+ .safeContainerBackground { Color.backgroundColor }
}
private var primaryCourseView: some View {
diff --git a/StickerPackExtension/Info-Develop.plist b/StickerPackExtension/Info-Develop.plist
index 2b87af752c..925ca2e833 100644
--- a/StickerPackExtension/Info-Develop.plist
+++ b/StickerPackExtension/Info-Develop.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
XPC!
CFBundleShortVersionString
- 1.219.2-develop
+ 1.220-develop
CFBundleVersion
- 437
+ 441
UIRequiredDeviceCapabilities
arm64
diff --git a/StickerPackExtension/Info-Production.plist b/StickerPackExtension/Info-Production.plist
index a5d87b3eba..2fce90d9a6 100644
--- a/StickerPackExtension/Info-Production.plist
+++ b/StickerPackExtension/Info-Production.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
XPC!
CFBundleShortVersionString
- 1.219.2
+ 1.220
CFBundleVersion
- 437
+ 441
UIRequiredDeviceCapabilities
arm64
diff --git a/StickerPackExtension/Info-Release.plist b/StickerPackExtension/Info-Release.plist
index 6f04310b3a..797892f1ac 100644
--- a/StickerPackExtension/Info-Release.plist
+++ b/StickerPackExtension/Info-Release.plist
@@ -17,9 +17,9 @@
CFBundlePackageType
XPC!
CFBundleShortVersionString
- 1.219.2-release
+ 1.220-release
CFBundleVersion
- 437
+ 441
UIRequiredDeviceCapabilities
arm64
diff --git a/autocorrect.sh b/autocorrect.sh
index dd34b84bff..a393eda342 100755
--- a/autocorrect.sh
+++ b/autocorrect.sh
@@ -1,9 +1,9 @@
target_name=$1
if [[ $target_name == "Stepic" ]]; then
- path="Stepic/Sources"
+ path="${PWD}/Stepic/Sources"
elif [[ $target_name == "StepicUITests" ]]; then
- path="StepicUITests/"
+ path="${PWD}/StepicUITests"
else
echo "warning: unknown target name ${target_name}"
fi
@@ -15,11 +15,11 @@ fi
swiftlint_executable="${PWD}/Pods/SwiftLint/swiftlint"
if [[ -f $swiftlint_executable ]]; then
- if [[ $target_name == "Stepic" ]]; then
- $swiftlint_executable --fix --config ${PWD}/.swiftlint.yml --path $path
- else
- $swiftlint_executable --fix --config ${PWD}/.swiftlint.yml --path $path --format
- fi
+ if [[ $target_name == "Stepic" ]]; then
+ $swiftlint_executable --fix --config "${PWD}/.swiftlint.yml" "$path"
+ else
+ $swiftlint_executable --fix --config "${PWD}/.swiftlint.yml" "$path" --format
+ fi
else
- echo "warning: SwiftLint not installed, run pod install"
-fi
\ No newline at end of file
+ echo "warning: SwiftLint not installed, run pod install"
+fi
diff --git a/fastlane/Appfile b/fastlane/Appfile
index 40121e91e8..4bfa04a064 100644
Binary files a/fastlane/Appfile and b/fastlane/Appfile differ
diff --git a/fastlane/Fastfile b/fastlane/Fastfile
index 562b1b4459..8b73403971 100644
--- a/fastlane/Fastfile
+++ b/fastlane/Fastfile
@@ -1,4 +1,4 @@
-fastlane_version "2.214.0"
+fastlane_version "2.225.0"
default_platform :ios
diff --git a/lint.sh b/lint.sh
index 41e49fced1..64a3988bec 100755
--- a/lint.sh
+++ b/lint.sh
@@ -1,9 +1,9 @@
target_name=$1
if [[ $target_name == "Stepic" ]]; then
- path="Stepic/Sources"
+ path="${PWD}/Stepic/Sources"
elif [[ $target_name == "StepicUITests" ]]; then
- path="StepicUITests/"
+ path="${PWD}/StepicUITests"
else
echo "warning: unknown target name ${target_name}"
fi
@@ -15,7 +15,7 @@ fi
swiftlint_executable="${PWD}/Pods/SwiftLint/swiftlint"
if [[ -f $swiftlint_executable ]]; then
- $swiftlint_executable lint --config ${PWD}/.swiftlint.yml --path $path
+ $swiftlint_executable lint --config "${PWD}/.swiftlint.yml" "$path"
else
- echo "warning: SwiftLint not installed, run pod install"
-fi
\ No newline at end of file
+ echo "warning: SwiftLint not installed, run pod install"
+fi