diff --git a/packages/talker_flutter/example/.gitignore b/packages/talker_flutter/example/.gitignore index e44047eaf..243fea125 100644 --- a/packages/talker_flutter/example/.gitignore +++ b/packages/talker_flutter/example/.gitignore @@ -106,6 +106,7 @@ app.*.map.json **/linux/flutter/generated_plugin_registrant.cc **/linux/flutter/generated_plugin_registrant.h **/linux/flutter/generated_plugins.cmake +**/linux/flutter/ephemeral/ # Exceptions to above rules. !**/ios/**/default.mode1v3 diff --git a/packages/talker_flutter/example/linux/flutter/ephemeral/.plugin_symlinks/share_plus b/packages/talker_flutter/example/linux/flutter/ephemeral/.plugin_symlinks/share_plus deleted file mode 120000 index 78506bd01..000000000 --- a/packages/talker_flutter/example/linux/flutter/ephemeral/.plugin_symlinks/share_plus +++ /dev/null @@ -1 +0,0 @@ -/Users/stanislavilin/.pub-cache/hosted/pub.dev/share_plus-13.2.0/ \ No newline at end of file diff --git a/packages/talker_flutter/example/macos/Podfile b/packages/talker_flutter/example/macos/Podfile index c795730db..b52666a10 100644 --- a/packages/talker_flutter/example/macos/Podfile +++ b/packages/talker_flutter/example/macos/Podfile @@ -1,4 +1,4 @@ -platform :osx, '10.14' +platform :osx, '10.15' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/talker_flutter/example/macos/Podfile.lock b/packages/talker_flutter/example/macos/Podfile.lock index 287709340..45f15855a 100644 --- a/packages/talker_flutter/example/macos/Podfile.lock +++ b/packages/talker_flutter/example/macos/Podfile.lock @@ -20,10 +20,10 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/share_plus/macos SPEC CHECKSUMS: - FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - share_plus: 1fa619de8392a4398bfaf176d441853922614e89 + FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1 + path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880 + share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc -PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 +PODFILE CHECKSUM: 9ebaf0ce3d369aaa26a9ea0e159195ed94724cf3 -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj b/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj index d0086ee81..69b673f7a 100644 --- a/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/talker_flutter/example/macos/Runner.xcodeproj/project.pbxproj @@ -557,7 +557,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; @@ -639,7 +639,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -689,7 +689,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.14; + MACOSX_DEPLOYMENT_TARGET = 10.15; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 15368eccb..ac78810cd 100644 --- a/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/talker_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -59,6 +59,7 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" + enableGPUValidationMode = "1" allowLocationSimulation = "YES"> diff --git a/packages/talker_flutter/example/macos/Runner/AppDelegate.swift b/packages/talker_flutter/example/macos/Runner/AppDelegate.swift index 8e02df288..b3c176141 100644 --- a/packages/talker_flutter/example/macos/Runner/AppDelegate.swift +++ b/packages/talker_flutter/example/macos/Runner/AppDelegate.swift @@ -6,4 +6,8 @@ class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/packages/talker_logger/lib/src/logger_io.dart b/packages/talker_logger/lib/src/logger_io.dart index c8d6aa36e..9c5f99189 100644 --- a/packages/talker_logger/lib/src/logger_io.dart +++ b/packages/talker_logger/lib/src/logger_io.dart @@ -1,2 +1,8 @@ -// ignore: avoid_print -void outputLog(String message) => message.split('\n').forEach(print); +import 'dart:io'; + +/// Outputs log message to stdout +/// +/// Uses [stdout.writeln] instead of [print] to ensure proper output +/// on iOS simulators. The standard [print] function may not flush +/// its buffer properly on iOS simulators, causing logs to not appear. +void outputLog(String message) => message.split('\n').forEach(stdout.writeln); diff --git a/packages/talker_logger/test/output_log_test.dart b/packages/talker_logger/test/output_log_test.dart new file mode 100644 index 000000000..269d1eee4 --- /dev/null +++ b/packages/talker_logger/test/output_log_test.dart @@ -0,0 +1,31 @@ +import 'package:talker_logger/src/logger_io.dart' as logger_io; +import 'package:test/test.dart'; + +void main() { + group('outputLog', () { + test('should output single line message', () { + // This test verifies that outputLog can handle single line messages + // We cannot easily capture stdout in tests, so we just verify it doesn't throw + expect(() => logger_io.outputLog('Test message'), returnsNormally); + }); + + test('should output multi-line message', () { + // This test verifies that outputLog can handle multi-line messages + // Each line should be written separately + expect( + () => logger_io.outputLog('Line 1\nLine 2\nLine 3'), + returnsNormally, + ); + }); + + test('should handle empty message', () { + // This test verifies that outputLog can handle empty messages + expect(() => logger_io.outputLog(''), returnsNormally); + }); + + test('should handle message with only newlines', () { + // This test verifies that outputLog can handle messages with only newlines + expect(() => logger_io.outputLog('\n\n\n'), returnsNormally); + }); + }); +}