# Installing IDZSwiftCommonCrypto

There are three ways to add IDZCommonCrypto to your project:
* Use CocoaPods
* Use Carthage
* Manually

## CocoaPods

If you are using CocoaPods, add the following to your Podfile:
```bash
pod 'IDZSwiftCommonCrypto', '~> 0.9.0'
```

Then, run the following command to install the IDZSwiftCommonCrypto pod:
```bash
pod install
```
## Carthage

If you are using Carthage, add the following to your Cartfile:

```bash
github "iosdevzone/IDZSwiftCommonCrypto"
```

Run `carthage` to build the framework and drag the built 'IDZCommonCrypto.framework' into your project or workspace.

## Manually

Since `CommonCrypto` is not a standalone module, you need to generate a fake module map to convince Xcode into allowing you to `import CommonCrypto`. The `GenerateCommonCryptoModule` script provides two methods for doing this. Which method you choose depends on whether you want to able to use `CommonCrypto` and, by extension, `IDZSwiftCommonCrypto` in playgrounds.

To make `CommonCrypto` available to frameworks and playground use the command:
```bash
    ./GenerateCommonCryptoModule iphonesimulator8.0
```

This command creates a `CommonCrypto.framework` in the SDK system library directory. You should now be able to use either `CommonCrypto` or `IDZSwiftCommonCrypto` in a playground simply importing them or in your own app project by dragging the `IDZSwiftCommonCrypto.xcodeproj` into your project.

If you do not want to add any files to your SDK you can use the command
```bash
    ./GenerateCommonCryptoModule iphonesimulator8.0 .
```
This method creates a `CommonCrypto` directory within the `IDZSwiftCommonCrypto` source tree, so the SDK directories are not altered, but the module is not available in playgrounds. To use the framework in your own project drag the `IDZSwiftCommonCrypto.xcodeproj` into your project and set the **Module Import Path** to the directory containing the `CommonCrypto` directory created by the script. For more about this, see my blog post [Using CommonCrypto in Swift](http://bit.ly/1xMAGQl)

```swift
import IDZSwiftCommonCrypto
```