Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
transmit-ops committed Apr 5, 2022
1 parent 4e0abac commit 5e38381
Show file tree
Hide file tree
Showing 27 changed files with 3,861 additions and 1 deletion.
29 changes: 29 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
name: "XmBindIdSDK",
platforms: [
.iOS(.v11),
],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "XmBindIdSDK",
targets: ["XmBindIdSDK"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
// .binaryTarget(name: "XmBindIdSDK", url: "@REPOSITORY_URL@/raw/release/@VERSION_NUMBER@/Sources/@FRAMEWORK_FILE_NAME@", checksum: "@FRAMEWORK_CHECKSUM@"),
.binaryTarget(name: "XmBindIdSDK", path: "Sources/XmBindIdSDK.xcframework")
//.target(name: "XmBindIdSDK", dependencies: []),
//.testTarget(name: "XmBindIdSDKTests", dependencies: ["XmBindIdSDK"]),
]
)
71 changes: 70 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,70 @@
# bindid-ios-sdk
# XmBindIdSDK

# Introduction

Welcome to the future of customer authentication—strong, portable authentication across all your channels.

## What is BindID?

The BindID service is an app-less, strong portable authenticator offered by [Transmit Security](https://www.transmitsecurity.com/). BindID uses FIDO-based biometrics for secure, frictionless, and consistent customer authentication. With one click to create new accounts or sign into existing ones, BindID eliminates passwords and the inconveniences of traditional credential-based logins.

BindID is a great solution for various use cases, including:

- Passwordless authentication for web and mobile applications.
- User authentication for call centers, IVR, and voice assistance.
- Frictionless new account opening.
- Secure verification for infrequent users.

## Authentication and Trust

Combining device-based FIDO biometrics with the OpenID Connect \(OIDC\) protocol, BindID provides a secure and easy-to-deploy authentication process that can be used for any app, in any channel.

Here's how it works:

1. User performs an action that requires authentication \(such as login\).
2. User executes an authentication process with BindID—which may also include registering to BindID, registering a strong authenticator \(e.g., FIDO2 biometrics\), and additional data verifications \(e.g., SMS OTP\).
3. Upon successful authentication, you receive user metadata—which provides user profile info, provides trust indicators, and reflects all their known devices across all providers that use BindID.
4. If needed, you perform your own additional authentication for the user \(e.g., for new users\), and report this back to BindID, along with a user alias that represents a user in your system.


## Installation

### CocoaPods

[CocoaPods](https://cocoapods.org) is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate XmBindIdSDK into your Xcode project using CocoaPods, specify it in your `Podfile`:

```ruby
pod 'XmBindIdSDK', '~> 1.19.0'
```

### Carthage

[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. To integrate XmBindIdSDK into your Xcode project using Carthage, specify it in your `Cartfile`:

```ogdl
github "https://github.com/TransmitSecurity/bindid-ios-sdk" ~> 1.19.0
```

### Swift Package Manager

The [Swift Package Manager](https://swift.org/package-manager/) is a tool for automating the distribution of Swift code and is integrated into the `swift` compiler. It is in early development, but XmBindIdSDK does support its use on supported platforms.

Once you have your Swift package set up, adding XmBindIdSDK as a dependency is as easy as adding it to the `dependencies` value of your `Package.swift`.

```swift
dependencies: [
.package(url: "https://github.com/TransmitSecurity/bindid-ios-sdk.git", .upToNextMajor(from: "1.19.0"))
]
```

### Manually

If you prefer not to use any of the aforementioned dependency managers, you can integrate XmBindIdSDK into your project manually.

#### Embedded Framework

- Download the XmBindIdSDK framework manullay, open the new `XmBindIdSDK` folder, and drag the `XmBindIdSDK.xcframework` into the Project Frameworks directory of your application's Xcode project.

- And that's it!

> The `XmBindIdSDK.framework` is automagically added as a target dependency, linked framework and embedded framework in a copy files build phase which is all you need to build on the simulator and a device.
39 changes: 39 additions & 0 deletions Sources/XmBindIdSDK.xcframework/Info.plist
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?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>AvailableLibraries</key>
<array>
<dict>
<key>LibraryIdentifier</key>
<string>ios-x86_64-simulator</string>
<key>LibraryPath</key>
<string>XmBindIdSDK.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
<dict>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>XmBindIdSDK.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>
Loading

0 comments on commit 5e38381

Please sign in to comment.