Skip to content

Commit

Permalink
release version 2.12.0
Browse files Browse the repository at this point in the history
  • Loading branch information
mulp committed May 26, 2021
1 parent ad1a289 commit 9918dc3
Show file tree
Hide file tree
Showing 30 changed files with 351 additions and 166 deletions.
8 changes: 4 additions & 4 deletions AptoUISDK.podspec
Expand Up @@ -8,15 +8,15 @@

Pod::Spec.new do |s|
s.name = "AptoUISDK"
s.version = "2.11.1"
s.version = "2.12.0"
s.summary = "The Apto UI platform iOS SDK."
s.description = <<-DESC
Apto iOS UI SDK provides a UI flow that allows to easily integrate the platform in your app.
DESC
s.homepage = "https://github.com/AptoPayments/apto-ui-sdk-ios.git"
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.authors = { "Ivan Oliver" => "ivan@aptopayments.com", "Takeichi Kanzaki" => "takeichi@aptopayments.com" }
s.source = { :git => "https://github.com/AptoPayments/apto-ui-sdk-ios.git", :tag => "2.11.1" }
s.source = { :git => "https://github.com/AptoPayments/apto-ui-sdk-ios.git", :tag => "2.12.0" }

s.platform = :ios
s.ios.deployment_target = '10.0'
Expand All @@ -29,10 +29,10 @@ Pod::Spec.new do |s|

s.module_name = 'AptoUISDK'
s.source_files = ['Pod/Classes/ui/**/*.swift']
s.resources = ["Pod/Assets/*.png", "Pod/Assets/*.css", "Pod/Localization/*.lproj", "Pod/Assets/*.xcassets", "Pod/Fonts/*.ttf"]
s.resources = ["Pod/Assets/*.png", "Pod/Assets/*.css", "Pod/Localization/*.lproj", "Pod/Assets/*.xcassets", "Pod/Fonts/*.ttf", "Pod/CHANGELOG_ui.md"]

s.frameworks = 'UIKit', 'CoreLocation', 'Accelerate', 'AudioToolbox', 'AVFoundation', 'CoreGraphics', 'CoreMedia', 'CoreVideo', 'Foundation', 'MobileCoreServices', 'OpenGLES', 'QuartzCore', 'Security', 'LocalAuthentication', 'CallKit'
s.dependency 'AptoSDK', '3.3.0'
s.dependency 'AptoSDK', '3.4.0'
s.dependency 'AptoPCI', '2.1.0'
s.dependency 'SnapKit', '~> 5.0'
s.dependency 'Bond', '~> 7.6'
Expand Down
8 changes: 3 additions & 5 deletions Example/Podfile
Expand Up @@ -6,8 +6,8 @@ def runtimepods
pod 'AptoSDK'
pod 'AptoUISDK'
pod 'AptoObjCSDK'
pod 'Alamofire', '~> 4.8'
pod 'AlamofireNetworkActivityIndicator', '2.3.0'
pod 'Alamofire', '~> 5.4.3'
pod 'AlamofireNetworkActivityIndicator', '3.1'
pod 'FTLinearActivityIndicator', '1.2.1'
pod 'SwiftyJSON', '~> 5.0'
pod 'SnapKit', '~> 5.0'
Expand All @@ -20,7 +20,7 @@ def runtimepods
pod 'PullToRefreshKit', '~> 0.8', :inhibit_warnings => true
pod 'Mixpanel-swift', '~> 2.7', :inhibit_warnings => true
pod 'Branch', '~> 0.33.1'
pod 'AlamofireNetworkActivityLogger', '~> 2.0'
pod 'AlamofireNetworkActivityLogger', '~> 3.4.0'
end

target :Demo do
Expand All @@ -34,8 +34,6 @@ target :Demo do
end
target 'AutomationTests' do
inherit! :search_paths
pod 'KIF', '3.6.0', :configurations => ['Local','Stg','Dev']
pod 'Alamofire-Synchronous', '4.0.0', :configurations => ['Local','Stg','Dev']
end
end

Expand Down
49 changes: 19 additions & 30 deletions Example/Podfile.lock
@@ -1,27 +1,25 @@
PODS:
- Alamofire (4.9.1)
- Alamofire-Synchronous (4.0.0):
- Alamofire (~> 4.0)
- AlamofireNetworkActivityIndicator (2.3.0):
- Alamofire (~> 4.7)
- AlamofireNetworkActivityLogger (2.4.0):
- Alamofire (~> 4.8)
- Alamofire (5.4.3)
- AlamofireNetworkActivityIndicator (3.1.0):
- Alamofire (~> 5.1)
- AlamofireNetworkActivityLogger (3.4.0):
- Alamofire (~> 5.4.0)
- AptoObjCSDK (1.1.0):
- AptoSDK
- AptoPCI (2.1.0)
- AptoSDK (3.3.0):
- Alamofire (~> 4.8)
- AlamofireNetworkActivityIndicator (~> 2.2)
- AptoSDK (3.4.0):
- Alamofire (~> 5.4.3)
- AlamofireNetworkActivityIndicator (~> 3.1)
- Bond (~> 7.6)
- FTLinearActivityIndicator (= 1.2.1)
- GoogleKit (~> 0.3)
- Mixpanel-swift (~> 2.7)
- PhoneNumberKit (~> 3.2)
- SwiftyJSON (~> 5.0)
- TrustKit (~> 1.6)
- AptoUISDK (2.11.0):
- AptoUISDK (2.11.1):
- AptoPCI (= 2.1.0)
- AptoSDK (= 3.3.0)
- AptoSDK (= 3.4.0)
- Bond (~> 7.6)
- Down (~> 0.8.0)
- GoogleKit (~> 0.3)
Expand All @@ -41,9 +39,6 @@ PODS:
- Down (0.8.6)
- FTLinearActivityIndicator (1.2.1)
- GoogleKit (0.3.2)
- KIF (3.6.0):
- KIF/Core (= 3.6.0)
- KIF/Core (3.6.0)
- Mixpanel-swift (2.8.1):
- Mixpanel-swift/Complete (= 2.8.1)
- Mixpanel-swift/Complete (2.8.1)
Expand All @@ -63,10 +58,9 @@ PODS:
- TwilioVoice (5.0.0)

DEPENDENCIES:
- Alamofire (~> 4.8)
- Alamofire-Synchronous (= 4.0.0)
- AlamofireNetworkActivityIndicator (= 2.3.0)
- AlamofireNetworkActivityLogger (~> 2.0)
- Alamofire (~> 5.4.3)
- AlamofireNetworkActivityIndicator (= 3.1)
- AlamofireNetworkActivityLogger (~> 3.4.0)
- AptoObjCSDK (from `../`)
- AptoSDK (from `../`)
- AptoUISDK (from `../`)
Expand All @@ -75,7 +69,6 @@ DEPENDENCIES:
- Down (~> 0.8)
- FTLinearActivityIndicator (= 1.2.1)
- GoogleKit (= 0.3.2)
- KIF (= 3.6.0)
- Mixpanel-swift (~> 2.7)
- PhoneNumberKit (~> 3.2)
- PullToRefreshKit (~> 0.8)
Expand All @@ -88,7 +81,6 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- Alamofire
- Alamofire-Synchronous
- AlamofireNetworkActivityIndicator
- AlamofireNetworkActivityLogger
- AptoPCI
Expand All @@ -98,7 +90,6 @@ SPEC REPOS:
- Down
- FTLinearActivityIndicator
- GoogleKit
- KIF
- Mixpanel-swift
- PhoneNumberKit
- PullToRefreshKit
Expand All @@ -119,21 +110,19 @@ EXTERNAL SOURCES:
:path: "../"

SPEC CHECKSUMS:
Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18
Alamofire-Synchronous: eedf1e6e961c3795a63c74990b3f7d9fbfac7e50
AlamofireNetworkActivityIndicator: 18346ff6d770d9513d0ac6f2d99706f40f93dbaa
AlamofireNetworkActivityLogger: 6d3398c692d2c5d83b0c58793537860aca1e383d
Alamofire: e447a2774a40c996748296fa2c55112fdbbc42f9
AlamofireNetworkActivityIndicator: 6564782bd7b9e6c430ae67d9277af01907b01ca4
AlamofireNetworkActivityLogger: 162ab8aee00e6267a4304d7cc134e13ccfe3bcc5
AptoObjCSDK: 818ed46d0b6328d9ec76f32ab39e51d8ed8dffb1
AptoPCI: 8a85a014534b5d9036170e3698309de4fa51bc88
AptoSDK: 10edcc189cd9e7eff3da131f6a1a2460b31b6d60
AptoUISDK: 72aadb52ee3ea48355f53df782ff8464a4556d6e
AptoSDK: 95b488240ddf27c607a0b4189c22c4681aeaa308
AptoUISDK: 6a140476051a2212677187d8e170578bc7c1e84c
Bond: 87075c7f20f37ea3e73dc7057fce839787bf46eb
Branch: 65d05ffb137ef504777cff6bd4fb6f770f17145a
Differ: 3b6bd78e2b20cc795d9a86f7641d087524e4273e
Down: 3c758f2388fa739663023f400e742a988fa1e21d
FTLinearActivityIndicator: a3ef57034bd05bc80c1a7c62c8797c0361fa7bee
GoogleKit: c4b00706a0b1091b295e59920bbd46fd30f74243
KIF: bd770edd8ce49bc7308501e4871e58a02d137be3
Mixpanel-swift: 9d3a2597ef015f187abae0bfa5fda5997d5e4429
PhoneNumberKit: ff153d5e299f6da566cb73c6aa71e354933b2932
PullToRefreshKit: 7cc53e720e69f135cffa1a57784dfb534f0222ab
Expand All @@ -145,6 +134,6 @@ SPEC CHECKSUMS:
TTTAttributedLabel: 8cffe8e127e4e82ff3af1e5386d4cd0ad000b656
TwilioVoice: b75c5120e1e6a7402fd1f9f4917e8215ce8d7baf

PODFILE CHECKSUM: 1a9a8efa2a05f4b43b3592d3edc764c29e58ce4c
PODFILE CHECKSUM: 1b2fca629e78563c2b0c2c3415b15b7078c415b3

