jeduan / cordova-plugin-facebook4

Use the latest Facebook SDK in your Cordova and Ionic projects
Other
767 stars 511 forks source link

cordova-plugin-facebook4 issue with UIWebView #875

Closed RaghavCoddle closed 3 years ago

RaghavCoddle commented 4 years ago

I am getting again rejection from the app store.

Which version of cordova-plugin-facebook4 should I use in my ionic project?

I see I have used latest version as well by seems like it will still have some reference UIWebView

/Plugins/cordova-plugin-facebook4/Bolts.framework/Bolts /Plugins/cordova-plugin-facebook4/Bolts.framework/Headers/BFWebViewAppLinkResolver.h /Plugins/cordova-plugin-facebook4/FBSDKCoreKit.framework/FBSDKCoreKit /Plugins/cordova-plugin-facebook4/FBSDKCoreKit.framework/Headers/FBSDKWebViewAppLinkResolver.h /Plugins/cordova-plugin-facebook4/FBSDKLoginKit.framework/Headers/FBSDKLoginManager.h /Plugins/cordova-plugin-facebook4/FBSDKShareKit.framework/Headers/FBSDKShareDialogMode.h

marieptremblay31 commented 4 years ago

I'm having the same issue. I currently have to push a bunch of new apps into production with facebook disabled since Itunes Connect rejects this plugin using UIWebView.

It seems that there is no release yet that officially fixes the facebook SDK version (should be 5.5, which removes all traces of UIWebKit).

Should we expect one eventually ?

assertdesignuk commented 4 years ago

You can fork the plugin and replace the frameworks with the WKWebView ones.

It requires some mods to the *.m file but works fine afterwards.

assertdesignuk commented 4 years ago

Here is a link to my fork, you can use this until this plugin is updated: https://www.npmjs.com/package/ee-cordova-plugin-facebook4

It includes FB SDK 5.5 and the modified files which have been updated to work with SDK 5.5.

Also removed Bolts Framework as it was removed in SDK 5.5.

Use version 4.0.1

AbdullaevTimur commented 4 years ago

When I try to install your plugin version, NPM ask me new variable and throw error: Variable(s) missing (use: --variable APP_URL_SUFFIX=value). What is this?

assertdesignuk commented 4 years ago

That would be your deeplink or custom url. I.e.

mylink://

If you don’t use custom url scheme in your app simply use anything like above.

RaghavCoddle commented 4 years ago

When I try to install your plugin version, NPM ask me new variable and throw error: Variable(s) missing (use: --variable APP_URL_SUFFIX=value). What is this?

This is because you don't have CFBundleURLSchemes in your info.plist files. Add APP_ID and APP_NAME in your config.xml for cordova-plugin-facebook4 and then build ios.

assertdesignuk commented 4 years ago

I have all 3 variables in my config.xml

The reason I added the suffix variable was because I needed the plugin to be compatible with Facebook apps for multiple apps rather than creating a Facebook app for each app.

marieptremblay31 commented 4 years ago

@RaghavCoddle I think you should reopen this issue. The problem is still persistent within the plugin since the only fix requires a fork or manual edit of files of the project. Apple will reject all apps (new or updated) as of december 2020 so more people will complain about this issue. I think they should not have to reopen an issue each time.

This problem will not resolved until this plugin is updated to FB SDK 5.5.

assertdesignuk commented 4 years ago

@RaghavCoddle I think you should reopen this issue. The problem is still persistent within the plugin since the only fix requires a fork or manual edit of files of the project. Apple will reject all apps (new or updated) as of december 2020 so more people will complain about this issue. I think they should not have to reopen an issue each time.

This problem will not resolved until this plugin is updated to FB SDK 5.5.

Correct my fork is just to help people get by until the original developer update the plugin.

dev3inv commented 4 years ago

Hi @assertdesignuk, could you please help me apply the fork that you apply. Since I have the same problem.

nieok commented 4 years ago

@assertdesignuk i am using your version. thank you. but wheni want to upload to the store. i gt the following from apple.

