您的位置:首页 > 编程语言 > Ruby

Making Fabric Play Nice with RubyMotion

2016-01-18 15:00 302 查看
原文地址:https://medium.com/@sammybauch/making-fabric-play-nice-with-rubymotion-48a593ac22d4#.r4f1bav4v


使织物发挥好与RubyMotion

编辑:这不再起作用。DIGITS AUTH崩溃,内存泄漏在RUBYMOTION和Twitter并没有承诺将修订。


Twitter的新的移动应用程序开发框架,建在Xcode的初衷。这里是如何得到它RubyMotion工作

微博最近宣布其面料的框架,一个SDK的移动应用程序开发,旨在解决了一批经验丰富的移动开发者的痛点。很多   写入 有关框架本身,而Twitter的野心是一个开发工具的公司,所以我赢了“牛逼围攻那些点。我不完全出售,这是移动应用未来的发展,但为了至少有框架的意见我觉得我需要用它玩。


等待上线

我觉得很奇怪的是,作为一个开发工具,微博将推出面料为只邀请/有限释放。有一个非常庞大的波最初出版,而像这样的开发工具是不是停留在新闻或心中的顶部长完全性感的话题。我敢肯定,他们希望制定出错误,并确保他们可以支持他们与推出的最初的合作伙伴,但我非常接近失去了兴趣。当我没有得到访问(几个星期,一些“我很感兴趣!”表单提交后),我决定至少给框架旋转。希望Twitter的推出更广泛的访问,这将是有用的人。

我从报章知道面料是非常拖和下降,插件和播放的票价,但你永远不知道会发生什么,当记者写的开发者工具。我用RubyMotion写我的iOS应用程序,我整合了大量的第三方服务,豆荚,框架,静态库等,一般用小麻烦。我肯定是RM传道,和我想象一下,如果你正在读这篇文章,你或许也可以使用/所熟悉的RM。如果不是这样,在一个句子,RubyMotion是一个工具链构建完全原生的iOS(和Mac和Android)应用程序的红宝石。Android的工作是在早期阶段,我还没有得到于Mac的发展,所以我将专注于iOS的贯穿始终。

我非常惊讶和失望的程度面料旨在仅使用Xcode中。微好像使可能有一个学习曲线的位陡峭的,但它更灵活的决定,即一个易于使用的工具集是优选的。有趣的一点是,我认为面料的某些部分更适合拖拽设置 - 尤其是广告套装搭载MoPub。我怀疑很多工程师希望太动手实施的广告。相反,这些要求通常来自一个组织的业务方面,和工程师只是想在放弃它,让营销团队控制它的工作原理通过某种网络用户界面。但框架,通过数字特别认证,其他方面似乎是一个应用程序的香饽饽,拥有工程师想要得到完全正确,准确地给自己的喜好。

无论如何,我更喜欢Twitter的起飞训练车轮,只要给我那该死的.framework及某些固体文档。该框架而不是船只的运行菜单栏并采用向导式的演练,以实现SDK的各个部分在Mac应用程序。



一旦你登录,面料要求您选择一个Xcode项目。没有我的Xcode的项目是真实的项目。麻烦的第一个迹象!

为了公平起见,向导演练真的光滑,但这是麻烦的第一个迹象,我作为一个RubyMotion开发商。我想,也许他们就会给我下载一次,我选择一个项目,所以我解雇了Xcode中,并创建了一个新的项目。这最终不是完全真实的更多的工作中去,以实际得到的SDK来与Rubymotion应用程序的工作超出抓住.framework一次我可以。所以我想我们会做我们这一教程的第1步。


第1步:创建一个空的Xcode项目

这是相当自我解释,但开拓的Xcode并创建一个新项目。它应该是i​​OS应用程序,而我选择了为简单起见单一视图的应用。



我们不是真的要使用Xcode中构建应用程序,但它确实有助于我们抓住的框架,我们需要拉我们RubyMotion项目的一些其他设置。来吧,点击下一步。

这里的一个重要步骤,这是必要的,让您的RubyMotion的应用程序连接到面料的仪表板,是因为有命名的应用程序和捆绑标识符。

如果你已经有一个包标识符Rubymotion的应用程序(这是“com.yourcompanyname.yourappname”字符串作为您的企业标识和应用程
ecef
序名称的组合),那么你要在这里输入的值:



如果你还没有通过苹果开发者中心设置了这些值的Rubymotion的应用程序还没有,然后记下这些值,以后的 - 你需要将它们放在你的Rakefile像这样:
app.identifier
=“com.yourcompanyname.yourappname”app.seed_id =“YOUR_SEED_ID”app.entitlements ['应用程序标识'] = app.seed_id +'。“
+ app.identifier


第2步:经过面料议案

一旦你建立在Xcode,弹回的面料应用程序,并选择要整合工具包。我将使用TwitterKit,其中包括通过基于数字的电话号码身份验证,以及一些微博积分一样嵌入推文。向导是真的好了使用Xcode开发者,尤其是因为我不使用Xcode中,也不会懂得“添加一个运行脚本生成阶段”,我也很欣赏这种援助。



通过向导走

在第三个屏幕以上就是我们要走出常规面料路径。按照向导给出的说明,但除了拖的摆动文件夹到您的桌面或Finder窗口。这将下降2 .​​framework文件,为您提供:Fabric.framework和TwitterKit.framework。我们将这些拉进我们的RubyMotion项目旁边。


步骤3.供应商的面料框架到你的RubyMotion项目和添加的社会框架

