通过RubyMotion使用Parse iOS SDK
RubyMotion为第三方代码的销售提供以下说明: 我正在尝试添加Parse.com的iOS SDK。以下是将其添加到XCode项目的说明:。但是,我没有使用XCode,因为我正在使用RubyMoon 我在这里记录了我的尝试:通过RubyMotion使用Parse iOS SDK,ruby,xcode,parse-platform,rubymotion,Ruby,Xcode,Parse Platform,Rubymotion,RubyMotion为第三方代码的销售提供以下说明: 我正在尝试添加Parse.com的iOS SDK。以下是将其添加到XCode项目的说明:。但是,我没有使用XCode,因为我正在使用RubyMoon 我在这里记录了我的尝试: 下面是我遇到的错误:链接的文档说,“要在RubyMoon项目中提供第三方库,源代码必须在文件系统中的某个位置可用。”因此我认为在其中删除.framework文件是行不通的 您可以尝试从parse.com/docs下载名为“Blank Xcode w/SDK”的Parse
下面是我遇到的错误:链接的文档说,“要在RubyMoon项目中提供第三方库,源代码必须在文件系统中的某个位置可用。”因此我认为在其中删除.framework文件是行不通的 您可以尝试从parse.com/docs下载名为“Blank Xcode w/SDK”的ParseStartProject。如果您提供该项目文件夹,RubyMotion将能够找到它所寻找的xcode项目。当然,您需要从xcode项目中删除.m和.h文件,因为您只希望项目包含Parse.framework
我还没试过这个。请让我们知道它是否正常工作。我认为我们实际上是在处理静态库,因此我认为您应该指定:static而不是:Xcode作为第二个选项 使用Rakefile中的以下代码,应用程序将编译:
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')
好的,这是从RubyMoon小组的答案中抄来的。它似乎修复了存根错误消息: 现在,为了实现这一点,我修改了/Library/RubyMotion/lib/motion/project/vendor.rb,并将第38行的Dir.glob更改为:
source_files = (opts.delete(:source_files) or Dir.glob('*.
{c,m,cpp,cxx,mm,h}'))
致:
遇到问题:错误是
生成供应商项目供应商/ParseStarterProject'未能创建至少一个.a'库。
我从未得到它。你看过我贴的要点了吗?看过。这是AppDelegate中应用程序方法的唯一内容?该要点在REPL中运行,效果良好。不过,我在app#u delegate.rb中实现了这一点:出于某种原因,调用#save throwsObjective-C stub以获取消息
save'typeC@:'未预编译。确保与定义此消息的框架或库正确链接。
因此,解决方案是调用#savefinally,这很好。我是iOS的新手,所以我可能会有错误的想法。我想我已经弄明白了:如果我只是设置了ApplicationID,但以后在应用中不调用任何metods,我会得到那个错误。如果我创建了一个伪PFObject,而不需要保存它,我就可以避免错误。很奇怪,但它有效。这对我不起作用。运行rake时出现以下错误:架构i386的未定义符号:“\u OBJC\u CLASS\u$\ u SKPaymentQueue”,引用自:解析中的OBJC CLASS ref(PFPurchase.o)解析中的OBJC CLASS ref(PFPaymentTransactionObserver.o)“\u OBJC\u CLASS\u$\ u SKPayment”,引用自:解析中的OBJC CLASS ref(PFPurchase.o)“_OBJC_CLASS_$_SKProductsRequest”,引用自:解析(PFPurchase.o)中的OBJC CLASS ref:ld:symbol未找到体系结构i386 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
source_files = (opts.delete(:source_files) or Dir.glob('*.
{c,m,cpp,cxx,mm,h}'))
source_files = (opts.delete(:source_files) or Dir.glob('**/*.
{c,m,cpp,cxx,mm,h}'))