试图建立SSCrypto框架与iOS使用时构建失败(Build failure when tryin

2019-09-27 13:47发布

使用的Xcode 4,我试图建立与iOS应用使用SSCrypto框架。

在生成设置,当我改变基地SDK到最新的iOS,我得到这个错误:

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

我的谷歌搜索和搜索已经变成了空的,所以我觉得我失去了一些东西明显...

我如何获得SSCrypto框架在iOS工作?

Answer 1:

对于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答案



Answer 2:

Xcode的4去掉了很多目标类型的,大概是因为苹果认为这是令人困惑的人。

建立一个静态库,而不是,或只是在项目中包含的文件。



文章来源: Build failure when trying to build SSCrypto framework for use with iOS