There are two targets in the Xcode project:
- crypto: build static libcrypto.a . For more info on this, please see the original README below
- framework: generate an universal openssl.framework into /tmp containing archs for iOS and simulator that can be used by other projects.
2., drop the openssl source archive file (ex. openssl-1.0.1.tar.gz) in the same directory of
openssl.xcodeproj, then build target
framework for any arch. When built, you can use
/tmp/openssl.framework in other project by drag n' drop.
This is an XCode project skeleton structure that can be used to build a static libcrypto.a library for use in Mac and iPhone projects.
It is specifically intended for use in building secure iPhone applications alongside SQLCipher, but it can easily be used for other applications.
In a normal case you would use it thusly:
- Download the OpenSSL source code directly from http://www.openssl.org/source/
- Clone the openssl-xcode git repo to make a local copy
a. Put the downloaded OpenSSL source tar.gz into the same folder
b. Place an extracted OpenSSL distribution in a folder called 'openssl' within the same folder as openssl.xcodeproj c. Extracted the OpenSSL distribution directly into the same folder as openssl.xcodeproj. d. Setup a source tree definition in XCode for OPENSSL_SRC pointing the folder containing openssl source code
Then, either open openssl.xcodeproj in XCode and initiate a build, or integrate it within another project:
Drag the openssl.xcodeproj file into your main project
Right-click on your project target, and add openssl.xcodeproj under "Direct Dependencies" on the General tab.
On the Build tab for your project's target, find the "Header Search Paths" option, and add the path:
(Assuming you've put openssl.xcodeproj at the path Library/openssl, and are building from a source tarball)
Expand your target's "Link Binary With Libraries" build stage, and drag libcrypto.a from the openssl.xcodeproj group.
This project actually relies on the OpenSSL configure and make system to build the libraries. However, it does attempt to automatically detect and use the appropriate build settings for arch (i386/ppc/armv6), build tools, and SDK directories. This makes it appropriate for inclusion as a project reference into an iPhone application project. This project will also check to see if the resulting crypto library is newer than the project Makefile to avoid time consuming rebuild cycles.
Copyright (c) 2009, 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.
- openssl-xcode was developed by Stephen Lombardo at Zetetic LLC (sjlombardo at zetetic.net / http://www.zetetic.net)
- adapted for use with source archives by Michael Tyson of A Tasty Pixel (michael at atastypixel.com)