2015-10-05 20 views
7

pracuję na Mac aplikację, która korzysta z następujących plików nagłówkowychXcode 7 - "OpenSSL/pkcs7.h" plik nie został znaleziony w Xcode 7

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

Niedawno zaktualizowaliśmy OSX Yosemite na OSX i El Capitan Xcode 6.4 do 7.0

Projekt działał poprawnie przed aktualizacją. Teraz te pliki nie są dostępne.

Co muszę zrobić, aby ponownie zadziałało?

Jednym z rozwiązań było wykorzystanie systemu iOS przy użyciu kapsułek kakaowych.

Czy istnieje inny sposób bez użycia kakao?

Odpowiedz

3

Apple przestało już działać openssl jakiś czas temu, nie jest już częścią SDK, a sama biblioteka nie jest dostarczana z OS X od wersji 10.11.

Reference here

Nie wspominając co używasz do OpenSSL. Rozwiązanie zależy od Twoich potrzeb. Jeśli musisz użyć openssl (np. Zbyt wiele kodu zależy od niego), musisz sam uzyskać openssl, skompilować go z pobranymi nagłówkami i dołączyć do biblioteki dystrybucję aplikacji. Cocoapods wydaje się rozsądnym sposobem zarządzania tym, jeśli nie chcesz tego robić ręcznie.

Lub zmodyfikuj swój kod, aby korzystać z innych bibliotek, które pochodzą z OS X, takich jak Security Transforms lub CommonCrypto.

UPDATE: Wydaje się, że dokumentacja Apple jest nieco mylący (niespodzianka!). Biblioteki dynamiczne dla starszej wersji openssl (0.9.8) są nadal dystrybuowane z 10.11. Właśnie sprawdziłem nową instalację 10.11, a libcrypto i libssl nadal tam są.

Jeśli jest to wystarczające (na przykład po prostu użyj openssl do sprawdzania poprawności odbioru App Store) możesz uzyskać tylko pliki nagłówkowe z pakietu 10.10 SDK (pobierz go z Apple przy użyciu kodu Xcode 6.4) i skompiluj swoją aplikację nagłówki. Nie potrzebujesz rzeczywistych plików binarnych openssl.

+0

Mam do czynienia z problemem generowania podpisanego adresu URL do pobierania prywatnych treści z kubełka S3 przy użyciu Cloud Front .But Openssl otrzymuje błąd w Swift. Każde inne rozwiązanie do generowania podpisanego adresu URL. Proszę zasugeruj to. – vipulk617

+0

Nie ma to związku z pierwotnym pytaniem, ale nie potrzebujesz openssl do podpisywania żądań AWS, potrzebujesz tylko HMAC, szukasz Swift i HMAC w Google, a znajdziesz przykłady. – danielv

+0

Próbowałem używać HMAC i żądania do chmury, więc otrzymam komunikat odmowy dostępu w odpowiedzi. openssl działa dobrze w Objective C, ale nie jest szybki. Czy masz jakiś kod demo lub zasób umożliwiający dostęp do prywatnych treści z chmury w szybkim tempie. Więc proszę, podziel się tym. – vipulk617

Powiązane problemy