NativeScript / nativescript-facebook

NativeScript plugin, wrapper of native Facebook SDK for Android and iOS
Apache License 2.0
79 stars 50 forks source link

[iOS] Crash login #184

Closed captainhaddockfr35 closed 5 years ago

captainhaddockfr35 commented 5 years ago

Which platform(s) does your issue occur on?

Please, tell us how to recreate the issue in as much detail as possible.

On iOS devices, when I try to login (on click into an Angular component) :

ERROR Error: *** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]

I followed the instructions to install the plugin :

Let me know if further information is needed.

jannomeister commented 5 years ago

+1 also experiencing this issue.

captainhaddockfr35 commented 5 years ago

Finally, I found a fix, as I use the firebase plugin, I activated Facebook on the firebase plugin and the plugin Facebook (this one) now works. But it's only a temporary fix. Maybe the problem is the Facebook SDK version ... I don't know

gogoout commented 5 years ago

Seems the problem only occured in 4.44, I generated the types and found no changes in there, therefore I was not able to fix the issue. So I guess the current workround is manually edit the version in podfile to below.

pod 'FBSDKCoreKit', '~> 4.40.0'
pod 'FBSDKLoginKit', '~> 4.40.0'
pod 'FBSDKShareKit', '~> 4.40.0'

And also, during my test, seems the official button works fine.

fthuin commented 5 years ago

Finally, I found a fix, as I use the firebase plugin, I activated Facebook on the firebase plugin and the plugin Facebook (this one) now works. But it's only a temporary fix. Maybe the problem is the Facebook SDK version ... I don't know

If you do that, you'll have duplicate dependencies on FBSDKCoreKit and FBSDKLoginKit which is not a very good practice.

Maybe the current code should be changed to add a UIViewController in the parameter, as it is here? https://github.com/facebook/facebook-objc-sdk/blob/6c4ac12f42916c7e104469002973747a2e5c4c83/FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManager.m#L92

@DimitarTodorov Would you accept a PR with a more specific Pod version as proposed by @gogoout ?

gogoout commented 5 years ago

@fthuin that's just a temporary workaround, not a fix. I can't find any active bug related to this one from Facebook's official bug tracker. So someone has to looking into it, otherwise the problem will remain in the later sdk.

fthuin commented 5 years ago

@fthuin that's just a temporary workaround, not a fix. I can't find any active bug related to this one from Facebook's official bug tracker. So someone has to looking into it, otherwise the problem will remain in the later sdk.

I agree it's a temporary fix, I don't think it's a "bug" in the facebook SDK, it's just the typings generated in this plugin are not coherent with the latest version of the Facebook SDK anymore (because they deprecated some stuff we use https://github.com/facebook/facebook-objc-sdk/commit/6c4ac12f42916c7e104469002973747a2e5c4c83 ), so I think a patch release with a more specific Pod version is a quick fix; the long-term fix is to regenerate typings and use the new function logInWithPermissions instead of the logInWithReadPermissions which was deprecated.

VladimirAmiorkov commented 5 years ago

Hi @fthuin @gogoout ,

We are investigating this issue and any additional finding on your part would be much appreciated. Any PRs are welcome as always.

VladimirAmiorkov commented 5 years ago

Hi @fthuin @gogoout ,

You can follow these two PRs which both resolve this issue: https://github.com/NativeScript/nativescript-facebook/pull/188 https://github.com/NativeScript/nativescript-facebook/pull/189

We are planning to merge the first one and release a patch version and after merging the second one you can look forward to a major version.

DimitarTodorov commented 5 years ago

https://github.com/NativeScript/nativescript-facebook/releases/tag/v3.0.1 Fixed with 3.0.1 of nativescript-facebook