我开始使用我自己从源代码构建的框架代码开发iOS应用程序。
我在框架项目和构建框架中添加了所需的架构,将其添加到我的应用程序中
当我尝试构建应用程序时,出现MTEncryption
错误,例如:
"_AES_ige_encrypt", referenced from: _MTAesEncryptInplace in MTProtoKit iOS (MTEncryption.o) _MTAesEncryptInplaceAndModifyIv in MTProtoKit iOS (MTEncryption.o) ... "_AES_set_encrypt_key", referenced from: _MTAesEncryptInplace in MTProtoKit iOS (MTEncryption.o) _MTAesEncryptInplaceAndModifyIv in MTProtoKit iOS (MTEncryption.o) ...
还有很多其他人,不仅仅是MTEncryption.m
我查看了框架源文件void MTAesEncryptInplace(NSMutableData *data, NSData *key, NSData *iv)
{
AES_KEY aesKey;
AES_set_encrypt_key(key.bytes, 256, &aesKey); // <-- _AES_set_encrypt_key
unsigned char aesIv[AES_BLOCK_SIZE * 2];
memcpy(aesIv, iv.bytes, iv.length);
AES_ige_encrypt(data.bytes, (void *)data.bytes, data.length, &aesKey, aesIv, true); // <-- _AES_ige_encrypt
}
:
.../openssl/aes.h
这些方法位于aes.m
中,已包含在构建阶段中。
但是我注意到.m
文件丢失了(不仅仅是在构建阶段丢失,但文件不存在)。
这是正常的吗?或者确切地说{{1}}个文件缺失是构建失败的原因吗?但如果是原因,框架是如何成功构建的?
答案 0 :(得分:1)
从围绕模拟器文件的侦察中,我看不到aes或openssl的确切迭代,它们来自“零件和包裹”。
在这方面,您必须编译自己的OpenSSL以支持这些缺失的库。
我确实找到了一个github repo给你,可能会有所帮助:
https://github.com/x2on/OpenSSL-for-iPhone
希望这会有所帮助..