Description
Trust is a platform that allows building trust and security between people and technology. Trust-Audit allows you to send custom or automatic audit per device.
Implementation
To implement and use the following library you need to previously install TrustIdentify. Add in your podfile:
platform :ios, '13.0'
source 'https://gitlab.com/trustchile/movil-libs/lat_trust_mobile_ios_audit-v2_library_podspec'
source 'https://cdn.cocoapods.org'
target 'AppName' do
use_frameworks!
...
pod 'TrustAudit', '~> 2.0.0'
...
end
And execute:
pod install
Initialize
If you need to start a main audit instance and set the following to your AppDelegate didFinishLaunchingWithOptions:
import TrustIdentify
import TrustAudit
extension AppDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let serviceName = "defaultServiceName"
let accessGroup = "A2D9N3HN.trustID.example"
let clientID = "example890348h02758a5f8bee4ba2d7880a48d0581e9efb"
let clientSecret = "example8015437e7a963dacaa778961f647aa37f6730bd"
TrustAudit.shared.set(serviceName: serviceName, accessGroup: accessGroup)
TrustAudit.shared.set(currentEnvironment: .prod) // Set environment
TrustAudit.shared.createAuditClientCredentials(clientID: clientID, clientSecret: clientSecret)
return true
}
}
To generate a new audit you need activate Access WiFi Information in Signing & Capabilities.
Once the TrustID is created you can use the next login AuditDataManager example:
import TrustAudit
import TrustIdentify
import CoreTelephony
import SystemConfiguration.CaptiveNetwork
// MARK: - AuditDataManagerProtocol
protocol AuditDataManagerProtocol: AnyObject {
func createLoginAudit()
}
// MARK: - AuditDataManager
class AuditDataManager: NSObject, AuditDataManagerProtocol {
func createLoginAudit() {
guard let savedTrustId = TrustIdentify.shared.getTrustID() else { return }
TrustAudit.shared.createAudit(
trustID: savedTrustId,
connectionType: connectionType,
connectionName: ssidConnection,
type: "trust identify",
result: "success",
method: "createLoginAudit",
operation: "login",
userDni: "123456789",
userEmail: "example@example.com",
userPhone: "99999999",
userFirstName: "FirstName",
userLastName: "LastName"
)
}
}
You can create an audit (without resultObject) with the following code:
func createAudit(trustID: String, connectionType: String, connectionName: String, type: String, result: String, method: String, operation: String, userDni: String, userEmail: String, userPhone: String, userFirstName: String, userLastName: String)
You can create an audit (considering resultObject) with the following code:
func createAudit<T: NSObject & Codable>(trustID: String, connectionType: String, connectionName: String, type: String, result: String, method: String, operation: String, resultObject: T?)
Parameters
- trustID: Trust id from TrustIdentify.
- connectionType: Kind of connection type (3g, 4g, wifi).
- connectionName: SSID name.
- type: Audit type.
- result: Audit result (succes, faiulre).
- method: Is the current method who call createAudit.
- operation: Audit type operation.
- optional userDni: User DNI (for example RUT).
- optional userEmail: User e-mail address.
- optional userPhone: User phone number.
- optional userFirstName: User first name.
- optional userLastName: User last name.
- optional resultObject: Optional Object, if you need to add a result object follow the previous example.
Optional Method
If you need to change the environment between production and test you must use the following method:
- TrustAudit.shared.set(currentEnvironment: .prod)
- TrustAudit.shared.set(currentEnvironment: .test)
Permissions
To ensure the proper functioning of the audit library, in signing and Capabilities layer we must add the "Access WiFi Information" capability.
NOTE: Remember to generate the TrustID with the TrustIdentify library.
To get location coordinates we need add in your "Info.plist" the next lines and implement an location permissions flux.