我已经能够在不使用Xcode的情况下成功构建我的iOS应用程序。我的应用程序是HTML,CSS和Javascript的集合,以及我能够compile with Phonegap Build的config.xml。
该应用程序的基本功能已经在iPhone上测试过,效果很好,但现在我希望使用FacebookConnect plugin for Phonegap Build 为应用添加社交图层。但是,GitHub上的文档要求在Xcode中设置应用程序。
如果不使用Xcode,有没有办法下载SDK(而不是.pkg)并将其添加到我上传到Phonegap Build to complile的项目文件中?如果是这样,我在哪里获取文件,我需要哪些文件,以及在项目结构中将这些文件包含在哪里?
这是我目前的项目结构:
-config.xml
-index.html
-includes
--css
--js
也许有一种方法可以用GitHub做到这一点,但我从未做过拉请求或类似的事情。我只是在我的文本编辑器中工作,我不知道如何从GitHub中提取。
感谢您对此提供的任何帮助!
答案 0 :(得分:1)
我已经在没有Xcode的Windows上成功实现了面向Phonegap Build的FacebookConnect插件。
我建议您按照Phonegap Build Plugins page上的说明操作,并忽略GitHub page上的说明(其中讨论了Xcode以及Build插件不需要的其他内容)。他们现在已经更新了GitHub页面指令,将Phonegap Build用户从GitHub指令转到Phonegap Build Plugins页面。
对于第1步(在Facebook上设置你的应用),选择Native iOS App,Bundle ID与config.xml中的“id”相同(即com.company.appname并且您可以在测试时将App Store ID设置为“0”。
对于第2步,请务必使用facebook-js-sdk.js
。有一段时间有一个错字。
测试的好方法是将example Simple app on GitHub的内容粘贴到新的index.html文件中,并将其与普通的config.xml文件一起上传到Phonegap Build。我在我的应用程序上进行了一次构建,然后在测试之后,刚刚上传了我的普通index.html文件。您需要在Example应用程序的index.html中进行的唯一更改是将您的Facebook App ID放在FB.init函数的底部。我还将response.session
更改为response.authResponse
以匹配Facebook JS SDK,但我不确定是否有必要。
请务必使用第3步中提及的所有内容更新您的config.xml
文件。我还添加了以下代码:
<access origin="http://m.facebook.com" />
<access origin="http://graph.facebook.com" />
<access origin="http://api.facebook.com" />
<access origin="http://fbcdn.net" subdomains="true" />
<access origin="http://akamaihd.net" subdomains="true" />
如果您的config.xml
文件中已有以下内容,则无需使用上述代码:
<access origin="*" />
FacebookConnect插件正在使用Facebook JS SDK,您可以在此处了解更多信息:https://developers.facebook.com/docs/reference/javascript/。
此外,我遇到的另一个问题是Phonegap Build Team正在处理的问题是,在询问权限时,您不能仅通过取消scope
选项来询问基本权限。目前,您必须至少包含一个scope
选项才能使登录功能起作用。
function fbLogin () {
FB.login(function(response) {
if (response.authResponse) {
alert('User Login Success!');
} else {
alert('User cancelled login or did not fully authorize.');
}
}, { scope: "email" });
}
大多数开发人员可能要求的不仅仅是基本权限,所以这不应该是一个大问题。
我上面的回答来自Phonegap Build Support Site上关于Facebook插件的讨论。您可以在那里了解有关插件及当前问题和解决方案的更多信息。
我花了一点时间才想出这些东西,所以希望这会帮助别人节省一些时间。