Может кто-нибудь объяснить, пожалуйста, что здесь происходит. Если я выберу Связать все сборки или Связать только сборки SDK для поведения компоновщика в параметрах сборки проекта, то я получу следующие ошибки связывания, возникающие в моей статической библиотека, libUltralite.a.
Undefined symbols:
"_SecRandomCopyBytes", referenced from:
_zcbdb539311e3 in libUltralite.a(03b1278799.o)
"_SecTrustSetAnchorCertificates", referenced from:
zda160c9852f6::z41eb5883fa2f(__CFArray const*) in libUltralite.a(fb6da25cb9.o)
"_SecKeyGetBlockSize", referenced from:
_zd0743c47573a in libUltralite.a(f43c4e48ce.o)
"_SecCertificateCopySubjectSummary", referenced from:
zda160c9852f6::z41eb5883fa2f(__CFArray const*) in libUltralite.a(fb6da25cb9.o)
"_SecPolicyCreateSSL", referenced from:
zda160c9852f6::z41eb5883fa2f(__CFArray const*) in libUltralite.a(fb6da25cb9.o)
"_SecTrustCopyPublicKey", referenced from:
_z2cfcc7397b7e in libUltralite.a(f43c4e48ce.o)
"_SecTrustCreateWithCertificates", referenced from:
zda160c9852f6::z41eb5883fa2f(__CFArray const*) in libUltralite.a(fb6da25cb9.o)
_z2cfcc7397b7e in libUltralite.a(f43c4e48ce.o)
"_SecCertificateCreateWithData", referenced from:
zda160c9852f6::z635831b310af(unsigned char*, unsigned long)in libUltralite.a(fb6da25cb9.o)
_z2cfcc7397b7e in libUltralite.a(f43c4e48ce.o)
"_kSecRandomDefault", referenced from:
_kSecRandomDefault$non_lazy_ptr in libUltralite.a(03b1278799.o)
(maybe you meant: _kSecRandomDefault$non_lazy_ptr)
"_SecKeyEncrypt", referenced from:
_zb27eee72717c in libUltralite.a(f43c4e48ce.o)
"_SecPolicyCreateBasicX509", referenced from:
_z2cfcc7397b7e in libUltralite.a(f43c4e48ce.o)
"_SecTrustEvaluate", referenced from:
zda160c9852f6::z41eb5883fa2f(__CFArray const*) in libUltralite.a(fb6da25cb9.o)
_z2cfcc7397b7e in libUltralite.a(f43c4e48ce.o)
Если я вместо этого выбрал Не связывать для поведения Линкер , тогда связывание работает и не выдает никаких ошибок, но приложение аварийно завершает работу при запуске на реальном iphone. Приложение не падает на симуляторе, а только на реальном iphone. (Да, я перекомпилировал свою статическую библиотеку для фактического устройства ... поэтому включаемая библиотека предназначена для правильной платформы).
Мои дополнительные аргументы mtouch в рамках проекта build Опции следующие:
-v -v -v -gcc_flags "-lstdc++ -I${ProjectDir}/Ultralite/Include -L${ProjectDir}/Ultralite -lUltralite -force_load ${ProjectDir}/Ultralite/libUltralite.a"
На простом примере я пришел к выводу, что MonoTouch правильно работает на симуляторе и на реальном устройстве с Поведение компоновщика , установленным на Только для Link SDK сборок , но мне нужно найти почему ссылки на мою статическую библиотеку не работают правильно с этим параметром? Если бы кто-то мог пролить некоторый свет на возникающие ошибки связывания или предложить обходной путь для правильного связывания моего приложения с этим набором параметров поведение компоновщика , я был бы очень признателен.