Ошибка сборки при попытке собрать фреймворк SSCrypto для использования с iOS - PullRequest
1 голос
/ 08 сентября 2011

Используя Xcode 4, я пытаюсь создать инфраструктуру SSCrypto для использования с приложением iOS.

В настройках сборки, когда я меняю базовый SDK на последнюю iOS, я получаю эту ошибку:

target specifies product type 'com.apple.product-type.framework', but there's no such product type for the 'iphoneos' platform

Мой поиск и поиск оказались пустыми, поэтому я чувствую, что упускаю что-то очевидное ...

Как мне заставить SSCrypto framework работать на iOS?

Ответы [ 2 ]

2 голосов
/ 08 сентября 2011

Для iOS могут использоваться только статические библиотеки, а не фреймворки с динамическими библиотеками.

Вместо этого используйте CommonCrypto, это простой C, но не очень сложный в использовании.Убедитесь, что вы используете все те же настройки, режим, IV (если необходимо для режима), отступ и клавишу.

Добавьте Security.framework к проекту

#import <CommonCrypto/CommonCryptor.h>

+ (NSData *)doCipher:(NSData *)dataIn
                  iv:(NSData *)iv
                 key:(NSData *)symmetricKey
             context:(CCOperation)encryptOrDecrypt
{
    CCCryptorStatus ccStatus   = kCCSuccess;
    size_t          cryptBytes = 0;    // Number of bytes moved to buffer.
    NSMutableData  *dataOut    = [NSMutableData dataWithLength:dataIn.length + kCCBlockSizeAES256];

    ccStatus = CCCrypt( encryptOrDecrypt,
                       kCCAlgorithmAES256,
                       kCCOptionPKCS7Padding,
                       symmetricKey.bytes, 
                       kCCKeySizeAES256,
                       iv.bytes,
                       dataIn.bytes,
                       dataIn.length,
                       dataOut.mutableBytes,
                       dataOut.length,
                       &cryptBytes);

    if (ccStatus != kCCSuccess) {
        // Handle error
        NSLog(@"CCCrypt status: %d", ccStatus);
    }

    dataOut.length = cryptBytes;

    return dataOut;
}

Для Base64см: SO ответ

0 голосов
/ 08 сентября 2011

Xcode 4 удалил много целевых типов, предположительно потому, что Apple думала, что это сбивает с толку людей.

Вместо этого создайте статическую библиотеку или просто включите файлы в свой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...