2015-10-05 65 views
7

我在Mac應用程序的工作沒有找到它採用以下頭文件Xcode的7 - 爲「OpenSSL/pkcs7.h」文件在Xcode 7

#include <openssl/pkcs7.h> 
#include <openssl/objects.h> 
#include <openssl/sha.h> 
#include <openssl/x509.h> 
#include <openssl/err.h> 

我最近更新OSX的優勝美地到OSX埃爾卡皮坦 和Xcode 6.4至7.0

項目在更新之前成功運行。 現在這些文件不可用。

我需要做些什麼才能讓它再次運作?

其中一個解決方案是iOS使用可可豆莢。

有沒有其他方式沒有使用可可豆莢?

回答

3

前段時間蘋果已棄用openssl,它不再是SDK的一部分,並且該庫本身在10.11版本中未附帶OS X.

Reference here

你在使用OpenSSL,以便你沒有提到。解決方案取決於您的需求。如果您必須使用openssl(例如,您的代碼太多取決於它),那麼您需要自己獲取openssl,使用下載的頭文件進行編譯並將該庫與您的應用程序分發包括在一起。如果你不想手動操作,Cocoapods似乎是一種合理的方式來管理這個問題。

或修改您的代碼以使用其他與OS X一起提供的庫,如Security TransformsCommonCrypto

更新: 似乎蘋果的文檔有點誤導(驚喜!)。舊版openssl(0.9.8)的動態庫仍然以10.11分發。剛剛檢查了10.11的全新安裝,libcrypto和libssl仍然存在。

如果這是足夠的(例如,您只需使用openssl進行App Store收據驗證),那麼您只需從10.10 SDK獲得頭文件(使用xcode 6.4從Apple下載),然後使用標題。你不需要實際的openssl二進制文件。

+0

我面臨的問題是使用Cloud Front從S3存儲區獲取私有內容的簽名url。但Openssl在Swift中出錯。任何其他解決方案來生成簽名的URL。請提出建議。 – vipulk617

+0

這與原始問題沒有關係,但您不需要openssl簽署AWS請求,您只需要HMAC,在Google上搜索Swift和HMAC,您將找到示例。 – danielv

+0

我試圖使用HMAC並請求雲端,因此獲得訪問被拒絕的消息作爲響應。 openssl在Objective C中工作正常,但不是很快。你有沒有任何演示代碼或資源可以迅速從雲端訪問私人內容。所以請分享它。 – vipulk617