2012-05-04 10 views
7

RubyMotion proporciona estas instrucciones para vendoring código de tercera parte: http://www.rubymotion.com/developer-center/guides/project-management/#_files_dependenciesUtilizando el SDK de iOS Analizar con RubyMotion

estoy tratando de añadir iOS SDK de Parse.com. Estas son las instrucciones para agregarlo a un proyecto de XCode: https://parse.com/apps/quickstart#ios/existing. Sin embargo, no estoy usando XCode ya que estoy trabajando con RubyMotion.

documenté mi intento aquí: https://github.com/adelevie/RubyMotionSamples/commit/603bf4428995bb203cce7e7e8e6989d6e86bda3b

Y aquí están los errores que estoy recibiendo: https://gist.github.com/2595284

Respuesta

8

Creo que en realidad estamos tratando con una biblioteca estática aquí, así que creo que debe especificar: estático en lugar de: Xcode como la segunda opción.

Con el siguiente código en su Rakefile, la aplicación compila:

app.libs << '/usr/lib/libz.1.1.3.dylib' 
    app.frameworks += [ 
     'AudioToolbox', 
     'CFNetwork', 
     'SystemConfiguration', 
     'MobileCoreServices', 
     'Security', 
     'QuartzCore'] 

    app.vendor_project('vendor/Parse.framework', :static, 
     :products => ['Parse'], 
     :headers_dir => 'Heiders') 

Sin embargo, estoy recibiendo el siguiente error al ejecutar el método Parse setApplicationId:

(main)>> Objective-C stub for message `setApplicationId:clientKey:' type `[email protected]:@@' not precompiled. Make sure you properly link with the framework or library that defines this message. 
+0

¡FANTÁSTICO! ¡Funciona genial! – user94154

+0

https://gist.github.com/2596866 – user94154

+1

¿Cómo resolvió el mensaje de error 'Objective-C stub'? – richard

2

La documentación vinculada dice, "al proveedor una biblioteca 3 ª parte en un proyecto RubyMotion, la fuente el código debe estar disponible en algún lugar del sistema de archivos ". Así que no creo que dejar caer un archivo .framework allí funcione.

Puede intentar descargar el ParseStartProject, llamado "Xcode en blanco con SDK" de parse.com/docs. Si vende esa carpeta de proyectos, RubyMotion podrá encontrar un proyecto xcode como lo está buscando. Por supuesto, querrá eliminar los archivos .m y .h del proyecto xcode, ya que solo quiere que el proyecto incluya Parse.framework.

No he intentado esto. Por favor, háganos saber si lo hace funcionar.

+0

Tiene problemas con esto: https://skitch.com/e-adelevie/8a9mg/users-adelevie-programming-motion-rubymotionsamples-tweets- bash-114x24 El error es 'Building vendor project' vendor/ParseStarterProject 'no pudo crear al menos una biblioteca '.a'. – user94154

+0

mejor enlace de imagen https://img.skitch.com/20120504-mejht3xj22knxknu5naxgm9skc.jpg – user94154

1

copian bien esto de una respuesta en el grupo RubyMotion. Se parece solucionar el mensaje de error de código auxiliar:

Ahora, para hacer este trabajo, he modificado /Library/RubyMotion/lib/motion/project/vendor.rb y cambió el Dir.glob en la línea 38 de:

source_files = (opts.delete(:source_files) or Dir.glob('*. 
{c,m,cpp,cxx,mm,h}')) 

a:

source_files = (opts.delete(:source_files) or Dir.glob('**/*. 
{c,m,cpp,cxx,mm,h}')) 

http://groups.google.com/group/rubymotion/msg/0efa74214523d0f5

Cuestiones relacionadas