Added EncryptedCoreData pod to be able to encrypt CoreData database (even though currently just using a hard coded default password)
This commit is contained in:
parent
f0271a2f85
commit
5c63af15a0
|
@ -24,6 +24,8 @@
|
||||||
361116AA250562CF00315620 /* TouchIDButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361116A9250562CF00315620 /* TouchIDButton.swift */; };
|
361116AA250562CF00315620 /* TouchIDButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361116A9250562CF00315620 /* TouchIDButton.swift */; };
|
||||||
361282C225223D7700392A4D /* SelectableText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361282C125223D7700392A4D /* SelectableText.swift */; };
|
361282C225223D7700392A4D /* SelectableText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361282C125223D7700392A4D /* SelectableText.swift */; };
|
||||||
361282C62522438B00392A4D /* SelectableUILabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361282C52522438B00392A4D /* SelectableUILabel.swift */; };
|
361282C62522438B00392A4D /* SelectableUILabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361282C52522438B00392A4D /* SelectableUILabel.swift */; };
|
||||||
|
361A0CD0252AA1AB007E25DD /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 361A0CCF252AA1AB007E25DD /* Security.framework */; };
|
||||||
|
361A17CC252F6BD1007E25DD /* UIKitTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 361A17CB252F6BD1007E25DD /* UIKitTextView.swift */; };
|
||||||
36428CFF251BEC4C009DE1AE /* SectionWithoutBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */; };
|
36428CFF251BEC4C009DE1AE /* SectionWithoutBackground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */; };
|
||||||
3642F00A2500F5AE005186FE /* Divider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3642F0092500F5AE005186FE /* Divider.swift */; };
|
3642F00A2500F5AE005186FE /* Divider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3642F0092500F5AE005186FE /* Divider.swift */; };
|
||||||
3642F00C25010021005186FE /* UIKitActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3642F00B25010021005186FE /* UIKitActivityIndicator.swift */; };
|
3642F00C25010021005186FE /* UIKitActivityIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3642F00B25010021005186FE /* UIKitActivityIndicator.swift */; };
|
||||||
|
@ -123,6 +125,9 @@
|
||||||
36FC92DC24B3A4A0002B12E9 /* AccountsDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FC92DB24B3A4A0002B12E9 /* AccountsDialog.swift */; };
|
36FC92DC24B3A4A0002B12E9 /* AccountsDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FC92DB24B3A4A0002B12E9 /* AccountsDialog.swift */; };
|
||||||
36FC92E824B3B1DC002B12E9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 36FC92EA24B3B1DC002B12E9 /* Localizable.strings */; };
|
36FC92E824B3B1DC002B12E9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 36FC92EA24B3B1DC002B12E9 /* Localizable.strings */; };
|
||||||
36FC92EF24B3BB81002B12E9 /* AddAccountDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FC92EE24B3BB81002B12E9 /* AddAccountDialog.swift */; };
|
36FC92EF24B3BB81002B12E9 /* AddAccountDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36FC92EE24B3BB81002B12E9 /* AddAccountDialog.swift */; };
|
||||||
|
393746969D88F16C5A9ABE75 /* Pods_BankingiOSAppTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D926106F09C8A697D4EDDC5E /* Pods_BankingiOSAppTests.framework */; };
|
||||||
|
62B6E49FE25AAC37C2844603 /* Pods_BankingiOSApp_BankingiOSAppUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF536A3A0D6F31FEE2115ABD /* Pods_BankingiOSApp_BankingiOSAppUITests.framework */; };
|
||||||
|
B7B541060D39150CD90B63DE /* Pods_BankingiOSApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CBBFA2BCCBACAB1ADC104831 /* Pods_BankingiOSApp.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
@ -162,6 +167,7 @@
|
||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
16014E4359102D8B718580D9 /* Pods-BankingiOSApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSApp.release.xcconfig"; path = "Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
3607829824E148D40098FEFE /* AdaptsToKeyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptsToKeyboard.swift; sourceTree = "<group>"; };
|
3607829824E148D40098FEFE /* AdaptsToKeyboard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdaptsToKeyboard.swift; sourceTree = "<group>"; };
|
||||||
360782C024E18D5E0098FEFE /* AddAccountButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccountButtonView.swift; sourceTree = "<group>"; };
|
360782C024E18D5E0098FEFE /* AddAccountButtonView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccountButtonView.swift; sourceTree = "<group>"; };
|
||||||
360782C224E49FF70098FEFE /* ValidationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValidationLabel.swift; sourceTree = "<group>"; };
|
360782C224E49FF70098FEFE /* ValidationLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValidationLabel.swift; sourceTree = "<group>"; };
|
||||||
|
@ -179,6 +185,8 @@
|
||||||
361116A9250562CF00315620 /* TouchIDButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TouchIDButton.swift; sourceTree = "<group>"; };
|
361116A9250562CF00315620 /* TouchIDButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TouchIDButton.swift; sourceTree = "<group>"; };
|
||||||
361282C125223D7700392A4D /* SelectableText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableText.swift; sourceTree = "<group>"; };
|
361282C125223D7700392A4D /* SelectableText.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableText.swift; sourceTree = "<group>"; };
|
||||||
361282C52522438B00392A4D /* SelectableUILabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableUILabel.swift; sourceTree = "<group>"; };
|
361282C52522438B00392A4D /* SelectableUILabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectableUILabel.swift; sourceTree = "<group>"; };
|
||||||
|
361A0CCF252AA1AB007E25DD /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||||
|
361A17CB252F6BD1007E25DD /* UIKitTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitTextView.swift; sourceTree = "<group>"; };
|
||||||
36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionWithoutBackground.swift; sourceTree = "<group>"; };
|
36428CFE251BEC4C009DE1AE /* SectionWithoutBackground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionWithoutBackground.swift; sourceTree = "<group>"; };
|
||||||
3642F0092500F5AE005186FE /* Divider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Divider.swift; sourceTree = "<group>"; };
|
3642F0092500F5AE005186FE /* Divider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Divider.swift; sourceTree = "<group>"; };
|
||||||
3642F00B25010021005186FE /* UIKitActivityIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitActivityIndicator.swift; sourceTree = "<group>"; };
|
3642F00B25010021005186FE /* UIKitActivityIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKitActivityIndicator.swift; sourceTree = "<group>"; };
|
||||||
|
@ -281,6 +289,14 @@
|
||||||
36FC92EC24B3B371002B12E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
|
36FC92EC24B3B371002B12E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
36FC92ED24B3B3A2002B12E9 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
36FC92ED24B3B3A2002B12E9 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
36FC92EE24B3BB81002B12E9 /* AddAccountDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccountDialog.swift; sourceTree = "<group>"; };
|
36FC92EE24B3BB81002B12E9 /* AddAccountDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddAccountDialog.swift; sourceTree = "<group>"; };
|
||||||
|
7D49721B8B3CA26A1BA8E3BC /* Pods-BankingiOSAppTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSAppTests.release.xcconfig"; path = "Target Support Files/Pods-BankingiOSAppTests/Pods-BankingiOSAppTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
A4C58D6E29BF434218431CAF /* Pods-BankingiOSApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSApp.debug.xcconfig"; path = "Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
A7D4EDDDE73AF200E1A1A005 /* Pods-BankingiOSAppTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSAppTests.debug.xcconfig"; path = "Target Support Files/Pods-BankingiOSAppTests/Pods-BankingiOSAppTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
B65993466FD94BD34458674D /* Pods-BankingiOSApp-BankingiOSAppUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSApp-BankingiOSAppUITests.release.xcconfig"; path = "Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests.release.xcconfig"; sourceTree = "<group>"; };
|
||||||
|
CBBFA2BCCBACAB1ADC104831 /* Pods_BankingiOSApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BankingiOSApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
CF536A3A0D6F31FEE2115ABD /* Pods_BankingiOSApp_BankingiOSAppUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BankingiOSApp_BankingiOSAppUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
D926106F09C8A697D4EDDC5E /* Pods_BankingiOSAppTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BankingiOSAppTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
DFAF99B2AB4F63916EF306EC /* Pods-BankingiOSApp-BankingiOSAppUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BankingiOSApp-BankingiOSAppUITests.debug.xcconfig"; path = "Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
@ -288,6 +304,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
361A0CD0252AA1AB007E25DD /* Security.framework in Frameworks */,
|
||||||
3684EB90250B7F560001139E /* BankingUiCommon.framework in Frameworks */,
|
3684EB90250B7F560001139E /* BankingUiCommon.framework in Frameworks */,
|
||||||
36BCF86924BA550D005BEC29 /* BankFinder.framework in Frameworks */,
|
36BCF86924BA550D005BEC29 /* BankFinder.framework in Frameworks */,
|
||||||
36BCF85E24BA4DA8005BEC29 /* MultiplatformUtils.framework in Frameworks */,
|
36BCF85E24BA4DA8005BEC29 /* MultiplatformUtils.framework in Frameworks */,
|
||||||
|
@ -295,6 +312,7 @@
|
||||||
36BCF87024BB0F8A005BEC29 /* fints4kBankingClient.framework in Frameworks */,
|
36BCF87024BB0F8A005BEC29 /* fints4kBankingClient.framework in Frameworks */,
|
||||||
36BCF87324BB2706005BEC29 /* BankingUiSwift.framework in Frameworks */,
|
36BCF87324BB2706005BEC29 /* BankingUiSwift.framework in Frameworks */,
|
||||||
36BE06C024D07CCD00CBBB68 /* SwiftSoup in Frameworks */,
|
36BE06C024D07CCD00CBBB68 /* SwiftSoup in Frameworks */,
|
||||||
|
B7B541060D39150CD90B63DE /* Pods_BankingiOSApp.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -302,6 +320,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
393746969D88F16C5A9ABE75 /* Pods_BankingiOSAppTests.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -309,6 +328,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
62B6E49FE25AAC37C2844603 /* Pods_BankingiOSApp_BankingiOSAppUITests.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
@ -403,6 +423,7 @@
|
||||||
36B8A4522503E92300C15359 /* UIKit */ = {
|
36B8A4522503E92300C15359 /* UIKit */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
361A17CB252F6BD1007E25DD /* UIKitTextView.swift */,
|
||||||
36BE065624C9E04800CBBB68 /* UIKitImageView.swift */,
|
36BE065624C9E04800CBBB68 /* UIKitImageView.swift */,
|
||||||
36BE065824CA3CAB00CBBB68 /* UIKitSearchBar.swift */,
|
36BE065824CA3CAB00CBBB68 /* UIKitSearchBar.swift */,
|
||||||
3642F00B25010021005186FE /* UIKitActivityIndicator.swift */,
|
3642F00B25010021005186FE /* UIKitActivityIndicator.swift */,
|
||||||
|
@ -453,6 +474,7 @@
|
||||||
36FC92BF24B39A08002B12E9 /* BankingiOSAppUITests */,
|
36FC92BF24B39A08002B12E9 /* BankingiOSAppUITests */,
|
||||||
36FC929924B39A05002B12E9 /* Products */,
|
36FC929924B39A05002B12E9 /* Products */,
|
||||||
36FC92CE24B39C47002B12E9 /* Frameworks */,
|
36FC92CE24B39C47002B12E9 /* Frameworks */,
|
||||||
|
69AD68ADE6416F91A9706F48 /* Pods */,
|
||||||
);
|
);
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
@ -522,6 +544,7 @@
|
||||||
36FC92CE24B39C47002B12E9 /* Frameworks */ = {
|
36FC92CE24B39C47002B12E9 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
361A0CCF252AA1AB007E25DD /* Security.framework */,
|
||||||
36BCF87224BB2706005BEC29 /* BankingUiSwift.framework */,
|
36BCF87224BB2706005BEC29 /* BankingUiSwift.framework */,
|
||||||
36BCF86F24BB0F8A005BEC29 /* fints4kBankingClient.framework */,
|
36BCF86F24BB0F8A005BEC29 /* fints4kBankingClient.framework */,
|
||||||
36BCF86824BA550D005BEC29 /* BankFinder.framework */,
|
36BCF86824BA550D005BEC29 /* BankFinder.framework */,
|
||||||
|
@ -529,6 +552,9 @@
|
||||||
36BCF85524BA41EE005BEC29 /* BankingUiCommon.framework */,
|
36BCF85524BA41EE005BEC29 /* BankingUiCommon.framework */,
|
||||||
36E7BA1824B9E70C00757859 /* xcode-frameworks */,
|
36E7BA1824B9E70C00757859 /* xcode-frameworks */,
|
||||||
36FC92CF24B39C47002B12E9 /* fints4k.framework */,
|
36FC92CF24B39C47002B12E9 /* fints4k.framework */,
|
||||||
|
CBBFA2BCCBACAB1ADC104831 /* Pods_BankingiOSApp.framework */,
|
||||||
|
CF536A3A0D6F31FEE2115ABD /* Pods_BankingiOSApp_BankingiOSAppUITests.framework */,
|
||||||
|
D926106F09C8A697D4EDDC5E /* Pods_BankingiOSAppTests.framework */,
|
||||||
);
|
);
|
||||||
name = Frameworks;
|
name = Frameworks;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -591,6 +617,19 @@
|
||||||
path = views;
|
path = views;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
69AD68ADE6416F91A9706F48 /* Pods */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
A4C58D6E29BF434218431CAF /* Pods-BankingiOSApp.debug.xcconfig */,
|
||||||
|
16014E4359102D8B718580D9 /* Pods-BankingiOSApp.release.xcconfig */,
|
||||||
|
DFAF99B2AB4F63916EF306EC /* Pods-BankingiOSApp-BankingiOSAppUITests.debug.xcconfig */,
|
||||||
|
B65993466FD94BD34458674D /* Pods-BankingiOSApp-BankingiOSAppUITests.release.xcconfig */,
|
||||||
|
A7D4EDDDE73AF200E1A1A005 /* Pods-BankingiOSAppTests.debug.xcconfig */,
|
||||||
|
7D49721B8B3CA26A1BA8E3BC /* Pods-BankingiOSAppTests.release.xcconfig */,
|
||||||
|
);
|
||||||
|
path = Pods;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXGroup section */
|
/* End PBXGroup section */
|
||||||
|
|
||||||
/* Begin PBXNativeTarget section */
|
/* Begin PBXNativeTarget section */
|
||||||
|
@ -598,11 +637,13 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 36FC92C524B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSApp" */;
|
buildConfigurationList = 36FC92C524B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSApp" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
B25EFAA4CE2D8C67FE26BDDE /* [CP] Check Pods Manifest.lock */,
|
||||||
36FC92D324B39E61002B12E9 /* ShellScript */,
|
36FC92D324B39E61002B12E9 /* ShellScript */,
|
||||||
36FC929424B39A05002B12E9 /* Sources */,
|
36FC929424B39A05002B12E9 /* Sources */,
|
||||||
36FC929524B39A05002B12E9 /* Frameworks */,
|
36FC929524B39A05002B12E9 /* Frameworks */,
|
||||||
36FC929624B39A05002B12E9 /* Resources */,
|
36FC929624B39A05002B12E9 /* Resources */,
|
||||||
36FC92D224B39C47002B12E9 /* Embed Frameworks */,
|
36FC92D224B39C47002B12E9 /* Embed Frameworks */,
|
||||||
|
76A133F76CA1DF2AED16E318 /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -620,6 +661,7 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 36FC92C824B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSAppTests" */;
|
buildConfigurationList = 36FC92C824B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSAppTests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
18182A1DCBF86283CE13D1B2 /* [CP] Check Pods Manifest.lock */,
|
||||||
36FC92AD24B39A07002B12E9 /* Sources */,
|
36FC92AD24B39A07002B12E9 /* Sources */,
|
||||||
36FC92AE24B39A07002B12E9 /* Frameworks */,
|
36FC92AE24B39A07002B12E9 /* Frameworks */,
|
||||||
36FC92AF24B39A07002B12E9 /* Resources */,
|
36FC92AF24B39A07002B12E9 /* Resources */,
|
||||||
|
@ -638,9 +680,11 @@
|
||||||
isa = PBXNativeTarget;
|
isa = PBXNativeTarget;
|
||||||
buildConfigurationList = 36FC92CB24B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSAppUITests" */;
|
buildConfigurationList = 36FC92CB24B39A08002B12E9 /* Build configuration list for PBXNativeTarget "BankingiOSAppUITests" */;
|
||||||
buildPhases = (
|
buildPhases = (
|
||||||
|
F72B5FCD5871250166EC77CD /* [CP] Check Pods Manifest.lock */,
|
||||||
36FC92B824B39A08002B12E9 /* Sources */,
|
36FC92B824B39A08002B12E9 /* Sources */,
|
||||||
36FC92B924B39A08002B12E9 /* Frameworks */,
|
36FC92B924B39A08002B12E9 /* Frameworks */,
|
||||||
36FC92BA24B39A08002B12E9 /* Resources */,
|
36FC92BA24B39A08002B12E9 /* Resources */,
|
||||||
|
56138ECE67E9DD0ED8AABF71 /* [CP] Embed Pods Frameworks */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -664,6 +708,7 @@
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
36FC929724B39A05002B12E9 = {
|
36FC929724B39A05002B12E9 = {
|
||||||
CreatedOnToolsVersion = 11.5;
|
CreatedOnToolsVersion = 11.5;
|
||||||
|
LastSwiftMigration = 1200;
|
||||||
};
|
};
|
||||||
36FC92B024B39A07002B12E9 = {
|
36FC92B024B39A07002B12E9 = {
|
||||||
CreatedOnToolsVersion = 11.5;
|
CreatedOnToolsVersion = 11.5;
|
||||||
|
@ -729,6 +774,28 @@
|
||||||
/* End PBXResourcesBuildPhase section */
|
/* End PBXResourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXShellScriptBuildPhase section */
|
/* Begin PBXShellScriptBuildPhase section */
|
||||||
|
18182A1DCBF86283CE13D1B2 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-BankingiOSAppTests-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
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;
|
||||||
|
};
|
||||||
36FC92D324B39E61002B12E9 /* ShellScript */ = {
|
36FC92D324B39E61002B12E9 /* ShellScript */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
buildActionMask = 12;
|
buildActionMask = 12;
|
||||||
|
@ -746,6 +813,84 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\n#cd \"../../common/build/xcode-frameworks/\"\n#./gradlew :common:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n\n#cd \"../../fints4k/build/xcode-frameworks/\"\n#./gradlew :fints4k:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}#\n\n#cd \"../../tools/BankFinder/build/xcode-frameworks/\"\n#./gradlew :BankFinder:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n\ncd \"../../ui/BankingUiNativeIntegration/build/xcode-frameworks/\"\n./gradlew :BankingUiNativeIntegration:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n";
|
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\n#cd \"../../common/build/xcode-frameworks/\"\n#./gradlew :common:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n\n#cd \"../../fints4k/build/xcode-frameworks/\"\n#./gradlew :fints4k:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}#\n\n#cd \"../../tools/BankFinder/build/xcode-frameworks/\"\n#./gradlew :BankFinder:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n\ncd \"../../ui/BankingUiNativeIntegration/build/xcode-frameworks/\"\n./gradlew :BankingUiNativeIntegration:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n";
|
||||||
};
|
};
|
||||||
|
56138ECE67E9DD0ED8AABF71 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
76A133F76CA1DF2AED16E318 /* [CP] Embed Pods Frameworks */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks-${CONFIGURATION}-input-files.xcfilelist",
|
||||||
|
);
|
||||||
|
name = "[CP] Embed Pods Frameworks";
|
||||||
|
outputFileListPaths = (
|
||||||
|
"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks-${CONFIGURATION}-output-files.xcfilelist",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks.sh\"\n";
|
||||||
|
showEnvVarsInLog = 0;
|
||||||
|
};
|
||||||
|
B25EFAA4CE2D8C67FE26BDDE /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-BankingiOSApp-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
F72B5FCD5871250166EC77CD /* [CP] Check Pods Manifest.lock */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
inputFileListPaths = (
|
||||||
|
);
|
||||||
|
inputPaths = (
|
||||||
|
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||||
|
"${PODS_ROOT}/Manifest.lock",
|
||||||
|
);
|
||||||
|
name = "[CP] Check Pods Manifest.lock";
|
||||||
|
outputFileListPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
"$(DERIVED_FILE_DIR)/Pods-BankingiOSApp-BankingiOSAppUITests-checkManifestLockResult.txt",
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
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;
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
@ -839,6 +984,7 @@
|
||||||
3607829924E148D40098FEFE /* AdaptsToKeyboard.swift in Sources */,
|
3607829924E148D40098FEFE /* AdaptsToKeyboard.swift in Sources */,
|
||||||
36750532252006C9006B13A0 /* TextWithScrollView.swift in Sources */,
|
36750532252006C9006B13A0 /* TextWithScrollView.swift in Sources */,
|
||||||
36E21ECF24DA0EEE00649DC8 /* IconView.swift in Sources */,
|
36E21ECF24DA0EEE00649DC8 /* IconView.swift in Sources */,
|
||||||
|
361A17CC252F6BD1007E25DD /* UIKitTextView.swift in Sources */,
|
||||||
3642F0182502723A005186FE /* UIKitButton.swift in Sources */,
|
3642F0182502723A005186FE /* UIKitButton.swift in Sources */,
|
||||||
3675053825201B08006B13A0 /* LabelledAmount.swift in Sources */,
|
3675053825201B08006B13A0 /* LabelledAmount.swift in Sources */,
|
||||||
36B8A4562503E9B200C15359 /* UIAlertBase.swift in Sources */,
|
36B8A4562503E9B200C15359 /* UIAlertBase.swift in Sources */,
|
||||||
|
@ -1022,13 +1168,18 @@
|
||||||
};
|
};
|
||||||
36FC92C624B39A08002B12E9 /* Debug */ = {
|
36FC92C624B39A08002B12E9 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = A4C58D6E29BF434218431CAF /* Pods-BankingiOSApp.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"BankingiOSApp/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"BankingiOSApp/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = 2L8U7W4R52;
|
DEVELOPMENT_TEAM = 2L8U7W4R52;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher\"",
|
||||||
"../../common/build/xcode-frameworks/",
|
"../../common/build/xcode-frameworks/",
|
||||||
"../../fints4k/build/xcode-frameworks",
|
"../../fints4k/build/xcode-frameworks",
|
||||||
"../../ui/BankingUiCommon/build/xcode-frameworks/",
|
"../../ui/BankingUiCommon/build/xcode-frameworks/",
|
||||||
|
@ -1047,18 +1198,24 @@
|
||||||
PRODUCT_NAME = Bankmeister;
|
PRODUCT_NAME = Bankmeister;
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
VALIDATE_PRODUCT = NO;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
};
|
};
|
||||||
36FC92C724B39A08002B12E9 /* Release */ = {
|
36FC92C724B39A08002B12E9 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 16014E4359102D8B718580D9 /* Pods-BankingiOSApp.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"BankingiOSApp/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"BankingiOSApp/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = 2L8U7W4R52;
|
DEVELOPMENT_TEAM = 2L8U7W4R52;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher\"",
|
||||||
"../../common/build/xcode-frameworks/",
|
"../../common/build/xcode-frameworks/",
|
||||||
"../../fints4k/build/xcode-frameworks",
|
"../../fints4k/build/xcode-frameworks",
|
||||||
"../../ui/BankingUiCommon/build/xcode-frameworks/",
|
"../../ui/BankingUiCommon/build/xcode-frameworks/",
|
||||||
|
@ -1082,6 +1239,7 @@
|
||||||
};
|
};
|
||||||
36FC92C924B39A08002B12E9 /* Debug */ = {
|
36FC92C924B39A08002B12E9 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = A7D4EDDDE73AF200E1A1A005 /* Pods-BankingiOSAppTests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
@ -1104,6 +1262,7 @@
|
||||||
};
|
};
|
||||||
36FC92CA24B39A08002B12E9 /* Release */ = {
|
36FC92CA24B39A08002B12E9 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = 7D49721B8B3CA26A1BA8E3BC /* Pods-BankingiOSAppTests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||||
|
@ -1126,6 +1285,7 @@
|
||||||
};
|
};
|
||||||
36FC92CC24B39A08002B12E9 /* Debug */ = {
|
36FC92CC24B39A08002B12E9 /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = DFAF99B2AB4F63916EF306EC /* Pods-BankingiOSApp-BankingiOSAppUITests.debug.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
@ -1146,6 +1306,7 @@
|
||||||
};
|
};
|
||||||
36FC92CD24B39A08002B12E9 /* Release */ = {
|
36FC92CD24B39A08002B12E9 /* Release */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
|
baseConfigurationReference = B65993466FD94BD34458674D /* Pods-BankingiOSApp-BankingiOSAppUITests.release.xcconfig */;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Workspace
|
||||||
|
version = "1.0">
|
||||||
|
<FileRef
|
||||||
|
location = "group:BankingiOSApp.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
<FileRef
|
||||||
|
location = "group:Pods/Pods.xcodeproj">
|
||||||
|
</FileRef>
|
||||||
|
</Workspace>
|
|
@ -18,6 +18,19 @@ class CoreDataBankingPersistence: IBankingPersistence, ITransactionPartySearcher
|
||||||
error conditions that could cause the creation of the store to fail.
|
error conditions that could cause the creation of the store to fail.
|
||||||
*/
|
*/
|
||||||
let container = NSPersistentContainer(name: "BankingiOSApp")
|
let container = NSPersistentContainer(name: "BankingiOSApp")
|
||||||
|
|
||||||
|
do {
|
||||||
|
let options = [
|
||||||
|
EncryptedStorePassphraseKey : "someKey"
|
||||||
|
]
|
||||||
|
|
||||||
|
let description = try EncryptedStore.makeDescription(options: options, configuration: nil)
|
||||||
|
container.persistentStoreDescriptions = [ description ]
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
NSLog("Could not initialize encrypted database storage: " + error.localizedDescription)
|
||||||
|
}
|
||||||
|
|
||||||
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
|
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
|
||||||
if let error = error as NSError? {
|
if let error = error as NSError? {
|
||||||
// Replace this implementation with code to handle the error appropriately.
|
// Replace this implementation with code to handle the error appropriately.
|
||||||
|
@ -35,10 +48,6 @@ class CoreDataBankingPersistence: IBankingPersistence, ITransactionPartySearcher
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO: still needed?
|
|
||||||
// to fix merging / updating cached objects, see Mapper
|
|
||||||
container.viewContext.mergePolicy = NSMergePolicy(merge: NSMergePolicyType.mergeByPropertyObjectTrumpMergePolicyType)
|
|
||||||
|
|
||||||
return container
|
return container
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@ -61,6 +70,38 @@ class CoreDataBankingPersistence: IBankingPersistence, ITransactionPartySearcher
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func decryptData(password: KotlinCharArray) -> Bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func changePassword(newPassword: KotlinCharArray) -> Bool {
|
||||||
|
if let encryptedStore = persistentContainer.persistentStoreCoordinator.persistentStores.first { $0 is EncryptedStore } as? EncryptedStore {
|
||||||
|
do {
|
||||||
|
let result = try encryptedStore.changeDatabasePassphrase(map(newPassword))
|
||||||
|
|
||||||
|
return true
|
||||||
|
} catch {
|
||||||
|
// TODO: how to inform user?
|
||||||
|
NSLog("Could not change database password: \(error)")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
private func map(_ array: KotlinCharArray) -> String {
|
||||||
|
var mapped = [Character]()
|
||||||
|
|
||||||
|
for i in 0 ..< array.size {
|
||||||
|
if let scalar = Unicode.Scalar(array.get(index: i)) {
|
||||||
|
mapped.append(Character(scalar))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return String(mapped)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
func saveOrUpdateBank(bank: IBankData, allBanks: [IBankData]) {
|
func saveOrUpdateBank(bank: IBankData, allBanks: [IBankData]) {
|
||||||
do {
|
do {
|
||||||
let mapped = mapper.map(bank, context)
|
let mapped = mapper.map(bank, context)
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
# Uncomment the next line to define a global platform for your project
|
||||||
|
# platform :ios, '9.0'
|
||||||
|
|
||||||
|
target 'BankingiOSApp' do
|
||||||
|
# Comment the next line if you don't want to use dynamic frameworks
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
# Pods for BankingiOSApp
|
||||||
|
|
||||||
|
pod 'EncryptedCoreData', :git => 'https://github.com/project-imas/encrypted-core-data.git'
|
||||||
|
|
||||||
|
target 'BankingiOSAppTests' do
|
||||||
|
inherit! :search_paths
|
||||||
|
# Pods for testing
|
||||||
|
end
|
||||||
|
|
||||||
|
target 'BankingiOSAppUITests' do
|
||||||
|
# Pods for testing
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,32 @@
|
||||||
|
PODS:
|
||||||
|
- EncryptedCoreData (3.1):
|
||||||
|
- SQLCipher (~> 3.4.0)
|
||||||
|
- SQLCipher (3.4.2):
|
||||||
|
- SQLCipher/standard (= 3.4.2)
|
||||||
|
- SQLCipher/common (3.4.2)
|
||||||
|
- SQLCipher/standard (3.4.2):
|
||||||
|
- SQLCipher/common
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- EncryptedCoreData (from `https://github.com/project-imas/encrypted-core-data.git`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- SQLCipher
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
EncryptedCoreData:
|
||||||
|
:git: https://github.com/project-imas/encrypted-core-data.git
|
||||||
|
|
||||||
|
CHECKOUT OPTIONS:
|
||||||
|
EncryptedCoreData:
|
||||||
|
:commit: b97ffaf2f19dad4d1558bc9b0668cc2e09d17347
|
||||||
|
:git: https://github.com/project-imas/encrypted-core-data.git
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
EncryptedCoreData: f6762fb05f88a52f36c5648659abc91b57f244b4
|
||||||
|
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: e88127ccd3923c474778210b50472238a358912e
|
||||||
|
|
||||||
|
COCOAPODS: 1.9.3
|
222
ui/BankingiOSApp/Pods/EncryptedCoreData/Incremental Store/EncryptedStore.h
generated
Executable file
222
ui/BankingiOSApp/Pods/EncryptedCoreData/Incremental Store/EncryptedStore.h
generated
Executable file
|
@ -0,0 +1,222 @@
|
||||||
|
//
|
||||||
|
// EncryptedStore.h
|
||||||
|
//
|
||||||
|
// Copyright 2012 - 2014 The MITRE Corporation, All Rights Reserved.
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <CoreData/CoreData.h>
|
||||||
|
|
||||||
|
typedef struct _options {
|
||||||
|
char * passphrase;
|
||||||
|
char * database_location;
|
||||||
|
int * cache_size;
|
||||||
|
} EncryptedStoreOptions;
|
||||||
|
|
||||||
|
extern NSString * const EncryptedStoreType;
|
||||||
|
extern NSString * const EncryptedStorePassphraseKey;
|
||||||
|
extern NSString * const EncryptedStoreErrorDomain;
|
||||||
|
extern NSString * const EncryptedStoreErrorMessageKey;
|
||||||
|
extern NSString * const EncryptedStoreDatabaseLocation;
|
||||||
|
extern NSString * const EncryptedStoreCacheSize;
|
||||||
|
extern NSString * const EncryptedStoreFileManagerOption;
|
||||||
|
typedef NS_ENUM(NSInteger, EncryptedStoreError)
|
||||||
|
{
|
||||||
|
EncryptedStoreErrorIncorrectPasscode = 6000,
|
||||||
|
EncryptedStoreErrorMigrationFailed
|
||||||
|
};
|
||||||
|
|
||||||
|
@interface EncryptedStoreFileManagerConfiguration : NSObject
|
||||||
|
#pragma mark - Initialization
|
||||||
|
- (instancetype)initWithOptions:(NSDictionary *)options;
|
||||||
|
#pragma mark - Properties
|
||||||
|
@property (nonatomic, readwrite) NSFileManager *fileManager;
|
||||||
|
@property (nonatomic, readwrite) NSBundle *bundle;
|
||||||
|
@property (nonatomic, readwrite) NSString *databaseName;
|
||||||
|
@property (nonatomic, readwrite) NSString *databaseExtension;
|
||||||
|
@property (nonatomic, readonly) NSString *databaseFilename;
|
||||||
|
@property (nonatomic, readwrite) NSURL *databaseURL;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStoreFileManagerConfiguration (OptionsKeys)
|
||||||
|
+ (NSString *)optionFileManager;
|
||||||
|
+ (NSString *)optionBundle;
|
||||||
|
+ (NSString *)optionDatabaseName;
|
||||||
|
+ (NSString *)optionDatabaseExtension;
|
||||||
|
+ (NSString *)optionDatabaseURL;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStoreFileManager : NSObject
|
||||||
|
#pragma mark - Initialization
|
||||||
|
+ (instancetype)defaultManager;
|
||||||
|
- (instancetype)initWithConfiguration:(EncryptedStoreFileManagerConfiguration *)configuration;
|
||||||
|
|
||||||
|
#pragma mark - Setup
|
||||||
|
- (void)setupDatabaseWithOptions:(NSDictionary *)options error:(NSError * __autoreleasing*)error;
|
||||||
|
|
||||||
|
#pragma mark - Getters
|
||||||
|
@property (nonatomic, readwrite) EncryptedStoreFileManagerConfiguration *configuration;
|
||||||
|
@property (nonatomic, readonly) NSURL *databaseURL;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStoreFileManager (FileManagerExtensions)
|
||||||
|
@property (nonatomic, readonly) NSURL *applicationSupportURL;
|
||||||
|
- (void)setAttributes:(NSDictionary *)attributes ofItemAtURL:(NSURL *)url error:(NSError * __autoreleasing*)error;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStore : NSIncrementalStore
|
||||||
|
#pragma mark - Initialization
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStoreWithOptions:(NSDictionary *)options managedObjectModel:(NSManagedObjectModel *)objModel;
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStoreWithStructOptions:(EncryptedStoreOptions *) options managedObjectModel:(NSManagedObjectModel *)objModel;
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStore:(NSManagedObjectModel *) objModel
|
||||||
|
passcode:(NSString *) passcode;
|
||||||
|
|
||||||
|
//+ (NSPersistentStoreCoordinator *)makeStoreWithOptions:(NSDictionary *)options managedObjectModel:(NSManagedObjectModel *)objModel error:(NSError * __autoreleasing*)error;
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStoreWithStructOptions:(EncryptedStoreOptions *) options managedObjectModel:(NSManagedObjectModel *)objModel error:(NSError * __autoreleasing*)error;
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStore:(NSManagedObjectModel *) objModel
|
||||||
|
passcode:(NSString *) passcode error:(NSError * __autoreleasing*)error;
|
||||||
|
|
||||||
|
#pragma mark - Passphrase manipulation
|
||||||
|
#pragma mark - Public
|
||||||
|
|
||||||
|
/**
|
||||||
|
@discussion Check old passphrase and if success change old passphrase to new passphrase.
|
||||||
|
|
||||||
|
@param oldPassphrase The old passhrase with which database was previously opened.
|
||||||
|
@param newPassphrase The new passhrase which is desired for database.
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)checkAndChangeDatabasePassphrase:(NSString *)oldPassphrase toNewPassphrase:(NSString *)newPassphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@discussion Check database passphrase.
|
||||||
|
|
||||||
|
@param passphrase The desired passphrase to test for.
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)checkDatabasePassphrase:(NSString *)passphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
#pragma mark - Internal
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Configure database with passhrase.
|
||||||
|
|
||||||
|
@discussion Configure database with passphrase stored in options dictionary.
|
||||||
|
|
||||||
|
@attention Internal usage.
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)configureDatabasePassphrase:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Test database connection against simple sql request.
|
||||||
|
@discussion Test database connection against simple sql request. Success means database open state and correctness of previous passphrase manipulation operation.
|
||||||
|
|
||||||
|
@attention Internal usage.
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)checkDatabaseStatusWithError:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief
|
||||||
|
Primitive change passphrase operation.
|
||||||
|
|
||||||
|
@discussion Ignores database state and tries to change database passphrase.
|
||||||
|
Behaviour is unknown if used before old passphrase validation.
|
||||||
|
|
||||||
|
@attention Internal usage.
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param passphrase The new passphrase.
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)changeDatabasePassphrase:(NSString *)passphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Primitive set passphrase operation.
|
||||||
|
|
||||||
|
@discussion Ignores database state and tries to set database passphrase.
|
||||||
|
One of first-call functions in database setup.
|
||||||
|
|
||||||
|
@attention Internal usage.
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param passphrase The desired first passphrase of database.
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)setDatabasePassphrase:(NSString *)passphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Validates database passphrase for correctness.
|
||||||
|
|
||||||
|
@discussion Tries to reopen database on provided passphrase.
|
||||||
|
Closes database and try to open in on provided passphrase.
|
||||||
|
|
||||||
|
@warning Could close database connection ( look at an implementation for details ).
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param passphrase The desired passphrase to validate.
|
||||||
|
@param error Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)validateDatabasePassphrase:(NSString *)passphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief Primitive database change passphrase operation.
|
||||||
|
|
||||||
|
@discussion Tries to open database on provided oldPassphrase and in success it tries to change passphrase to new passphrase.
|
||||||
|
|
||||||
|
@attention Internal usage.
|
||||||
|
|
||||||
|
@pre (error != NULL)
|
||||||
|
|
||||||
|
@param oldPassphrase: The old passphrase.
|
||||||
|
@param newPassphrase: The new passphrase.
|
||||||
|
@param error: Inout error.
|
||||||
|
@return The status of operation.
|
||||||
|
*/
|
||||||
|
- (BOOL)changeDatabasePassphrase:(NSString *)oldPassphrase toNewPassphrase:(NSString *)newPassphrase error:(NSError *__autoreleasing*)error;
|
||||||
|
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStore (Initialization)
|
||||||
|
+ (NSPersistentStoreCoordinator *)makeStoreWithOptions:(NSDictionary *)options managedObjectModel:(NSManagedObjectModel *)objModel error:(NSError * __autoreleasing*)error;
|
||||||
|
+ (NSPersistentStoreCoordinator *)coordinator:(NSPersistentStoreCoordinator *)coordinator byAddingStoreAtURL:(NSURL *)url configuration:(NSString *)configuration options:(NSDictionary *)options error:(NSError * __autoreleasing*)error;
|
||||||
|
+ (NSPersistentStoreDescription *)makeDescriptionWithOptions:(NSDictionary *)options configuration:(NSString *)configuration error:(NSError * __autoreleasing*)error API_AVAILABLE(macosx(10.12),ios(10.0),tvos(10.0),watchos(3.0));
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStore (Configuration)
|
||||||
|
//alias to options.
|
||||||
|
@property (copy, nonatomic, readonly) NSDictionary *configurationOptions;
|
||||||
|
@property (strong, nonatomic, readonly) EncryptedStoreFileManager *fileManager;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@interface EncryptedStore (OptionsKeys)
|
||||||
|
+ (NSString *)optionType;
|
||||||
|
+ (NSString *)optionPassphraseKey;
|
||||||
|
+ (NSString *)optionErrorDomain;
|
||||||
|
+ (NSString *)optionErrorMessageKey;
|
||||||
|
+ (NSString *)optionDatabaseLocation;
|
||||||
|
+ (NSString *)optionCacheSize;
|
||||||
|
+ (NSString *)optionFileManager;
|
||||||
|
@end
|
4379
ui/BankingiOSApp/Pods/EncryptedCoreData/Incremental Store/EncryptedStore.m
generated
Executable file
4379
ui/BankingiOSApp/Pods/EncryptedCoreData/Incremental Store/EncryptedStore.m
generated
Executable file
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,13 @@
|
||||||
|
Copyright 2014 iMAS
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
|
@ -0,0 +1,190 @@
|
||||||
|
# Encrypted Core Data SQLite Store [![Build Status](https://travis-ci.org/project-imas/encrypted-core-data.svg?branch=master)](https://travis-ci.org/project-imas/encrypted-core-data)[![analytics](http://www.google-analytics.com/collect?v=1&t=pageview&_s=1&dl=https%3A%2F%2Fgithub.com%2Fproject-imas%2Fencrypted-core-data&_u=MAC~&cid=1757014354.1393964045&tid=UA-38868530-1)]()
|
||||||
|
|
||||||
|
|
||||||
|
Provides a Core Data store that encrypts all data that is persisted. Besides the initial setup, the usage is exactly the same as Core Data and can be used in existing projects that use Core Data.
|
||||||
|
|
||||||
|
# Vulnerabilities Addressed
|
||||||
|
|
||||||
|
1. SQLite database is not encrypted, contents are in plain text
|
||||||
|
- CWE-311: Missing Encryption of Sensitive Data
|
||||||
|
2. SQLite database file protected with 4 digit system passcode
|
||||||
|
- CWE-326: Inadequate Encryption Strength
|
||||||
|
- SRG-APP-000129-MAPP-000029 Severity-CAT II: The mobile application must implement automated mechanisms to enforce access control restrictions which are not provided by the operating system
|
||||||
|
|
||||||
|
# Project Setup
|
||||||
|
* When creating the project make sure **Use Core Data** is selected
|
||||||
|
* Switch into your project's root directory and checkout the encrypted-core-data project code
|
||||||
|
```
|
||||||
|
cd ~/Documents/code/YourApp
|
||||||
|
|
||||||
|
git clone https://github.com/project-imas/encrypted-core-data.git
|
||||||
|
```
|
||||||
|
* Click on the top level Project item and add files ("option-command-a")
|
||||||
|
* Navigate to **encrypted-core-data**, highlight **Incremental Store**, and click **Add**
|
||||||
|
|
||||||
|
* SQLCipher is added as a git submodule within ECD. A `git submodule init` and `git submodule update` should populate the sqlcipher submodule directory, where the `sqlcipher.xcodeproj` can be found and added to your project.
|
||||||
|
* To use CommonCrypto with SQLCipher in Xcode:
|
||||||
|
- add the compiler flags `-DSQLCIPHER_CRYPTO_CC` and `-DSQLITE_HAS_CODEC` under the sqlcipher project settings > Build Settings > Custom Compiler Flags > Other C Flags
|
||||||
|
- Under your application's project settings > Build Phases, add `sqlcipher` to Target Dependencies, and `libsqlcipher.a` and `Security.framework` to Link Binary With Libraries.
|
||||||
|
|
||||||
|
* _Note:_ Along with the move to CommonCrypto, we've updated the version of SQLCipher included as a submodule from v2.0.6 to v3.1.0. Databases created with v2.0.6 will not be able to be read directly by v3.1.0, and support for legacy database migration is not yet supported by ECD.
|
||||||
|
|
||||||
|
# Installation via CocoaPod
|
||||||
|
* If you don't already have CocoaPods installed, do `$ sudo gem install cocoapods` in your terminal. (See the [CocoaPods website](http://guides.cocoapods.org/using/getting-started.html#getting-started) for details.)
|
||||||
|
* In your project directory, do `pod init` to create a Podfile.
|
||||||
|
* Add `pod 'EncryptedCoreData', :git => 'https://github.com/project-imas/encrypted-core-data.git'` to your Podfile
|
||||||
|
* Run `pod install`
|
||||||
|
* In your application delegate source file (AppDelegate.m), add `#import "EncryptedStore.h"`
|
||||||
|
|
||||||
|
# Using EncryptedStoreFileManager
|
||||||
|
In case of strong coupling with file system functions and others default conventions FileManager was introduced.
|
||||||
|
|
||||||
|
Have a look at components:
|
||||||
|
|
||||||
|
* EncryptedStoreFileManagerConfiguration
|
||||||
|
* EncryptedStoreFileManager
|
||||||
|
|
||||||
|
Various options are stored in Configuration.
|
||||||
|
|
||||||
|
And FileManager could be passed to all functions as an option.
|
||||||
|
|
||||||
|
```
|
||||||
|
NSDictionary *options = @{ EncryptedStore.optionFileManager : fileManager };
|
||||||
|
```
|
||||||
|
|
||||||
|
However, it should solve some dirty hacks.
|
||||||
|
Let's try.
|
||||||
|
|
||||||
|
## Database lives in different bundle.
|
||||||
|
|
||||||
|
```
|
||||||
|
NSBundle *bundle = [NSBundle bundleWithIdentifier:"com.opensource.database_framework"];
|
||||||
|
EncryptedStoreFileManagerConfiguration *configuration = [EncryptedStoreFileManagerConfiguration new];
|
||||||
|
configuration.bundle = bundle;
|
||||||
|
|
||||||
|
// or
|
||||||
|
[[EncryptedStoreFileManagerConfiguration alloc] initWithOptions: @{EncryptedStoreFileManagerConfiguration.optionBundle : bundle}];
|
||||||
|
|
||||||
|
// next, you need to bypassing configuration to setup store.
|
||||||
|
EncryptedStoreFileManager *fileManager = [[EncryptedStoreFileManager alloc] initWithConfiguration:configuration];
|
||||||
|
NSDictionary *options = @{ EncryptedStore.optionFileManager : fileManager };
|
||||||
|
```
|
||||||
|
|
||||||
|
## Complex setup and file system methods separation.
|
||||||
|
|
||||||
|
By default, database file (sqlite) is stored on disk in Application Support Directory.
|
||||||
|
But you can configure file extension, file name and file url in `EncryptedStoreFileManagerConfiguration`.
|
||||||
|
|
||||||
|
## Apply attributes to database file.
|
||||||
|
In general, this functionality is not needed.
|
||||||
|
It is a part of setup core data stack process.
|
||||||
|
|
||||||
|
## Configure persistentContainer
|
||||||
|
`NSPersistentContainer` uses NSPersistentStoreDescriptions to configure stores.
|
||||||
|
|
||||||
|
```
|
||||||
|
NSManagedObjectModel *model = [NSManagedObjectModel new];
|
||||||
|
NSPersistentContainer *container = [[NSPersistentContainer alloc] initWithName:@"abc" managedObjectModel:model];
|
||||||
|
NSDictionary *options = @{
|
||||||
|
self.optionPassphraseKey : @"123",
|
||||||
|
self.optionFileManager : [EncryptedStoreFileManager defaultManager]
|
||||||
|
};
|
||||||
|
NSPersistentStoreDescription *description = [self makeDescriptionWithOptions:options configuration:nil error:nil];
|
||||||
|
|
||||||
|
container.persistentStoreDescriptions = @[description];
|
||||||
|
|
||||||
|
[container loadPersistentStoresWithCompletionHandler:^(NSPersistentStoreDescription *description, NSError * error) {
|
||||||
|
if (error) {
|
||||||
|
NSLog(@"error! %@", error);
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
```
|
||||||
|
|
||||||
|
But if you wish:
|
||||||
|
|
||||||
|
```
|
||||||
|
EncryptedStore *store = // retrieve store from coordinator.
|
||||||
|
|
||||||
|
// set database file attributes
|
||||||
|
NSDictionary *attributes = // set attributes
|
||||||
|
NSError *error = nil;
|
||||||
|
[store.fileManager setAttributes:attributes ofItemAtURL:store.fileManager.databaseURL error:&error];
|
||||||
|
|
||||||
|
// inspect bundle
|
||||||
|
store.fileManager.configuration.bundle;
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
# Using EncryptedStore
|
||||||
|
|
||||||
|
EncryptedStore is known to work successfully on iOS versions 6.0 through 9.2.
|
||||||
|
|
||||||
|
If you wish to set a custom cache size and/or custom database URL:
|
||||||
|
create an NSDictionary to set the options for your EncryptedStore, replacing customPasscode, customCacheSize, and/or customDatabaseURL:
|
||||||
|
```objc
|
||||||
|
NSDictionary *options = @{ EncryptedStorePassphraseKey: (NSString *) customPasscode,
|
||||||
|
EncryptedStoreCacheSize: (NSNumber *) customCacheSize,
|
||||||
|
EncryptedStoreDatabaseLocation: (NSURL *) customDatabaseURL
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
In your application delegate source file (i.e. AppDelegate.m) you should see
|
||||||
|
```objc
|
||||||
|
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
|
||||||
|
```
|
||||||
|
If you created an NSDictionary with custom options, replace that line with
|
||||||
|
```objc
|
||||||
|
NSPersistentStoreCoordinator *coordinator = [EncryptedStore makeStoreWithOptions:options managedObjectModel:[self managedObjectModel]];
|
||||||
|
```
|
||||||
|
|
||||||
|
Otherwise, replace that line with:
|
||||||
|
```objc
|
||||||
|
NSPersistentStoreCoordinator *coordinator = [EncryptedStore makeStore:[self managedObjectModel]:@"SOME_PASSCODE"];
|
||||||
|
```
|
||||||
|
making sure to replace "SOME_PASSCODE" with a passcode of your own.
|
||||||
|
|
||||||
|
Also in the same file add an import for EncryptedStore.h:
|
||||||
|
```objc
|
||||||
|
#import "EncryptedStore.h"
|
||||||
|
```
|
||||||
|
|
||||||
|
If there are issues you can add `-com.apple.CoreData.SQLDebug 1` to see all statements encryted-cored-data generates be logged.
|
||||||
|
|
||||||
|
# Features
|
||||||
|
|
||||||
|
- One-to-one relationships
|
||||||
|
- One-to-many relationships
|
||||||
|
- Many-to-Many relationships (NEW)
|
||||||
|
- Predicates
|
||||||
|
- Inherited entities
|
||||||
|
|
||||||
|
Missing features and known bugs are maintained on the [issue tracker](https://github.com/project-imas/encrypted-core-data/issues?state=open)
|
||||||
|
|
||||||
|
# Diagram
|
||||||
|
|
||||||
|
Below is a diagram showing the differences between NSSQLiteStore and EncryptedStore. Note that actual the SQLite calls are coupled fairly strongly with the layer wrapping it:
|
||||||
|
<img src="diagram.jpg" />
|
||||||
|
|
||||||
|
|
||||||
|
# Strings Comparison
|
||||||
|
|
||||||
|
Below is the output of doing the unix *strings* command on a sample applications .sqlite file. As you can see, the default persistence store leaves all information in plaintext:
|
||||||
|
<img src="stringOutput.jpg" />
|
||||||
|
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Copyright 2012 - 2014 The MITRE Corporation, All Rights Reserved.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this work except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"name": "EncryptedCoreData",
|
||||||
|
"version": "3.1",
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"summary": "iOS Core Data encrypted SQLite store using SQLCipher",
|
||||||
|
"description": "Provides a Core Data store that encrypts all data that is persisted. Besides the initial setup, the usage is exactly the same as Core Data and can be used in existing projects that use Core Data.",
|
||||||
|
"homepage": "https://github.com/project-imas/encrypted-core-data/",
|
||||||
|
"authors": {
|
||||||
|
"MITRE": "imas-proj-list@lists.mitre.org"
|
||||||
|
},
|
||||||
|
"source": {
|
||||||
|
"git": "https://github.com/project-imas/encrypted-core-data.git",
|
||||||
|
"tag": "3.1"
|
||||||
|
},
|
||||||
|
"frameworks": [
|
||||||
|
"CoreData",
|
||||||
|
"Security"
|
||||||
|
],
|
||||||
|
"requires_arc": true,
|
||||||
|
"platforms": {
|
||||||
|
"ios": "8.0",
|
||||||
|
"osx": "10.10"
|
||||||
|
},
|
||||||
|
"source_files": "Incremental Store/**/*.{h,m}",
|
||||||
|
"public_header_files": "Incremental Store/EncryptedStore.h",
|
||||||
|
"dependencies": {
|
||||||
|
"SQLCipher": [
|
||||||
|
"~> 3.4.0"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xcconfig": {
|
||||||
|
"OTHER_CFLAGS": "$(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
PODS:
|
||||||
|
- EncryptedCoreData (3.1):
|
||||||
|
- SQLCipher (~> 3.4.0)
|
||||||
|
- SQLCipher (3.4.2):
|
||||||
|
- SQLCipher/standard (= 3.4.2)
|
||||||
|
- SQLCipher/common (3.4.2)
|
||||||
|
- SQLCipher/standard (3.4.2):
|
||||||
|
- SQLCipher/common
|
||||||
|
|
||||||
|
DEPENDENCIES:
|
||||||
|
- EncryptedCoreData (from `https://github.com/project-imas/encrypted-core-data.git`)
|
||||||
|
|
||||||
|
SPEC REPOS:
|
||||||
|
trunk:
|
||||||
|
- SQLCipher
|
||||||
|
|
||||||
|
EXTERNAL SOURCES:
|
||||||
|
EncryptedCoreData:
|
||||||
|
:git: https://github.com/project-imas/encrypted-core-data.git
|
||||||
|
|
||||||
|
CHECKOUT OPTIONS:
|
||||||
|
EncryptedCoreData:
|
||||||
|
:commit: b97ffaf2f19dad4d1558bc9b0668cc2e09d17347
|
||||||
|
:git: https://github.com/project-imas/encrypted-core-data.git
|
||||||
|
|
||||||
|
SPEC CHECKSUMS:
|
||||||
|
EncryptedCoreData: f6762fb05f88a52f36c5648659abc91b57f244b4
|
||||||
|
SQLCipher: f9fcf29b2e59ced7defc2a2bdd0ebe79b40d4990
|
||||||
|
|
||||||
|
PODFILE CHECKSUM: e88127ccd3923c474778210b50472238a358912e
|
||||||
|
|
||||||
|
COCOAPODS: 1.9.3
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,24 @@
|
||||||
|
Copyright (c) 2008, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@ -0,0 +1,122 @@
|
||||||
|
## SQLCipher
|
||||||
|
|
||||||
|
SQLCipher extends the [SQLite](https://www.sqlite.org) database library to add security enhancements that make it more suitable for encrypted local data storage such as on-the-fly encryption, tamper evidence, and key derivation. Based on SQLite, SQLCipher closely tracks SQLite and periodically integrates stable SQLite release features.
|
||||||
|
|
||||||
|
SQLCipher is maintained by Zetetic, LLC, the official site can be found [here](https://www.zetetic.net/sqlcipher/).
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- Fast performance with as little as 5-15% overhead for encryption on many operations
|
||||||
|
- 100% of data in the database file is encrypted
|
||||||
|
- Good security practices (CBC mode, HMAC, key derivation)
|
||||||
|
- Zero-configuration and application level cryptography
|
||||||
|
- Algorithms provided by the peer reviewed OpenSSL crypto library.
|
||||||
|
- Configurable crypto providers
|
||||||
|
|
||||||
|
## Contributions
|
||||||
|
|
||||||
|
We welcome contributions, to contribute to SQLCipher, a [contributor agreement](https://www.zetetic.net/contributions/) needs to be submitted. All submissions should be based on the `prerelease` branch.
|
||||||
|
|
||||||
|
## Compiling
|
||||||
|
|
||||||
|
Building SQLCipher is almost the same as compiling a regular version of
|
||||||
|
SQLite with two small exceptions:
|
||||||
|
|
||||||
|
1. You *must* define `SQLITE_HAS_CODEC` and `SQLITE_TEMP_STORE=2` when building sqlcipher.
|
||||||
|
2. If compiling against the default OpenSSL crypto provider, you will need to link libcrypto
|
||||||
|
|
||||||
|
Example Static linking (replace /opt/local/lib with the path to libcrypto.a). Note in this
|
||||||
|
example, `--enable-tempstore=yes` is setting `SQLITE_TEMP_STORE=2` for the build.
|
||||||
|
|
||||||
|
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
|
||||||
|
LDFLAGS="/opt/local/lib/libcrypto.a"
|
||||||
|
$ make
|
||||||
|
|
||||||
|
Example Dynamic linking
|
||||||
|
|
||||||
|
$ ./configure --enable-tempstore=yes CFLAGS="-DSQLITE_HAS_CODEC" \
|
||||||
|
LDFLAGS="-lcrypto"
|
||||||
|
$ make
|
||||||
|
|
||||||
|
## Encrypting a database
|
||||||
|
|
||||||
|
To specify an encryption passphrase for the database via the SQL interface you
|
||||||
|
use a pragma. The passphrase you enter is passed through PBKDF2 key derivation to
|
||||||
|
obtain the encryption key for the database
|
||||||
|
|
||||||
|
PRAGMA key = 'passphrase';
|
||||||
|
|
||||||
|
Alternately, you can specify an exact byte sequence using a blob literal. If you
|
||||||
|
use this method it is your responsibility to ensure that the data you provide is a
|
||||||
|
64 character hex string, which will be converted directly to 32 bytes (256 bits) of
|
||||||
|
key data without key derivation.
|
||||||
|
|
||||||
|
PRAGMA key = "x'2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99'";
|
||||||
|
|
||||||
|
To encrypt a database programatically you can use the `sqlite3_key` function.
|
||||||
|
The data provided in `pKey` is converted to an encryption key according to the
|
||||||
|
same rules as `PRAGMA key`.
|
||||||
|
|
||||||
|
int sqlite3_key(sqlite3 *db, const void *pKey, int nKey);
|
||||||
|
|
||||||
|
`PRAGMA key` or `sqlite3_key` should be called as the first operation when a database is open.
|
||||||
|
|
||||||
|
## Changing a database key
|
||||||
|
|
||||||
|
To change the encryption passphrase for an existing database you may use the rekey pragma
|
||||||
|
after you've supplied the correct database password;
|
||||||
|
|
||||||
|
PRAGMA key = 'passphrase'; -- start with the existing database passphrase
|
||||||
|
PRAGMA rekey = 'new-passphrase'; -- rekey will reencrypt with the new passphrase
|
||||||
|
|
||||||
|
The hex rekey pragma may be used to rekey to a specific binary value
|
||||||
|
|
||||||
|
PRAGMA rekey = "x'2DD29CA851E7B56E4697B0E1F08507293D761A05CE4D1B628663F411A8086D99'";
|
||||||
|
|
||||||
|
This can be accomplished programtically by using sqlite3_rekey;
|
||||||
|
|
||||||
|
sqlite3_rekey(sqlite3 *db, const void *pKey, int nKey)
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
The primary avenue for support and discussions is the SQLCipher discuss site:
|
||||||
|
|
||||||
|
https://discuss.zetetic.net/c/sqlcipher
|
||||||
|
|
||||||
|
Issues or support questions on using SQLCipher should be entered into the
|
||||||
|
GitHub Issue tracker:
|
||||||
|
|
||||||
|
https://github.com/sqlcipher/sqlcipher/issues
|
||||||
|
|
||||||
|
Please DO NOT post issues, support questions, or other problems to blog
|
||||||
|
posts about SQLCipher as we do not monitor them frequently.
|
||||||
|
|
||||||
|
If you are using SQLCipher in your own software please let us know at
|
||||||
|
support@zetetic.net!
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
Copyright (c) 2016, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
26
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-Info.plist
generated
Normal file
26
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-Info.plist
generated
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>3.1.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
5
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-dummy.m
generated
Normal file
5
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-dummy.m
generated
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_EncryptedCoreData : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_EncryptedCoreData
|
||||||
|
@end
|
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-prefix.pch
generated
Normal file
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-prefix.pch
generated
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
17
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-umbrella.h
generated
Normal file
17
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData-umbrella.h
generated
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#import "EncryptedStore.h"
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double EncryptedCoreDataVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char EncryptedCoreDataVersionString[];
|
||||||
|
|
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.debug.xcconfig
generated
Normal file
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.debug.xcconfig
generated
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/EncryptedCoreData
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
6
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.modulemap
generated
Normal file
6
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.modulemap
generated
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
framework module EncryptedCoreData {
|
||||||
|
umbrella header "EncryptedCoreData-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.release.xcconfig
generated
Normal file
12
ui/BankingiOSApp/Pods/Target Support Files/EncryptedCoreData/EncryptedCoreData.release.xcconfig
generated
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/EncryptedCoreData
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Acknowledgements
|
||||||
|
This application makes use of the following third party libraries:
|
||||||
|
|
||||||
|
## EncryptedCoreData
|
||||||
|
|
||||||
|
Copyright 2014 iMAS
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
## SQLCipher
|
||||||
|
|
||||||
|
Copyright (c) 2008, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
Generated by CocoaPods - https://cocoapods.org
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreferenceSpecifiers</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>This application makes use of the following third party libraries:</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright 2014 iMAS
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>Apache-2.0</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>EncryptedCoreData</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2008, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>BSD</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>SQLCipher</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string></string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>StringsTable</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_Pods_BankingiOSApp_BankingiOSAppUITests : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_Pods_BankingiOSApp_BankingiOSAppUITests
|
||||||
|
@end
|
|
@ -0,0 +1,3 @@
|
||||||
|
${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests-frameworks.sh
|
||||||
|
${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework
|
||||||
|
${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework
|
|
@ -0,0 +1,2 @@
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EncryptedCoreData.framework
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SQLCipher.framework
|
|
@ -0,0 +1,3 @@
|
||||||
|
${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp-BankingiOSAppUITests/Pods-BankingiOSApp-BankingiOSAppUITests-frameworks.sh
|
||||||
|
${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework
|
||||||
|
${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework
|
|
@ -0,0 +1,2 @@
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EncryptedCoreData.framework
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SQLCipher.framework
|
|
@ -0,0 +1,209 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function on_error {
|
||||||
|
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
|
||||||
|
}
|
||||||
|
trap 'on_error $LINENO' ERR
|
||||||
|
|
||||||
|
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
|
||||||
|
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
|
||||||
|
# frameworks to, so exit 0 (signalling the script phase was successful).
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
|
||||||
|
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||||
|
|
||||||
|
# Used as a return value for each invocation of `strip_invalid_archs` function.
|
||||||
|
STRIP_BINARY_RETVAL=0
|
||||||
|
|
||||||
|
# This protects against multiple targets copying the same framework dependency at the same time. The solution
|
||||||
|
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
|
||||||
|
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
|
||||||
|
|
||||||
|
# Copies and strips a vendored framework
|
||||||
|
install_framework()
|
||||||
|
{
|
||||||
|
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$1"
|
||||||
|
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
|
||||||
|
elif [ -r "$1" ]; then
|
||||||
|
local source="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
if [ -L "${source}" ]; then
|
||||||
|
echo "Symlinked..."
|
||||||
|
source="$(readlink "${source}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use filter instead of exclude so missing patterns don't throw errors.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .framework "$1")"
|
||||||
|
binary="${destination}/${basename}.framework/${basename}"
|
||||||
|
|
||||||
|
if ! [ -r "$binary" ]; then
|
||||||
|
binary="${destination}/${basename}"
|
||||||
|
elif [ -L "${binary}" ]; then
|
||||||
|
echo "Destination binary is symlinked..."
|
||||||
|
dirname="$(dirname "${binary}")"
|
||||||
|
binary="${dirname}/$(readlink "${binary}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||||
|
strip_invalid_archs "$binary"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resign the code if required by the build settings to avoid unstable apps
|
||||||
|
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||||
|
|
||||||
|
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
|
||||||
|
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
|
||||||
|
local swift_runtime_libs
|
||||||
|
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
|
||||||
|
for lib in $swift_runtime_libs; do
|
||||||
|
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||||
|
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||||
|
code_sign_if_enabled "${destination}/${lib}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copies and strips a vendored dSYM
|
||||||
|
install_dsym() {
|
||||||
|
local source="$1"
|
||||||
|
warn_missing_arch=${2:-true}
|
||||||
|
if [ -r "$source" ]; then
|
||||||
|
# Copy the dSYM into the targets temp dir.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .dSYM "$source")"
|
||||||
|
binary_name="$(ls "$source/Contents/Resources/DWARF")"
|
||||||
|
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
|
||||||
|
strip_invalid_archs "$binary" "$warn_missing_arch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
|
||||||
|
# Move the stripped file into its final destination.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
|
||||||
|
else
|
||||||
|
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
|
||||||
|
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copies the bcsymbolmap files of a vendored framework
|
||||||
|
install_bcsymbolmap() {
|
||||||
|
local bcsymbolmap_path="$1"
|
||||||
|
local destination="${BUILT_PRODUCTS_DIR}"
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Signs a framework with the provided identity
|
||||||
|
code_sign_if_enabled() {
|
||||||
|
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||||
|
# Use the current code_sign_identity
|
||||||
|
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||||
|
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
|
||||||
|
|
||||||
|
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||||
|
code_sign_cmd="$code_sign_cmd &"
|
||||||
|
fi
|
||||||
|
echo "$code_sign_cmd"
|
||||||
|
eval "$code_sign_cmd"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Strip invalid architectures
|
||||||
|
strip_invalid_archs() {
|
||||||
|
binary="$1"
|
||||||
|
warn_missing_arch=${2:-true}
|
||||||
|
# Get architectures for current target binary
|
||||||
|
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
|
||||||
|
# Intersect them with the architectures we are building for
|
||||||
|
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
|
||||||
|
# If there are no archs supported by this binary then warn the user
|
||||||
|
if [[ -z "$intersected_archs" ]]; then
|
||||||
|
if [[ "$warn_missing_arch" == "true" ]]; then
|
||||||
|
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
|
||||||
|
fi
|
||||||
|
STRIP_BINARY_RETVAL=0
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
stripped=""
|
||||||
|
for arch in $binary_archs; do
|
||||||
|
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
|
||||||
|
# Strip non-valid architectures in-place
|
||||||
|
lipo -remove "$arch" -output "$binary" "$binary"
|
||||||
|
stripped="$stripped $arch"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$stripped" ]]; then
|
||||||
|
echo "Stripped $binary of architectures:$stripped"
|
||||||
|
fi
|
||||||
|
STRIP_BINARY_RETVAL=1
|
||||||
|
}
|
||||||
|
|
||||||
|
install_artifact() {
|
||||||
|
artifact="$1"
|
||||||
|
base="$(basename "$artifact")"
|
||||||
|
case $base in
|
||||||
|
*.framework)
|
||||||
|
install_framework "$artifact"
|
||||||
|
;;
|
||||||
|
*.dSYM)
|
||||||
|
# Suppress arch warnings since XCFrameworks will include many dSYM files
|
||||||
|
install_dsym "$artifact" "false"
|
||||||
|
;;
|
||||||
|
*.bcsymbolmap)
|
||||||
|
install_bcsymbolmap "$artifact"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "error: Unrecognized artifact "$artifact""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_artifacts() {
|
||||||
|
file_list="$1"
|
||||||
|
while read artifact; do
|
||||||
|
install_artifact "$artifact"
|
||||||
|
done <$file_list
|
||||||
|
}
|
||||||
|
|
||||||
|
ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt"
|
||||||
|
if [ -r "${ARTIFACT_LIST_FILE}" ]; then
|
||||||
|
copy_artifacts "${ARTIFACT_LIST_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$CONFIGURATION" == "Debug" ]]; then
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework"
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework"
|
||||||
|
fi
|
||||||
|
if [[ "$CONFIGURATION" == "Release" ]]; then
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework"
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework"
|
||||||
|
fi
|
||||||
|
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||||
|
wait
|
||||||
|
fi
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_BankingiOSApp_BankingiOSAppUITestsVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_BankingiOSApp_BankingiOSAppUITestsVersionString[];
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module Pods_BankingiOSApp_BankingiOSAppUITests {
|
||||||
|
umbrella header "Pods-BankingiOSApp-BankingiOSAppUITests-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
26
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-Info.plist
generated
Normal file
26
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-Info.plist
generated
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,48 @@
|
||||||
|
# Acknowledgements
|
||||||
|
This application makes use of the following third party libraries:
|
||||||
|
|
||||||
|
## EncryptedCoreData
|
||||||
|
|
||||||
|
Copyright 2014 iMAS
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
## SQLCipher
|
||||||
|
|
||||||
|
Copyright (c) 2008, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
Generated by CocoaPods - https://cocoapods.org
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreferenceSpecifiers</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>This application makes use of the following third party libraries:</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright 2014 iMAS
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>Apache-2.0</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>EncryptedCoreData</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2008, ZETETIC LLC
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of the ZETETIC LLC nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY ZETETIC LLC ''AS IS'' AND ANY
|
||||||
|
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL ZETETIC LLC BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>BSD</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>SQLCipher</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string></string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>StringsTable</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
5
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-dummy.m
generated
Normal file
5
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-dummy.m
generated
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_Pods_BankingiOSApp : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_Pods_BankingiOSApp
|
||||||
|
@end
|
|
@ -0,0 +1,3 @@
|
||||||
|
${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks.sh
|
||||||
|
${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework
|
||||||
|
${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework
|
|
@ -0,0 +1,2 @@
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EncryptedCoreData.framework
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SQLCipher.framework
|
|
@ -0,0 +1,3 @@
|
||||||
|
${PODS_ROOT}/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks.sh
|
||||||
|
${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework
|
||||||
|
${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework
|
|
@ -0,0 +1,2 @@
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EncryptedCoreData.framework
|
||||||
|
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SQLCipher.framework
|
209
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks.sh
generated
Executable file
209
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-frameworks.sh
generated
Executable file
|
@ -0,0 +1,209 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
set -u
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
function on_error {
|
||||||
|
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
|
||||||
|
}
|
||||||
|
trap 'on_error $LINENO' ERR
|
||||||
|
|
||||||
|
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
|
||||||
|
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
|
||||||
|
# frameworks to, so exit 0 (signalling the script phase was successful).
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
|
||||||
|
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||||
|
|
||||||
|
# Used as a return value for each invocation of `strip_invalid_archs` function.
|
||||||
|
STRIP_BINARY_RETVAL=0
|
||||||
|
|
||||||
|
# This protects against multiple targets copying the same framework dependency at the same time. The solution
|
||||||
|
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
|
||||||
|
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
|
||||||
|
|
||||||
|
# Copies and strips a vendored framework
|
||||||
|
install_framework()
|
||||||
|
{
|
||||||
|
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$1"
|
||||||
|
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
|
||||||
|
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
|
||||||
|
elif [ -r "$1" ]; then
|
||||||
|
local source="$1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||||
|
|
||||||
|
if [ -L "${source}" ]; then
|
||||||
|
echo "Symlinked..."
|
||||||
|
source="$(readlink "${source}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use filter instead of exclude so missing patterns don't throw errors.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .framework "$1")"
|
||||||
|
binary="${destination}/${basename}.framework/${basename}"
|
||||||
|
|
||||||
|
if ! [ -r "$binary" ]; then
|
||||||
|
binary="${destination}/${basename}"
|
||||||
|
elif [ -L "${binary}" ]; then
|
||||||
|
echo "Destination binary is symlinked..."
|
||||||
|
dirname="$(dirname "${binary}")"
|
||||||
|
binary="${dirname}/$(readlink "${binary}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||||
|
strip_invalid_archs "$binary"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Resign the code if required by the build settings to avoid unstable apps
|
||||||
|
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||||
|
|
||||||
|
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
|
||||||
|
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
|
||||||
|
local swift_runtime_libs
|
||||||
|
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
|
||||||
|
for lib in $swift_runtime_libs; do
|
||||||
|
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||||
|
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||||
|
code_sign_if_enabled "${destination}/${lib}"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copies and strips a vendored dSYM
|
||||||
|
install_dsym() {
|
||||||
|
local source="$1"
|
||||||
|
warn_missing_arch=${2:-true}
|
||||||
|
if [ -r "$source" ]; then
|
||||||
|
# Copy the dSYM into the targets temp dir.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
|
||||||
|
|
||||||
|
local basename
|
||||||
|
basename="$(basename -s .dSYM "$source")"
|
||||||
|
binary_name="$(ls "$source/Contents/Resources/DWARF")"
|
||||||
|
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
|
||||||
|
|
||||||
|
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||||
|
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
|
||||||
|
strip_invalid_archs "$binary" "$warn_missing_arch"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
|
||||||
|
# Move the stripped file into its final destination.
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
|
||||||
|
else
|
||||||
|
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
|
||||||
|
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Copies the bcsymbolmap files of a vendored framework
|
||||||
|
install_bcsymbolmap() {
|
||||||
|
local bcsymbolmap_path="$1"
|
||||||
|
local destination="${BUILT_PRODUCTS_DIR}"
|
||||||
|
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
|
||||||
|
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Signs a framework with the provided identity
|
||||||
|
code_sign_if_enabled() {
|
||||||
|
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
|
||||||
|
# Use the current code_sign_identity
|
||||||
|
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||||
|
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
|
||||||
|
|
||||||
|
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||||
|
code_sign_cmd="$code_sign_cmd &"
|
||||||
|
fi
|
||||||
|
echo "$code_sign_cmd"
|
||||||
|
eval "$code_sign_cmd"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Strip invalid architectures
|
||||||
|
strip_invalid_archs() {
|
||||||
|
binary="$1"
|
||||||
|
warn_missing_arch=${2:-true}
|
||||||
|
# Get architectures for current target binary
|
||||||
|
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
|
||||||
|
# Intersect them with the architectures we are building for
|
||||||
|
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
|
||||||
|
# If there are no archs supported by this binary then warn the user
|
||||||
|
if [[ -z "$intersected_archs" ]]; then
|
||||||
|
if [[ "$warn_missing_arch" == "true" ]]; then
|
||||||
|
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
|
||||||
|
fi
|
||||||
|
STRIP_BINARY_RETVAL=0
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
stripped=""
|
||||||
|
for arch in $binary_archs; do
|
||||||
|
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
|
||||||
|
# Strip non-valid architectures in-place
|
||||||
|
lipo -remove "$arch" -output "$binary" "$binary"
|
||||||
|
stripped="$stripped $arch"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ "$stripped" ]]; then
|
||||||
|
echo "Stripped $binary of architectures:$stripped"
|
||||||
|
fi
|
||||||
|
STRIP_BINARY_RETVAL=1
|
||||||
|
}
|
||||||
|
|
||||||
|
install_artifact() {
|
||||||
|
artifact="$1"
|
||||||
|
base="$(basename "$artifact")"
|
||||||
|
case $base in
|
||||||
|
*.framework)
|
||||||
|
install_framework "$artifact"
|
||||||
|
;;
|
||||||
|
*.dSYM)
|
||||||
|
# Suppress arch warnings since XCFrameworks will include many dSYM files
|
||||||
|
install_dsym "$artifact" "false"
|
||||||
|
;;
|
||||||
|
*.bcsymbolmap)
|
||||||
|
install_bcsymbolmap "$artifact"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "error: Unrecognized artifact "$artifact""
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
copy_artifacts() {
|
||||||
|
file_list="$1"
|
||||||
|
while read artifact; do
|
||||||
|
install_artifact "$artifact"
|
||||||
|
done <$file_list
|
||||||
|
}
|
||||||
|
|
||||||
|
ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt"
|
||||||
|
if [ -r "${ARTIFACT_LIST_FILE}" ]; then
|
||||||
|
copy_artifacts "${ARTIFACT_LIST_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$CONFIGURATION" == "Debug" ]]; then
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework"
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework"
|
||||||
|
fi
|
||||||
|
if [[ "$CONFIGURATION" == "Release" ]]; then
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/EncryptedCoreData/EncryptedCoreData.framework"
|
||||||
|
install_framework "${BUILT_PRODUCTS_DIR}/SQLCipher/SQLCipher.framework"
|
||||||
|
fi
|
||||||
|
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
|
||||||
|
wait
|
||||||
|
fi
|
16
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-umbrella.h
generated
Normal file
16
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp-umbrella.h
generated
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_BankingiOSAppVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_BankingiOSAppVersionString[];
|
||||||
|
|
11
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.debug.xcconfig
generated
Normal file
11
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.debug.xcconfig
generated
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
6
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.modulemap
generated
Normal file
6
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.modulemap
generated
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
framework module Pods_BankingiOSApp {
|
||||||
|
umbrella header "Pods-BankingiOSApp-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
11
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.release.xcconfig
generated
Normal file
11
ui/BankingiOSApp/Pods/Target Support Files/Pods-BankingiOSApp/Pods-BankingiOSApp.release.xcconfig
generated
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks'
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,3 @@
|
||||||
|
# Acknowledgements
|
||||||
|
This application makes use of the following third party libraries:
|
||||||
|
Generated by CocoaPods - https://cocoapods.org
|
|
@ -0,0 +1,29 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>PreferenceSpecifiers</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>This application makes use of the following third party libraries:</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string></string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>StringsTable</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>Acknowledgements</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_Pods_BankingiOSAppTests : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_Pods_BankingiOSAppTests
|
||||||
|
@end
|
|
@ -0,0 +1,16 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double Pods_BankingiOSAppTestsVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char Pods_BankingiOSAppTestsVersionString[];
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module Pods_BankingiOSAppTests {
|
||||||
|
umbrella header "Pods-BankingiOSAppTests-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher"
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/EncryptedCoreData/EncryptedCoreData.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher/SQLCipher.framework/Headers"
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLCIPHER_CRYPTO_CC $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "CoreData" -framework "EncryptedCoreData" -framework "Foundation" -framework "SQLCipher" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>3.4.2</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>${CURRENT_PROJECT_VERSION}</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,5 @@
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_SQLCipher : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_SQLCipher
|
||||||
|
@end
|
|
@ -0,0 +1,12 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#import "sqlite3.h"
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double SQLCipherVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char SQLCipherVersionString[];
|
||||||
|
|
11
ui/BankingiOSApp/Pods/Target Support Files/SQLCipher/SQLCipher.debug.xcconfig
generated
Normal file
11
ui/BankingiOSApp/Pods/Target Support Files/SQLCipher/SQLCipher.debug.xcconfig
generated
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/SQLCipher
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,6 @@
|
||||||
|
framework module SQLCipher {
|
||||||
|
umbrella header "SQLCipher-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
11
ui/BankingiOSApp/Pods/Target Support Files/SQLCipher/SQLCipher.release.xcconfig
generated
Normal file
11
ui/BankingiOSApp/Pods/Target Support Files/SQLCipher/SQLCipher.release.xcconfig
generated
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SQLCipher
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) SQLITE_HAS_CODEC=1
|
||||||
|
OTHER_CFLAGS = $(inherited) -DSQLITE_HAS_CODEC -DSQLITE_TEMP_STORE=2 -DSQLITE_SOUNDEX -DSQLITE_THREADSAFE -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_STAT3 -DSQLITE_ENABLE_STAT4 -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_LOAD_EXTENSION -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLCIPHER_CRYPTO_CC -DHAVE_USLEEP=1 -DSQLITE_MAX_VARIABLE_NUMBER=99999
|
||||||
|
OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "Security"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/SQLCipher
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
Loading…
Reference in New Issue