aboutsummaryrefslogtreecommitdiffhomepage
path: root/build-mac/README.md
blob: 163621873d0344c9e46084cde2ff111c235e7853 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
### Carthage ###

MailCore 2 is available through [Carthage](https://github.com/Carthage/Carthage).

Add this line to the `Cartfile`
```
github "MailCore/mailcore2"
```

Here you can find [Instructions for install Carthage](https://github.com/Carthage/Carthage#installing-carthage).

[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)

### CocoaPods ###

MailCore 2 is available on [CocoaPods](http://cocoapods.org/).

**For iOS:**
```
pod 'mailcore2-ios'
```

**For OS X:**
```
pod 'mailcore2-osx'
```

### Binary ###

**For iOS:**
Download the latest [build for iOS](http://d.etpan.org/mailcore2-deps/mailcore2-ios/).

**For OS X:**
Download the latest [build for OS X](http://d.etpan.org/mailcore2-deps/mailcore2-osx/).

### Build for iOS/OSX ###

1. If you're migrating from MailCore1, you should first clean your build folder.
2. Checkout MailCore2 into a directory relative to your project.
3. Under the `build-mac` directory, locate the `mailcore2.xcodeproj` file, and drag this into your Xcode project.
4. **For Mac** - If you're building for Mac, you can either link against MailCore 2 as a framework, or as a static library:
    * Mac framework
        - Go to Build Phases from your build target, and under 'Link Binary With Libraries', add `MailCore.framework` and `Security.framework`.
        - Make sure to use LLVM C++ standard library.  Open Build Settings, scroll down to 'C++ Standard Library', and select `libc++`.
        - In Build Phases, add a Target Dependency of `mailcore osx` (it's the one with a little toolbox icon).
        - Goto `Editor > Add Build Phase > Copy Files`.
        - Expand the newly created Build Phase and change it's destination to "Frameworks".
        - Click the `+` icon and select `MailCore.framework`.
    * Mac static library
        - Go to Build Phases from your build target, and under 'Link Binary With Libraries', add `libMailCore.a` and `Security.framework`.
        - Set 'Other Linker Flags' under Build Settings: `-lctemplate -letpan -lxml2 -lsasl2 -liconv -ltidy -lz` `-lc++ -stdlib=libc++ -ObjC -lcrypto -lssl -lresolv`
        - Make sure to use LLVM C++ standard library.  In Build Settings, locate 'C++ Standard Library', and select `libc++`.
        - In Build Phases, add a Target Dependency of `static mailcore2 osx`.
5. **For iOS** - If you're targeting iOS, you have to link against MailCore 2 as a static library:
    * Add `libMailCore-ios.a`
    * Add `CFNetwork.framework`
	* Add `Security.framework`
    * Set 'Other Linker Flags': `-lctemplate-ios -letpan-ios -lxml2 -lsasl2 -liconv -ltidy -lz` `-lc++  -lresolv -stdlib=libc++ -ObjC`
    * Make sure to use LLVM C++ standard library.  Open Build Settings, scroll down to 'C++ Standard Library', and select `libc++`.
    * In Build Phases, add a Target Dependency of `static mailcore2 ios`.
6. **For Swift** - If you are using Mailcore in a Swift project you also need to complete the following steps:
    * Create a new header file in your project and name it ```Project-Name-Bridging-Header.h```.
    * Remove any template code from the file and add ```#import <MailCore/MailCore.h>```
    * In your target settings search for _Objective-c Bridging Header_ and add a link to your bridging header.
    * You do not need to import Mailcore in any of your classes as the bridging header takes care of this automatically.
7. Profit.

Here's a video that shows all the steps for iOS:
http://www.youtube.com/watch?v=9fAo6oBzlQI