COCOAPODS: 1.10.1
35 changes: 12 additions & 23 deletions Example/ShiftSDK.xcodeproj/project.pbxproj
Expand Up @@ -240,6 +240,7 @@
E559808978340FABA714EBC0 /* Pods_SnapshotTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6BA64FF7BC6649A5EE5D70C7 /* Pods_SnapshotTests.framework */; };
E571DB11260DE62600A5C533 /* UIButton+TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E571DB10260DE62600A5C533 /* UIButton+TestHelpers.swift */; };
E571DB16260DE64F00A5C533 /* UIControl+TestHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = E571DB15260DE64F00A5C533 /* UIControl+TestHelpers.swift */; };
E57DF760265CECA000E2A9CC /* ImageCacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E57DF75F265CECA000E2A9CC /* ImageCacheTests.swift */; };
E59923E425C19F6C0078B5DA /* DirectDepositViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E59923E325C19F6C0078B5DA /* DirectDepositViewTests.swift */; };
E5A6933C25B5F49B00ED8149 /* ACHAccountStorageTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5A692C625B5D29700ED8149 /* ACHAccountStorageTests.swift */; };
E5A6934125B980C100ED8149 /* StorageTransportSpy.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5A6934025B980C100ED8149 /* StorageTransportSpy.swift */; };
Expand Down Expand Up @@ -571,6 +572,7 @@
E5567DEC25C8BC42000E8048 /* AuthenticationTypeHelperTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AuthenticationTypeHelperTests.swift; sourceTree = "<group>"; };
E571DB10260DE62600A5C533 /* UIButton+TestHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+TestHelpers.swift"; sourceTree = "<group>"; };
E571DB15260DE64F00A5C533 /* UIControl+TestHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIControl+TestHelpers.swift"; sourceTree = "<group>"; };
E57DF75F265CECA000E2A9CC /* ImageCacheTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageCacheTests.swift; sourceTree = "<group>"; };
E59923E325C19F6C0078B5DA /* DirectDepositViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DirectDepositViewTests.swift; sourceTree = "<group>"; };
E5A692C625B5D29700ED8149 /* ACHAccountStorageTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ACHAccountStorageTests.swift; sourceTree = "<group>"; };
E5A6934025B980C100ED8149 /* StorageTransportSpy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StorageTransportSpy.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -1450,6 +1452,7 @@
D99BDB05A6B1068895FC89F7 /* ledgefoundation */ = {
isa = PBXGroup;
children = (
E57DF75E265CEC7D00E2A9CC /* Components */,
D99BD7DC49993979DBF809FB /* Manager */,
2C8F9B8321DC1285000D650C /* Model */,
D99BD3D35DA74F5728CB855F /* Helpers */,
Expand Down Expand Up @@ -1640,6 +1643,14 @@
path = WaitListModule;
sourceTree = "<group>";
};
E57DF75E265CEC7D00E2A9CC /* Components */ = {
isa = PBXGroup;
children = (
E57DF75F265CECA000E2A9CC /* ImageCacheTests.swift */,
);
path = Components;
sourceTree = "<group>";
};
E5A6C4F225C2BC4E0079009F /* Helpers */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1756,7 +1767,6 @@
2CD2B86A1F45E6BF005B85D0 /* Sources */,
2CD2B86B1F45E6BF005B85D0 /* Frameworks */,
2CD2B86C1F45E6BF005B85D0 /* Resources */,
1C1879011840A075E3F21B13 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
Expand Down Expand Up @@ -1911,28 +1921,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
1C1879011840A075E3F21B13 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-AutomationTests/Pods-AutomationTests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/Alamofire/Alamofire.framework",
"${BUILT_PRODUCTS_DIR}/Alamofire-Synchronous/Alamofire_Synchronous.framework",
"${BUILT_PRODUCTS_DIR}/KIF/KIF.framework",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Alamofire_Synchronous.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/KIF.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-AutomationTests/Pods-AutomationTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
2CEC752120C5947700A2802C /* Run Linter */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Expand Down Expand Up @@ -2106,6 +2094,7 @@
2C0CEEF91E6EFD1D0095DA3A /* LinkTests.swift in Sources */,
D99BDDB0ECA66C340B635B14 /* ServiceLocatorFake.swift in Sources */,
D99BD3BE1018BB59A43BD780 /* ModuleLocatorFake.swift in Sources */,
E57DF760265CECA000E2A9CC /* ImageCacheTests.swift in Sources */,
D99BD4D2A74CC4948F8AFD42 /* PresenterLocatorFake.swift in Sources */,
D99BD249397C573CA4FD2382 /* InteractorLocatorFake.swift in Sources */,
D99BD87CD9142422A2ED7FA4 /* ViewLocatorFake.swift in Sources */,
Expand Down
34 changes: 1 addition & 33 deletions Example/UnitTests/common/Manager/AptoPlatformTestDoubles.swift
Expand Up @@ -455,7 +455,7 @@ var nextIsShowDetailedCardActivityEnabledResult = true
var nextIssueCardResult: Result<Card, NSError>?
private(set) var issueCardCalled = false
private(set) var lastIssueCardApplicationId: String?
func issueCard(applicationId: String, additionalFields: [String : AnyObject]?, metadata: String?,
func issueCard(applicationId: String, metadata: String?,
design: IssueCardDesign?, callback: @escaping Result<Card, NSError>.Callback) {
issueCardCalled = true
lastIssueCardApplicationId = applicationId
Expand Down Expand Up @@ -510,33 +510,6 @@ var nextIsShowDetailedCardActivityEnabledResult = true
}
}

var nextFetchfetchFinancialAccountResult: Result<FinancialAccount, NSError>?
private(set) var fetchfetchFinancialAccountCalled = false
private(set) var lastFetchfetchFinancialAccountAccountId: String?
private(set) var lastFetchfetchFinancialAccountForceRefresh: Bool?
private(set) var lastFetchfetchFinancialAccountRetrieveBalances: Bool?
func fetchFinancialAccount(_ accountId: String, forceRefresh: Bool, retrieveBalances: Bool,
callback: @escaping Result<FinancialAccount, NSError>.Callback) {
fetchfetchFinancialAccountCalled = true
lastFetchfetchFinancialAccountAccountId = accountId
lastFetchfetchFinancialAccountForceRefresh = forceRefresh
lastFetchfetchFinancialAccountRetrieveBalances = retrieveBalances
if let result = nextFetchfetchFinancialAccountResult {
callback(result)
}
}

var nextFetchCardDetailsResult: Result<CardDetails, NSError>?
private(set) var fetchCardDetailsCalled = false
private(set) var lastFetchCardDetailsCardId: String?
func fetchCardDetails(_ cardId: String, callback: @escaping Result<CardDetails, NSError>.Callback) {
fetchCardDetailsCalled = true
lastFetchCardDetailsCardId = cardId
if let result = nextFetchCardDetailsResult {
callback(result)
}
}

var nextActivatePhysicalCardResult: Result<PhysicalCardActivationResult, NSError>?
private(set) var activatePhysicalCardCalled = false
private(set) var lastActivatePhysicalCardCardId: String?
Expand Down Expand Up @@ -629,11 +602,6 @@ var nextIsShowDetailedCardActivityEnabledResult = true
}
}

