私はソースコードから自分自身を構築したフレームワークコードを使用してiOSアプリケーションを開発し始めます。アーキテクチャx86_64の未定義シンボルですが、エラーリソースは構築済みフレームワークの中にあります
フレームワークプロジェクトに必要なアーキテクチャを追加し、フレームワークを構築してアプリケーションに追加しました。
そして、私はアプリケーションを構築しようとしたとき、Undefined symbols for architecture x86_64
エラーが登場した、例えば:
"_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
で、ファイル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
ファイルが見つからないのはビルドに失敗した理由ですか?しかし、それが理由なら、どのようにフレームワークがうまく構築されたのでしょうか?
私は別のソースからそのフレームワークの異なるバージョンを持って、そして私の問題でした解決される。しかし、ありがとう、私はおそらく有用なアドバイスのためにあなたの答えを投票した! –