在RubyMotion中使用静态iOS库

时间:2013-02-04 00:05:15

标签: ios objective-c static-libraries rubymotion

我对RubyMotion感兴趣,但希望在支付许可费之前了解有关使用第三方iOS框架的更多信息。

我在第2.2节here中看到,它指出:

  

“为RubyMotion项目中的第三方库提供源代码   代码必须在文件系统的某个地方可用。“

我对iOS框架的理解本质上是一个静态库(.a文件)和一堆头文件,带有没有源代码 - 这似乎告诉我,这是不可能的使用RubyMotion的第三方iOS框架。

但是,阅读本文档进一步指出,可以将项目类型:staticvendor_project方法(一组静态库名称)和{{:products一起提供给:headers_dir方法。 1}}(包含公共头文件的目录的路径)。这似乎与源代码必须可用的断言相矛盾。

所以我的问题 - 是否可以在没有访问源代码的情况下使用带有RubyMotion的闭源第三方iOS框架?

1 个答案:

答案 0 :(得分:2)

是的,这完全有可能。我认为文档的含义只是您需要包含您在项目中使用的所有内容。

您可以使用xcode项目,或者如您所说,使用带有多个头文件的静态库(.a文件)(也可能是一些Objective-c包装器文件)。

你的Rakefile中的这样的东西可以完成这项工作!

app.vendor_project('vendor/your-lib-name', :static,
    :products => ['lib.a'],
    :headers_dir => 'lib-header-path')

这里是an article,我发现它非常有用,它解释了如何在RubyMotion中使用第三方库。

除了手动在项目中包含库之外,您还可以使用Cocoapods上提供的库。有一个RubyMotion包装器 - motioncocoapods,我最近在这个主题上完成了an article,你可以看一下你是否感兴趣。