func cardMonthlySpending(_ cardId: String, date: Date,
callback: @escaping Result<MonthlySpending, NSError>.Callback) {
Swift.fatalError("Deprecated method. Use: fetchMonthlySpending(cardId:month:year:callback:) instead.")
}

var nextFetchMonthlySpendingResult: Result<MonthlySpending, NSError>?
private(set) var fetchMonthlySpendingCalled = false
private(set) var lastFetchMonthlySpendingCardId: String?
Expand Down
17 changes: 16 additions & 1 deletion Example/UnitTests/ledgecore/Base/BackendErrorTests.swift
Expand Up @@ -183,7 +183,7 @@ class BackendErrorTest: XCTestCase {
XCTAssertNil(backendError)
}

func testJSONParsingInvalidCodeReturnsUndefinedError() {
func testJSONParsingInvalidCodeWithMessageReturnsUndefinedErrorWithReason() {
// Given
let json: JSON = ["code": 45, "message": "My Message"]

Expand All @@ -194,7 +194,22 @@ class BackendErrorTest: XCTestCase {
XCTAssertNotNil(backendError)
XCTAssertEqual(backendError?.code, BackendError.ErrorCodes.undefinedError.rawValue)
XCTAssertEqual(backendError?.rawCode, 45)
XCTAssertTrue(backendError?.userInfo[NSLocalizedFailureReasonErrorKey]! as! String == "My Message")
}

func testJSONParsingInvalidCodeReturnsUndefinedError() {
// Given
let json: JSON = ["code": 45]

// When
let backendError = json.backendError

// Then
XCTAssertNotNil(backendError)
XCTAssertEqual(backendError?.code, BackendError.ErrorCodes.undefinedError.rawValue)
XCTAssertEqual(backendError?.rawCode, 45)
XCTAssertNil(backendError?.userInfo[NSLocalizedFailureReasonErrorKey] as? String)
}

func testJSONParsingCorrectJSONReturnsBackendError() {
// Given
Expand Down
Expand Up @@ -28,7 +28,6 @@ class CardApplicationStorageTests: XCTestCase {
sut.issueCard(apiKey(),
userToken: userToken(),
applicationId: anyApplicationId(),
additionalFields: anyAdditionalFields(),
metadata: anyMetadata(),
design: anyDesign()) { _ in }

Expand All @@ -43,13 +42,11 @@ class CardApplicationStorageTests: XCTestCase {
sut.issueCard(apiKey(),
userToken: userToken(),
applicationId: anyApplicationId(),
additionalFields: anyAdditionalFields(),
metadata: anyMetadata(),
design: anyDesign()) { _ in }
sut.issueCard(apiKey(),
userToken: userToken(),
applicationId: anyApplicationId(),
additionalFields: anyAdditionalFields(),
metadata: anyMetadata(),
design: anyDesign()) { _ in }

Expand Down Expand Up @@ -81,7 +78,6 @@ class CardApplicationStorageTests: XCTestCase {
sut.issueCard(apiKey(),
userToken: userToken(),
applicationId: anyApplicationId(),
additionalFields: anyAdditionalFields(),
metadata: anyMetadata(),
design: anyDesign()) { capturedResults.append($0) }
transport.complete(withResult: item.json)
Expand Down Expand Up @@ -110,7 +106,6 @@ class CardApplicationStorageTests: XCTestCase {
sut.issueCard(apiKey,
userToken: userToken,
applicationId: applicationId,
additionalFields: additionalFields,
metadata: metadata,
design: design) { capturedResults.append($0) }

Expand Down Expand Up @@ -152,5 +147,5 @@ class CardApplicationStorageSpy: CardApplicationsStorageProtocol {

func cancelCardApplication(_ apiKey: String, userToken: String, applicationId: String, callback: @escaping Result<Void, NSError>.Callback) {}

func issueCard(_ apiKey: String, userToken: String, applicationId: String, additionalFields: [String : AnyObject]?, metadata: String?, design: IssueCardDesign?, callback: @escaping Result<Card, NSError>.Callback) {}
func issueCard(_ apiKey: String, userToken: String, applicationId: String, metadata: String?, design: IssueCardDesign?, callback: @escaping Result<Card, NSError>.Callback) {}
}

0 comments on commit 9918dc3

Please sign in to comment.