日々精進

新しく学んだことを書き留めていきます

OpenSSLをcocoapod経由でインストールするとビルドエラー「Undefined symbols for architecture i386」

これは下記のpublicなpodspecが原因。
https://github.com/CocoaPods/Specs/blob/master/OpenSSL/1.0.1/OpenSSL.podspec
このpodspecでビルド対象のファイルをsource_filesメソッドに渡しているが、実はこれがOpenSSLの一部しか無くて、
ビルド対象になっていないファイルで定義している関数を使おうとするとビルドエラーが発生する。
じゃあpodspecを直して必要なファイルを全部ビルド対象にすればいいように思えるが、
OpenSSLの中にはCPU依存なコードがあり、cocoapodでは対処が難しい(cocoapodはCPUの種類でビルド対象を変えることは出来ないっぽいので)
よってOpenSSLはおとなしくバイナリをダウンロードしてきて使うのがよさそう。