react-native-LinkedIn-sdk - 无法读取未定义的属性'configure' (LinkedInSessionManager.ios.js)



我已经按照这里描述的所有步骤操作

这是我环境的道具:

react 16.0.0-alpha.6
react-native 0.43.3
react-native-linkedin-sdk 0.0.4
XCode 8.3.2

Xcode 项目编译没有问题,但是当我调用下面的 JS 代码时收到错误消息,该函数configure未定义

这是我的测试代码:

const config = {
clientID: '<my client id>',
clientSecret: '<my secret>',
state: '<my state hash>',
scopes: 'r_basicprofile',
redirectUri: '<my redirect URL>'
}
const LISDK = LinkedInSDK.configure(config)

导致错误的截取代码在LinkedInSessionManager.ios.js

...
const LinkedInSDK = {
configure(config) {
console.info('LINKEDIN SESSION MANAGER', RNLinkedInSessionManager)
return RNLinkedInSessionManager.configure(config);
},
...
};
module.exports = LinkedInSDK;

我添加了一个控制台输出来检查我是否得到了一个RNLinkedInSessionManager对象,但我得到了一个undefined,这意味着RNLinkedInSessionManager项目的代码没有连接到 react-native。

文件RNLinkedInSessionManager.xcworkspace已成功添加到我的 XCode 项目文件夹中/ios但似乎没有指向库的链接。

任何帮助都非常感谢。

我放弃了使用react-native-linkedin-sdk.

相反,我成功地实现了这个库反应本机LinkedIn登录

尽管如此,如果不进行一些修改,该库将无法工作。

这是我的发现:

人造人:

我按照此处的所有步骤操作,但收到以下错误:

错误:项目 :app 声明了从配置"编译"到配置"默认"的依赖项,该依赖项未在项目 :react-native-LinkedIn-login 的描述符中声明。

事实证明,上述说明中描述的路径是错误的。 为了解决这个问题,我更新了settings.gradle文件中的路径,如下所示:

//project(':react-native-linkedin-login').projectDir = new File(rootProject.projectDir, '../../android')
project(':react-native-linkedin-login').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-linkedin-login/android') 

之后,我可以成功地构建项目。

苹果:

完成此处所述的所有步骤后,您将在 XCode 项目路径中RNLinkedinLogin一个文件夹。

LinkedinLogin.m文件放入Build Phases->Compiled Sources

这两个文件都有旧的导入语法,但自从 react native 0.40 及更高版本以来,语法发生了变化。您必须相应地编辑这些导入。

更改了文件RNLinkedinLogin.m中的导入

// old syntax
//#import "RCTEventDispatcher.h"
// new syntax
#import <React/RCTEventDispatcher.h>

以及文件"RNLinkedinLogin.h"中的导入

//#import "RCTBridgeModule.h"
#import <React/RCTBridgeModule.h>

您的项目现在可以编译而不会出错。

祝你好运 汤姆

最新更新