使用Xcode 4,我正在尝试构建用于iOS应用程序的SSCrypto框架。
在Build Settings中,当我将基本SDK更改为Latest iOS时,我收到此错误:
target specifies product type 'com.apple.product-type.framework', but there's no such product type for the 'iphoneos' platform
我的谷歌搜索和搜索已经空了,所以我觉得我错过了一些明显的东西......
如何让SSCrypto框架在iOS上运行?
答案 0 :(得分:2)
对于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
答案 1 :(得分:0)
Xcode 4删除了很多目标类型,大概是因为Apple认为这让人很困惑。
建立一个静态库,或者只是在项目中包含这些文件。