在Fabric.framework和TwitterKit.framework文件拖动到你的RubyMotion项目的供应商目录。如果你曾经集成第三方框架或软件开发工具包,这应该是相当熟悉。然后,您需要将以下几行添加到您的Rake文件拉框架到您的项目:
app.vendor_project(“卖方/ Fabric.framework':静态,:产品=> ['布']:headers_dir =>'头
')app.vendor_project(” 卖方/ TwitterKit.framework':静态,:产品=> ['TwitterKit']:headers_dir =>'头')


在这一点上,我决定尝试并生成项目。没有的面料功能将被整合,但至少,我们会发现,如果RubyMotion是能够建立与织物框架的项目。来吧,耙您的应用程序,你瞧,一个错误!
未定义符号i386硬件架构:“_ OBJC_CLASS _ $ _ SLComposeViewController”,从引用:objc类-REF的TwitterKit(TWTRComposer.o)

...


我看到了TWTRComposer课前,我记得,iOS的有一些深层次的Twitter的集成。于是我去了,增加了社会框架中的Rake文件中app.frameworks阵:
app.frameworks + = ['社会']


让我们再次耙,和另一个错误:
***终止应用程序由于未捕获的异常“FabricException”,究其原因:“Info.plist的键[面料]价值”织物“必须是一个的NSDictionary”***


因此,它出现在面料的Mac应用程序增加了一些plist中设置Xcode中,当你放下了框架。弹回过来的Xcode,并检查了Info.plist中,可以在项目导航的支持文件目录中找到。寻找布料设置。矿山看起来像这样(的API密钥和消费者密钥和模糊处理):




第4步:添加面料的.plist设置的Rake文件

为了让您的应用程序建立,则需要对这些设置转换成可以被添加到Rake文件红宝石。同样,这里就是我这样做,我的消费者密钥和秘密工作节录:
app.info_plist ['布'] = {'APIKey'=>'您的API密钥
',' 包'=> [{“KitInfo'=>
{'consumerKey'=>' 你的消费者的关键
”,“consumerSecret'=> “你消费的秘密
”},“KitName'=>' 微博'}]}


如果添加不同的或附加工具包该设置将需要反映这一事实。来吧,耙,和您的应用程序应该建立就好了!


第5步:初始化面料的应用程序委托和尝试使用功能

Twitter的面料文档中的代码比Mac应用程序提供了面料的初始化代码略有不同。我开始着手该行所在的位置:
Twitter.sharedInstance.startWithConsumerKey(“你的钥匙”,consumerSecret:“你的秘密
”)Fabric.with([Twitter.sharedInstance])


同样,如果你使用不同的或额外的包,这些将被纳入Fabric.with([])阵列的说法。

我最感兴趣的是数字,基于电话号码认证的功能,所以我也跟着微博的文档,抄写目标C交给红宝石,我去了。这里是我结束了在一个UIViewController:
BTN = DGTAuthenticateButton.buttonWithAuthenticationCompletion(PROC {|会议上,误差|

})btn.frame = [[25.0,463.0],[270 40.0]] self.view.addSubview(BTN)




这里的结果。正如你所看到的,按钮被添加。它甚至功能。但有些事情是绝对丢失。

该按钮符合UIButton的,所以你可以使用的setTitle添加标签:forState :,但我会救你的麻烦。

还有让这一切都建立了最后一个重要步骤,它需要引进本地化文件到RubyMotion项目。


第6步:添加TwitterKitResources.bundle到您的RubyMotion项目



如果我们回到Xcode中,我们将看到另一种资源已添加不知情的情况下。从底部,TwitterKitResources.bundle,第二项听起来象是从面料的到来,所以按住Ctrl键单击,在Finder中显示。

你会想这整束复制到你的资源的RubyMotion项目目录。

大楼内引发另一个错误,一些相关的RubyMotion不能够解析本地化文件为EN-GB。打开它,你会发现它是空的。我的解决是简单地复制过来的en.lproj的内容为EN-gb.lproj。我想,你甚至可以在这里定制的副本,但对面料的方面是TL,DR;所以你可能要考虑这样做之前。就像我前面提到的,按钮本身符合UIButton的,所以你可以自定义像任何按钮,织物文档显示,您可以使用自己的按钮启动位数模态视图控制器。


第7步:利润



有人可以帮我做这些更好吗?

而已!你现在应该有一个正常运作的数字验证按钮。当然,你得真正做一些与你的回调收到验证会话,但都应该现在的工作。该模拟器显然不会收到一条短信,但我把它交给我的设备,并将它插入模拟器就好了。

下一次,也许我们将在回调接收的会话,并用它来打造出来使用用户的电话号码和地址簿中的邮件应用程序。


结论…

那种我们没有跳过一个部分在这里。这似乎并不重要,如果你仅仅使用数字,但Crashlytics工具包和MoPub套件都需要这个步骤,真正正确使用它们无关紧要。

当我们离开布向导RubyMotion,我们应该在整个向导走在模拟器上运行我们的虚拟应用程序的Xcode的地步。一个运行坪布料服务器和注册应用程序在你的织物仪表板的脚本。这可能是一些值得搞清楚通过Rubymotion这样的事情其实是正确连接。可能有其他的信息得到推升,可能是必要的,这些东西在生产函数。我一直无法弄清楚如何运行该脚本的RubyMotion构建过程的一部分。

我应该指出,@hemal从Crashlytics /布料队在微博一直在帮助我下车在地上,这真的很有帮助。还要感谢@colinta,iOS开发者和社区经理RubyMotion,用于读取该草案,并提供了反馈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: