Kendimi kaynak koddan oluşturduğum çerçeve kodunu kullanarak iOS uygulamasını geliştirmeye başladım.Mimaride x86_64 için tanımlanmamış semboller ama hata kaynakları dahili çerçevenin içinde yer alıyor
Gerekli mimarileri çerçeve projesine ve uygulamamıza ekleyen yapı iskelesine ekledim.
Ve uygulama oluşturmak çalıştığımızda Undefined symbols for architecture x86_64
hataları ortaya çıkmıştır, mesela:
"_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) ...
Ve diğerleri, sadece ben çerçeve kaynağını baktım MTEncryption
de, dosya 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
}
Bu yöntemler, zaten oluşturma aşamalarına dahil edilmiş olan .../openssl/aes.h
numaralı dizindir.
Ancak, aes.m
dosyasının eksik olduğunu fark ettim (yalnızca yapı aşamasında eksik değil, dosya mevcut değil).
Normal mi? Ya da tam olarak .m
dosyaları eksik neden başarısız inşa? Ama nedense, çerçeve nasıl başarılı bir şekilde inşa edildi?
ve sorunum oldu çözüldü. Ama teşekkür ederim, muhtemelen yararlı tavsiyeler için cevabınızı oyladım! –