Pregunta

He compilado una biblioteca estática y se vinculan tanto SQLCipher y OpenSSL.El proyecto completo, makefile, y el compilado de la biblioteca se puede encontrar aquí:

https://github.com/anujb/SQLCipherNet

Al vincular la biblioteca resultante en una normal Objective-C, Xcode proyecto, la llamada a sqlite3_key funciona bien.

Yo me he vinculado la misma biblioteca en un MonoTouch proyecto a través de:

-gcc_flags "-L${ProjectDir} -lsqlciphernet -force_load ${ProjectDir}/libsqlciphernet.a"

Luego he modificado SQLite-NET para llamar a la función de la tecla, después de cada SQLite3.Open(...) función:

[DllImport("__Internal", EntryPoint = "sqlite3_key")]
public static extern Result Key(IntPtr db, string key, int keyLength);

Pero tengo un EntryPointNotFoundException cuando la Clave del método es llamado.Aquí está el seguimiento de la pila:

System.EntryPointNotFoundException has been thrown at:
at (wrapper managed-to-native) SQLite.SQLite3:Decrypt (intptr,string,int)
at SQLite.SQLiteConnection..ctor (System.String databasePath) [0x00031] in 
../SQLite.cs:108 

Obviamente el stacktrace no es particularmente útil, pero estoy en una pérdida en cuanto a por dónde empezar a depurar este problema.Halp?

¿Fue útil?

Solución

Me sale el mismo error cuando la construcción de su solución para "Depurar|iPhoneSimulator".Sin embargo, sus opciones de proyecto, para esta configuración, hacer no incluir la gcc_flags usted ha mencionado - por lo que la excepción es totalmente normal.

Tratando de construir la "Depuración|iPhone" configuración (donde se especifican las opciones) se produce un error debido a la ruta de los problemas...pero estoy bastante seguro de que funcionaría si me fijo en ellos ;-)

ACTUALIZACIÓN

La mudanza de la biblioteca para que el derecho de la ubicación me da:

Undefined symbols for architecture armv6:   "___udivmodsi4",
referenced from:
      _sqlite3BitvecSet in libsqlciphernet.a(sqlite3.o)
      _sqlite3BitvecClear in libsqlciphernet.a(sqlite3.o)
      _sqlite3BitvecTest in libsqlciphernet.a(sqlite3.o) ld: symbol(s) not found for architecture armv6

Yo creo que lo que falta porque de libopenssl ?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top