darwin-morocho / flutter-facebook-auth

A flutter plugin to add login with facebook in your flutter app
193 stars 127 forks source link

Unable to launch app using version that depends on Facebook SDK >= 13.0.0 #303

Closed cameronmisplon closed 1 year ago

cameronmisplon commented 1 year ago

What version are you using?

flutter_facebook_auth:5.0.1

What OS and version are you using to local deploy your application?

macOS 13.0

What platforms are you seeing the problem on?

iOS

pubspec.yaml

name: franc
description: Franc investment app

# The following line prevents the package from being accidentally published to
# pub.dev using `pub publish`. This is preferred for private packages.
publish_to: "none" # Remove this line if you wish to publish to pub.dev

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 3.2.0+1

environment:
  sdk: ">=2.12.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  firebase_core: ^1.22.0
  firebase_analytics: ^9.3.4
  firebase_crashlytics: ^2.8.10
  provider: ^6.0.3
  get_it: ^7.2.0
  http: ^0.13.5
  shared_preferences: ^2.0.6
  webview_flutter: ^3.0.4
  dots_indicator: ^2.1.0
  mockito: ^5.0.10
  device_info: ^2.0.2
  device_preview: ^1.1.0
  percent_indicator: ^4.2.2
  url_launcher: ^6.1.5
  basic_utils: ^5.2.2
  country_picker: ^2.0.16
  jiffy: ^5.0.0
  intl: ^0.17.0
  local_auth: ^2.1.2
  flutter_platform_widgets: ^2.0.0
  expandable: ^5.0.1
  clipboard: ^0.1.3
  image_picker: ^0.8.5+3
  firebase_messaging: ^13.0.1
  share: ^2.0.4 # his plugin has been replaced by the Flutter Community Plus Plugins version, share_plus. No further updates are planned to this plugin, and we encourage all users to migrate to the Plus version.
  firebase_dynamic_links: ^4.3.7
  fluttericon: ^2.0.0
  file_picker: ^3.0.3
  flutter_cache_manager: ^3.3.0
  fl_chart: ^0.36.3
  appsflyer_sdk: ^6.8.2
  cached_network_image: ^3.2.2
  google_api_availability: ^3.0.1
  confetti: ^0.7.0
  in_app_review: ^2.0.4
  app_tracking_transparency: ^2.0.2+4
  connectivity_plus: ^2.3.7
  upgrader: ^3.13.0
  flutter_datetime_picker: ^1.5.1
  package_info_plus: ^1.3.0
  app_settings: ^4.1.8
  permission_handler: ^10.0.0
  flutter_local_notifications: ^9.9.1
  open_mail_app: ^0.4.5
  screenshot: ^1.2.3
  signature: ^5.0.0
  path_provider: ^2.0.11
  google_maps_place_picker_mb: ^2.0.0-mb.22
  easy_signature_pad: ^1.0.6

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  # cupertino_icons: ^0.1.3
  collection: ^1.16.0
  firebase_remote_config: ^2.0.17
  flutter_html: ^3.0.0-alpha.5
  google_sign_in: ^5.4.1
  youtube_player_flutter: ^8.1.1
  flutter_facebook_auth: ^5.0.1
  auto_size_text: ^3.0.0

dependency_overrides:
  firebase_core_platform_interface: 4.5.1

dev_dependencies:
  flutter_test:
    sdk: flutter

  flutter_native_splash: 1.1.0
  flutter_launcher_icons: 0.9.0

flutter_native_splash:
  color: "#ff673c"
  image: assets/images/splash/splash.png
  android: true
  ios: true
  android_gravity: fill
  ios_content_mode: scaleAspectFill

flutter_icons:
  android: "launcher_icon"
  ios: true
  image_path_ios: "assets/icons/app/ios-app.png"
  image_path_android: "assets/icons/app/android-app.png"

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:
  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  assets:
    - assets/images/common/
    - assets/images/landing/
    - assets/images/walkthrough/
    - assets/images/dashboard/
    - assets/images/auth/
    - assets/images/goal/
    - assets/images/payment/
    - assets/images/risk_assessment/
    - assets/images/kyc/
    - assets/images/biometrics/
    - assets/icons/generic/
    - assets/images/funds/
    - assets/images/share/
    - assets/images/generic/
    - assets/images/error/
    - assets/images/withdrawal/
    - assets/images/transactions/
    - assets/images/email/
    - assets/images/engagement/
    - assets/json/cash-performance.json
    - assets/images/deposit/
    - assets/images/messages/
    - assets/images/security/

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  fonts:
    - family: Nunito
      fonts:
        - asset: assets/fonts/Nunito/Nunito-Regular.ttf
        - asset: assets/fonts/Nunito/Nunito-Bold.ttf
          weight: 700
    - family: Gotham
      fonts:
        - asset: assets/fonts/Gotham/Gotham-Rounded-Bold.ttf

    - family: FrancIcons
      fonts:
        - asset: assets/fonts/AppIcons/FrancIcons.ttf
module:
  androidX: true

Describe the Bug

When running the app using flutter run, both pod install and xcode build are successful and the splash screen shows for a second before crashing with this error in console - Error connecting to the service protocol: failed to connect to http://127.0.0.1:60265/d8-aBX1RRJs=/ and an xcode error saying runner has quit unexpectedly

Expected Behavior

App to open and user to be able to signup with facebook.

To Reproduce

flutter pub get && flutter run

Relevant log output

https://pastebin.com/iArcn6Kw

flutter doctor -v