The following URL schemes found in your app are not in the correct format: [fb707225786717723boxedandgo://]. URL schemes need to begin with an alphabetic character, and be comprised of alphanumeric characters, the period, the hyphen or the plus sign only. Please see RFC1738 for more detail.

i used boxedandgo:// as urlprefix.

any advice?

assertdesignuk commented 4 years ago

Hi

Remove The colon and slashes.

Just need the text part.

On 24 May 2020, at 02:20, nieok notifications@github.com wrote:

 @assertdesignuk i am using your version. thank you. but wheni want to upload to the store. i gt the following from apple.

The following URL schemes found in your app are not in the correct format: [fb707225786717723boxedandgo://]. URL schemes need to begin with an alphabetic character, and be comprised of alphanumeric characters, the period, the hyphen or the plus sign only. Please see RFC1738 for more detail.

i used boxedandgo:// as urlprefix.

any advice?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

nieok commented 4 years ago

perfect, thank you 👍😊

kenw232 commented 4 years ago

I can't get this fork to work. I add it to my Ionic 3 project and compile and submit to Apple but Apple always rejects with "ITMS-90809: Deprecated API Usage".

When will the original plugin be updated? Or what exactly has to be changed to make this get accepted by Apple?

assertdesignuk commented 4 years ago

It may be another plugin. I am using this and the Apple message disappeared.

What other plugins are you using?

On 24 May 2020, at 21:06, kenw232 notifications@github.com wrote:

 I can't get this fork to work. I add it to my Ionic 3 project and compile and submit to Apple but Apple always rejects with "ITMS-90809: Deprecated API Usage".

When will the original plugin be updated? Or what exactly has to be changed to make this get accepted by Apple?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

kenw232 commented 4 years ago

It may be another plugin. I am using this and the Apple message disappeared. What other plugins are you using?

I cannot get it to work. When I remove the plugin Apple accepts my app fine. So either the fork does not work or I'm implementing it wrong. I don't know where to turn for help, I'm a bit of an amateur at these custom forks.

Here are my plugins: cordova-android-support-gradle-release 2.0.1 "cordova-android-support-gradle-release" cordova-plugin-compat 1.2.0 "Compat" cordova-plugin-device 2.0.2 "Device" cordova-plugin-facebook4 6.4.0 "Facebook Connect" cordova-plugin-file 6.0.1 "File" cordova-plugin-geolocation 4.0.1 "Geolocation" cordova-plugin-inappbrowser 3.2.0 "InAppBrowser" cordova-plugin-ionic-keyboard 2.0.5 "cordova-plugin-ionic-keyboard" cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview" cordova-plugin-network-information 2.0.1 "Network Information" cordova-plugin-screen-orientation 3.0.1 "Screen Orientation" cordova-plugin-splashscreen 5.0.2 "Splashscreen" cordova-plugin-whitelist 1.3.3 "Whitelist" cordova-plugin-x-socialsharing 5.6.5 "SocialSharing" cordova-sqlite-storage 2.4.0 "Cordova sqlite storage plugin" es6-promise-plugin 4.2.2 "Promise" mx.ferreyra.callnumber 0.0.2 "Cordova Call Number Plugin"

All fine with Apple now that facebook is removed.

assertdesignuk commented 4 years ago

Are you sure your using the fork in your config? Please post your config.xml here.

On 25 May 2020, at 01:12, kenw232 notifications@github.com wrote:

 It may be another plugin. I am using this and the Apple message disappeared. What other plugins are you using?

I cannot get it to work. When I remove the plugin Apple accepts my app fine. So either the fork does not work or I'm implementing it wrong. I don't know where to turn for help, I'm a bit of an amateur at these custom forks.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

EmreAkkoc commented 4 years ago

so on my multi-platform app, clients won't be able to login into their existing account on ios? Cordova is almost done apparently

saperlipopette45 commented 4 years ago

@assertdesignuk , is there a specific thing to do after installing your package ? Here is my config.xml :

`

    <variable name="APP_NAME" value="Chrono blue" />
    <variable name="FACEBOOK_HYBRID_APP_EVENTS" value="false" />
    <variable name="FACEBOOK_ANDROID_SDK_VERSION" value="5.13.0" />
</plugin>`
assertdesignuk commented 4 years ago

These are the variables:

<plugin name="ee-cordova-plugin-facebook4" spec="^4.0.1">
        <variable name="APP_URL_SUFFIX" value="DEEPLINK SUFFIX" />
        <variable name="APP_ID" value="APP_ID" />
        <variable name="APP_NAME" value="APP_NAME" />
        <variable name="ANDROID_SDK_VERSION" value="4.+" />
</plugin>

APP_URL_SUFFIX was an additional variable I added to the plugin to allow multiple apps to use the same FB app. Its basically your deeplink i.e. myapp://.

eryzerz commented 4 years ago

Here is a link to my fork, you can use this until this plugin is updated: https://www.npmjs.com/package/ee-cordova-plugin-facebook4

It includes FB SDK 5.5 and the modified files which have been updated to work with SDK 5.5.

Also removed Bolts Framework as it was removed in SDK 5.5.

Use version 4.0.1

Didn't work. The app stuck on splash screen. I already installed the plugin correctly, the plugin tag for ee-cordova-plugin-facebook4 is in my config.xml and also inside package.json within plugin object. I'm using cordova-ios 5.1.1.

I get this error that catches my attention while running on simulator in xcode Task <0B379656-E74C-41A3-9BA0-677D37B54520>.<1> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x600001fa2af0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://graph.facebook.com/v3.2/2133605310204776?advertiser_id=********&fields=app_events_feature_bitmask,name,default_share_mode,ios_dialog_configs,ios_sdk_dialog_flows.os_version(13.2.2),ios_sdk_error_categories,supports_implicit_sdk_logging,gdpv4_nux_enabled,gdpv4_nux_content,ios_supports_native_proxy_auth_flow,ios_supports_system_auth,app_events_session_timeout,logging_token,auto_event_mapping_ios,auto_event_setup_enabled,sdk_update_message&format=json&include_headers=false&sdk=ios, NSErrorFailingURLKey=https://graph.facebook.com/v3.2/2133605310204776?advertiser_id=******&fields=app_events_feature_bitmask,name,default_share_mode,ios_dialog_configs,ios_sdk_dialog_flows.os_version(13.2.2),ios_sdk_error_categories,supports_implicit_sdk_logging,gdpv4_nux_enabled,gdpv4_nux_content,ios_supports_native_proxy_auth_flow,ios_supports_system_auth,app_events_session_timeout,logging_token,auto_event_mapping_ios,auto_event_setup_enabled,sdk_update_message&format=json&include_headers=false&sdk=ios, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

Any thought?

saperlipopette45 commented 3 years ago

Thanks @assertdesignuk !! That solves the issue on iOS, but that makes the app crash on Android. The build performs well, but when launching the app, the app instantly stops...

Ultima2876 commented 3 years ago

@assertdesignuk is it possible to get a PR for your fork, or a link to a repo (the links on npm.js still link to this source repo)? I want to make a fork with this and https://github.com/jeduan/cordova-plugin-facebook4/pull/860 as a base.

jonasmedeiros commented 3 years ago

@saperlipopette45 I will try today to get rid off the apple message, but for your issue in Android you can use Plugman

rolinger commented 3 years ago

@assertdesignuk - running into this today with a new app. The fork listed above shows spec=4.0.1, but current facebook4 spec is 6.4.0 - why the discrepancy? Gonna give this a shot, if no worky then I am going to rip FB out of app for now. Will post results.

rolinger commented 3 years ago

@assertdesignuk - well, it installed without a single issue. Nice job - thanks for forking this and doing the leg work. Searched all my plugins for UIWebView and only find references in the README files, so I hope I am ok. About to submit app again. Will post results.

taisatk commented 3 years ago

Here is a link to my fork, you can use this until this plugin is updated: https://www.npmjs.com/package/ee-cordova-plugin-facebook4

It includes FB SDK 5.5 and the modified files which have been updated to work with SDK 5.5.

Also removed Bolts Framework as it was removed in SDK 5.5.

Use version 4.0.1

I'm using Ionic v3 and this fork worked like a charm (no more rejection message from Apple because of UIWebView). Thank you very much, @assertdesignuk ! I'm using version 4.0.2 along with cordova-ios@5.1.1

noahcooper commented 3 years ago

This plugin is deprecated. Check out cordova-plugin-facebook-connect at https://www.npmjs.com/package/cordova-plugin-facebook-connect. That plugin uses v8 of the Facebook SDK, and there are no references to UIWebView.

winstonab commented 2 years ago

@assertdesignuk I am using ionicv3 and I have install the fork, but when it back from facebook, nothing happen(i.e. cannot get the FacebookLoginResponse) and the facebook login screen is not closed. And I found it call the deeplink function with xxx://authorize#blahblahblah, how can I solve this? Thanks.