From 3cb187f4a1248b05c774ff28145fef90afbda53e Mon Sep 17 00:00:00 2001 From: jackning <270580156@qq.com> Date: Mon, 19 Oct 2020 07:32:12 +0800 Subject: [PATCH] update to 0.1.1 --- bytedesk_demo/README.md | 1 + bytedesk_demo/ios/Flutter/.last_build_id | 1 + bytedesk_demo/ios/Podfile | 74 +++----------- bytedesk_demo/ios/Podfile.lock | 95 ++++++++++++++++++ .../ios/Runner.xcodeproj/project.pbxproj | 91 +++++++++++++++-- .../contents.xcworkspacedata | 3 + bytedesk_demo/lib/main.dart | 20 ++-- bytedesk_demo/pubspec.yaml | 2 +- bytedesk_demo/status.jpeg | Bin 0 -> 64044 bytes bytedesk_demo/userinfo.jpeg | Bin 0 -> 68830 bytes 10 files changed, 208 insertions(+), 79 deletions(-) create mode 100644 bytedesk_demo/ios/Flutter/.last_build_id create mode 100644 bytedesk_demo/ios/Podfile.lock create mode 100644 bytedesk_demo/status.jpeg create mode 100644 bytedesk_demo/userinfo.jpeg diff --git a/bytedesk_demo/README.md b/bytedesk_demo/README.md index f976966..480003c 100644 --- a/bytedesk_demo/README.md +++ b/bytedesk_demo/README.md @@ -22,6 +22,7 @@ ### 第一步 +- pubspec.yaml添加:bytedesk_kefu: ^0.1.0 - [注册账号](https://www.bytedesk.com/antv/user/login) - 获取appkey,登录后台->客服管理->渠道管理->添加应用->appkey - 获取subDomain,也即企业号:登录后台->客服管理->客服账号->企业号 diff --git a/bytedesk_demo/ios/Flutter/.last_build_id b/bytedesk_demo/ios/Flutter/.last_build_id new file mode 100644 index 0000000..e40c182 --- /dev/null +++ b/bytedesk_demo/ios/Flutter/.last_build_id @@ -0,0 +1 @@ +354cbe714d0265a1ee21027805b8b14b \ No newline at end of file diff --git a/bytedesk_demo/ios/Podfile b/bytedesk_demo/ios/Podfile index 5a69b89..f7d6a5e 100644 --- a/bytedesk_demo/ios/Podfile +++ b/bytedesk_demo/ios/Podfile @@ -10,75 +10,29 @@ project 'Runner', { 'Release' => :release, } -def parse_KV_file(file, separator='=') - file_abs_path = File.expand_path(file) - if !File.exists? file_abs_path - return []; +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 - generated_key_values = {} - skip_line_start_symbols = ["#", "/"] - File.foreach(file_abs_path) do |line| - next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ } - plugin = line.split(pattern=separator) - if plugin.length == 2 - podname = plugin[0].strip() - path = plugin[1].strip() - podpath = File.expand_path("#{path}", file_abs_path) - generated_key_values[podname] = podpath - else - puts "Invalid plugin specification: #{line}" - end - end - generated_key_values -end - -target 'Runner' do - # Flutter Pod - - copied_flutter_dir = File.join(__dir__, 'Flutter') - copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework') - copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec') - unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path) - # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet. - # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration. - # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist. - generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig') - unless File.exist?(generated_xcode_build_settings_path) - raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first" - end - generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path) - cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR']; - - unless File.exist?(copied_framework_path) - FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir) - end - unless File.exist?(copied_podspec_path) - FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir) - 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 - # Keep pod path relative so it can be checked into Podfile.lock. - pod 'Flutter', :path => 'Flutter' +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) - # Plugin Pods +flutter_ios_podfile_setup - # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock - # referring to absolute paths on developers' machines. - system('rm -rf .symlinks') - system('mkdir -p .symlinks/plugins') - plugin_pods = parse_KV_file('../.flutter-plugins') - plugin_pods.each do |name, path| - symlink = File.join('.symlinks', 'plugins', name) - File.symlink(path, symlink) - pod name, :path => File.join(symlink, 'ios') - end +target 'Runner' do + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) end post_install do |installer| installer.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['ENABLE_BITCODE'] = 'NO' - end + flutter_additional_ios_build_settings(target) end end diff --git a/bytedesk_demo/ios/Podfile.lock b/bytedesk_demo/ios/Podfile.lock new file mode 100644 index 0000000..578c292 --- /dev/null +++ b/bytedesk_demo/ios/Podfile.lock @@ -0,0 +1,95 @@ +PODS: + - bytedesk_kefu (0.0.1): + - Flutter + - device_info (0.0.1): + - Flutter + - devicelocale (0.0.1): + - Flutter + - Flutter (1.0.0) + - fluttertoast (0.0.2): + - Flutter + - Toast + - FMDB (2.7.5): + - FMDB/standard (= 2.7.5) + - FMDB/standard (2.7.5) + - image_picker (0.0.1): + - Flutter + - package_info (0.0.1): + - Flutter + - path_provider (0.0.1): + - Flutter + - "permission_handler (5.0.1+1)": + - Flutter + - shared_preferences (0.0.1): + - Flutter + - sqflite (0.0.1): + - Flutter + - FMDB (~> 2.7.2) + - Toast (4.0.0) + - webview_flutter (0.0.1): + - Flutter + +DEPENDENCIES: + - bytedesk_kefu (from `.symlinks/plugins/bytedesk_kefu/ios`) + - device_info (from `.symlinks/plugins/device_info/ios`) + - devicelocale (from `.symlinks/plugins/devicelocale/ios`) + - Flutter (from `Flutter`) + - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) + - image_picker (from `.symlinks/plugins/image_picker/ios`) + - package_info (from `.symlinks/plugins/package_info/ios`) + - path_provider (from `.symlinks/plugins/path_provider/ios`) + - permission_handler (from `.symlinks/plugins/permission_handler/ios`) + - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) + - sqflite (from `.symlinks/plugins/sqflite/ios`) + - webview_flutter (from `.symlinks/plugins/webview_flutter/ios`) + +SPEC REPOS: + trunk: + - FMDB + - Toast + +EXTERNAL SOURCES: + bytedesk_kefu: + :path: ".symlinks/plugins/bytedesk_kefu/ios" + device_info: + :path: ".symlinks/plugins/device_info/ios" + devicelocale: + :path: ".symlinks/plugins/devicelocale/ios" + Flutter: + :path: Flutter + fluttertoast: + :path: ".symlinks/plugins/fluttertoast/ios" + image_picker: + :path: ".symlinks/plugins/image_picker/ios" + package_info: + :path: ".symlinks/plugins/package_info/ios" + path_provider: + :path: ".symlinks/plugins/path_provider/ios" + permission_handler: + :path: ".symlinks/plugins/permission_handler/ios" + shared_preferences: + :path: ".symlinks/plugins/shared_preferences/ios" + sqflite: + :path: ".symlinks/plugins/sqflite/ios" + webview_flutter: + :path: ".symlinks/plugins/webview_flutter/ios" + +SPEC CHECKSUMS: + bytedesk_kefu: ca69f7b243932a665dc7001be5a8e04fe7f30c57 + device_info: d7d233b645a32c40dfdc212de5cf646ca482f175 + devicelocale: feebbe5e7a30adb8c4f83185de1b50ff19b44f00 + Flutter: 0e3d915762c693b495b44d77113d4970485de6ec + fluttertoast: 6122fa75143e992b1d3470f61000f591a798cc58 + FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a + image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09 + package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c + permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6 + shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d + sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0 + Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 + webview_flutter: d2b4d6c66968ad042ad94cbb791f5b72b4678a96 + +PODFILE CHECKSUM: 8e679eca47255a8ca8067c4c67aab20e64cb974d + +COCOAPODS: 1.9.3 diff --git a/bytedesk_demo/ios/Runner.xcodeproj/project.pbxproj b/bytedesk_demo/ios/Runner.xcodeproj/project.pbxproj index 471d30d..cded5e9 100644 --- a/bytedesk_demo/ios/Runner.xcodeproj/project.pbxproj +++ b/bytedesk_demo/ios/Runner.xcodeproj/project.pbxproj @@ -3,12 +3,13 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 50; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 76C21F7050A2CD2DEF6939A7 /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F592C57DD0344E5C9FD3DBCA /* libPods-Runner.a */; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; 97C146F31CF9000F007C117D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 97C146F21CF9000F007C117D /* main.m */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; @@ -30,9 +31,12 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 0FE6DD4FBA08EAD8E9C109F3 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = ""; }; 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 231E9DF94FF83E6A961385F0 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 3DE28677D520572A1B4ED199 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 7AFFD8ED1D35381100E5BB4D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -44,6 +48,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + F592C57DD0344E5C9FD3DBCA /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -51,12 +56,23 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 76C21F7050A2CD2DEF6939A7 /* libPods-Runner.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 52850156088B30C6CC36A5DC /* Pods */ = { + isa = PBXGroup; + children = ( + 3DE28677D520572A1B4ED199 /* Pods-Runner.debug.xcconfig */, + 0FE6DD4FBA08EAD8E9C109F3 /* Pods-Runner.release.xcconfig */, + 231E9DF94FF83E6A961385F0 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -74,7 +90,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, - CF3B75C9A7D2FA2A4C99F110 /* Frameworks */, + 52850156088B30C6CC36A5DC /* Pods */, + F87F847604EB996C0990C6B8 /* Frameworks */, ); sourceTree = ""; }; @@ -110,6 +127,14 @@ name = "Supporting Files"; sourceTree = ""; }; + F87F847604EB996C0990C6B8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F592C57DD0344E5C9FD3DBCA /* libPods-Runner.a */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -117,12 +142,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + F9CEBAB263D8AF5EB98D5263 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 87B66BA05A1875710622FC9D /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -194,6 +221,23 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; }; + 87B66BA05A1875710622FC9D /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 9740EEB61CF901F6004384FC /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -208,6 +252,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + F9CEBAB263D8AF5EB98D5263 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -245,7 +311,6 @@ /* Begin XCBuildConfiguration section */ 249021D3217E4FDB00AE95B9 /* Profile */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -300,13 +365,17 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = L5F47963M2; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -319,7 +388,6 @@ }; 97C147031CF9000F007C117D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -375,7 +443,6 @@ }; 97C147041CF9000F007C117D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; @@ -430,13 +497,17 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = L5F47963M2; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -453,13 +524,17 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = L5F47963M2; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", diff --git a/bytedesk_demo/ios/Runner.xcworkspace/contents.xcworkspacedata b/bytedesk_demo/ios/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/bytedesk_demo/ios/Runner.xcworkspace/contents.xcworkspacedata +++ b/bytedesk_demo/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/bytedesk_demo/lib/main.dart b/bytedesk_demo/lib/main.dart index 563d420..285c897 100644 --- a/bytedesk_demo/lib/main.dart +++ b/bytedesk_demo/lib/main.dart @@ -113,16 +113,16 @@ class _MyAppState extends State with WidgetsBindingObserver { // // TODO: 意见反馈 // }, // ), - ListTile( - title: Text('消息设置'), - trailing: Icon(Icons.keyboard_arrow_right), - onTap: () { - Navigator.of(context) - .push(new MaterialPageRoute(builder: (context) { - return new SettingPage(); - })); - }, - ) + // ListTile( + // title: Text('消息设置'), + // trailing: Icon(Icons.keyboard_arrow_right), + // onTap: () { + // Navigator.of(context) + // .push(new MaterialPageRoute(builder: (context) { + // return new SettingPage(); + // })); + // }, + // ) ], ).toList()), ); diff --git a/bytedesk_demo/pubspec.yaml b/bytedesk_demo/pubspec.yaml index d636244..9602587 100644 --- a/bytedesk_demo/pubspec.yaml +++ b/bytedesk_demo/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: # 消息设置switch https://pub.dev/packages/list_tile_switch list_tile_switch: ^0.0.2 # https://pub.dev/packages/bytedesk_kefu - bytedesk_kefu: ^0.1.0 + bytedesk_kefu: ^0.1.1 # The following adds the Cupertino Icons font to your application. diff --git a/bytedesk_demo/status.jpeg b/bytedesk_demo/status.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..aab5a640b462bf0fac555e3a121dfae03920ac38 GIT binary patch literal 64044 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 W|BU6x@U~ibTkZd0axP-C=f418@JwF- literal 0 HcmV?d00001 diff --git a/bytedesk_demo/userinfo.jpeg b/bytedesk_demo/userinfo.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..11a8d3d208de042434775250949333f283efe5e4 GIT binary patch literal 68830 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 AEdT%j literal 0 HcmV?d00001