[✓] Flutter (Channel stable, 3.3.5, on macOS 13.0 22A380 darwin-x64, locale en-ZA)
    • Flutter version 3.3.5 on channel stable at /Users/cameronmisplon/development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision d9111f6402 (2 weeks ago), 2022-10-19 12:27:13 -0700
    • Engine revision 3ad69d7be3
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Users/cameronmisplon/Library/Android/sdk
    • Platform android-33, build-tools 32.1.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Ultimate Edition (version 2022.2.3)
    • IntelliJ at /Applications/IntelliJ IDEA.app
    • Flutter plugin version 70.2.5
    • Dart plugin version 222.4345.14

[✓] VS Code (version 1.72.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.52.0

[✓] Connected device (4 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554                        • android-x64    • Android 12 (API 31) (emulator)
    • iPhone 14 (mobile)           • 0792635D-B88E-49B9-B204-5294DEA21376 • ios            • com.apple.CoreSimulator.SimRuntime.iOS-16-0 (simulator)
    • macOS (desktop)              • macos                                • darwin-x64     • macOS 13.0 22A380 darwin-x64
    • Chrome (web)                 • chrome                               • web-javascript • Google Chrome 107.0.5304.87

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Info.plist (iOS)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>CFBundleDevelopmentRegion</key>
        <string>$(DEVELOPMENT_LANGUAGE)</string>
        <key>CFBundleExecutable</key>
        <string>$(EXECUTABLE_NAME)</string>
        <key>CFBundleIdentifier</key>
        <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleName</key>
        <string>Franc</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
        <string>$(FLUTTER_BUILD_NAME)</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleURLTypes</key>
        <array>
            <dict>
                <key>CFBundleTypeRole</key>
                <string>Editor</string>
                <key>CFBundleURLName</key>
                <string>com.franc.app</string>
                <key>CFBundleURLSchemes</key>
                <array>
                    <string>fbxxxx</string>
                    <string>francapp</string>
                    <string>com.googleusercontent.apps.xxxx</string>
                </array>
            </dict>
        </array>
        <key>FacebookAppID</key>
        <string>xxxx</string>
        <key>FacebookDisplayName</key>
        <string>Franc</string>
        <key>CFBundleVersion</key>
        <string>$(FLUTTER_BUILD_NUMBER)</string>
        <key>LSRequiresIPhoneOS</key>
        <true/>

        <key>NSLocationWhenInUseUsageDescription</key>
        <string>This app needs access to location when open.</string>
        <key>NSLocationAlwaysUsageDescription</key>
        <string>This app needs access to location when in the background.</string>
        <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
        <string>This app needs access to location when open and in the background.</string>

        <key>NSUserTrackingUsageDescription</key>
        <string>Your data will be used to improve the app and deliver personalized ads to you.</string>
        <key>NSCameraUsageDescription</key>
        <string>Allow access to camera to upload photographs of identity documents and proof of residence for account verification.</string>
        <key>NSFaceIDUsageDescription</key>
        <string>Please authenticate to login</string>
        <key>NSMicrophoneUsageDescription</key>
        <string>Allow access to microphone</string>
        <key>NSPhotoLibraryUsageDescription</key>
        <string>Allow access to photo library to upload identity documents and proof of residence for account verification.</string>
        <key>UIBackgroundModes</key>
        <array>
            <string>fetch</string>
            <string>remote-notification</string>
        </array>
        <key>UILaunchStoryboardName</key>
        <string>LaunchScreen</string>
        <key>UIMainStoryboardFile</key>
        <string>Main</string>
        <key>UISupportedInterfaceOrientations</key>
        <array>
            <string>UIInterfaceOrientationPortrait</string>
        </array>
        <key>UISupportedInterfaceOrientations~ipad</key>
        <array>
            <string>UIInterfaceOrientationPortrait</string>
            <string>UIInterfaceOrientationPortraitUpsideDown</string>
            <string>UIInterfaceOrientationLandscapeLeft</string>
            <string>UIInterfaceOrientationLandscapeRight</string>
        </array>
        <key>UIViewControllerBasedStatusBarAppearance</key>
        <false/>
        <key>UIStatusBarHidden</key>
        <false/>
        <key>LSApplicationQueriesSchemes</key>
        <array>
            <string>https</string>
            <string>http</string>
            <string>googlegmail</string>
            <string>x-dispatch</string>
            <string>readdle-spark</string>
            <string>airmail</string>
            <string>ms-outlook</string>
            <string>ymail</string>
            <string>fastmail</string>
            <string>superhuman</string>
            <string>protonmail</string>
        </array>
        <key>ITSAppUsesNonExemptEncryption</key>
        <false/>
        <key>CADisableMinimumFrameDurationOnPhone</key>
        <true/>
    </dict>
</plist>

Podfile (iOS)

platform :ios, '12.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      if target.respond_to?(:product_type) and target.product_type == "com.apple.product-type.bundle"
        target.build_configurations.each do |config|
            config.build_settings['CODE_SIGNING_ALLOWED'] = 'NO'
        end
      end
    end
  end
end

AndroidManifest.xml

No response

MainActivity.java

No response

MainActivity.kt

No response

index.html

No response

Info.plist (macOS)

No response

darwin-morocho commented 1 year ago

@cameronmisplon it seems that you forgot to add the facebook client token in your info.plist. please check https://facebook.meedu.app/docs/5.x.x/ios

cameronmisplon commented 1 year ago

@darwin-morocho This seemed to fix the issue thanks