From 18bbb5e3fb6db6959b09eebc68e2a13df91f08e6 Mon Sep 17 00:00:00 2001 From: yueshengw <111824664+yueshengw@users.noreply.github.com> Date: Sun, 18 Sep 2022 22:38:52 -0400 Subject: [PATCH 1/5] Refactor Widgets & Add Page Navigation --- lib/main.dart | 13 +++++--- lib/pages/home_page.dart | 67 +++++++++++++++++++++++++++++++++++++++ lib/pages/test_page.dart | 35 ++++++++++++++++++++ lib/pages/user_guide.dart | 59 ++++++++++++++++++---------------- 4 files changed, 142 insertions(+), 32 deletions(-) create mode 100644 lib/pages/home_page.dart create mode 100644 lib/pages/test_page.dart diff --git a/lib/main.dart b/lib/main.dart index e1ec2ca..1ef1ac0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,4 +1,7 @@ import 'package:flutter/material.dart'; +import 'pages/home_page.dart'; +import 'pages/test_page.dart'; +import 'pages/user_guide.dart'; void main() { runApp(const MyApp()); @@ -10,11 +13,13 @@ class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( + routes: { + '/': (context) => const HomePage(), + '/testpage': (context) => const TestPage(), + 'userguide': (context) => const UserGuide(), + }, debugShowCheckedModeBanner: false, - home: const Scaffold(), - theme: ThemeData( - primarySwatch: Colors.orange, - ), + theme: ThemeData.dark(), ); } } diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart new file mode 100644 index 0000000..0c487c3 --- /dev/null +++ b/lib/pages/home_page.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import './test_page.dart'; +import './user_guide.dart'; + +class HomePage extends StatelessWidget { + const HomePage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Center( + child: Text( + "Home Page", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + ), + ), + ), + body: Center( + child: Align( + alignment: Alignment.topCenter, + child: Padding( + padding: const EdgeInsets.fromLTRB(0, 20, 0, 0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + ElevatedButton( + child: const Text( + 'user guide', + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 20), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const UserGuide()), + ); + }, + ), + ElevatedButton( + child: const Text( + 'test page', + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 20), + ), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const TestPage()), + ); + }, + ), + ], + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/lib/pages/test_page.dart b/lib/pages/test_page.dart new file mode 100644 index 0000000..0b648b1 --- /dev/null +++ b/lib/pages/test_page.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; + +class TestPage extends StatelessWidget { + const TestPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Row( + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + children: const [ + Text( + "Test Page", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + ), + ], + ), + centerTitle: true, + ), + body: Center( + child: ElevatedButton( + child: const Text( + 'Go Back', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + ), + onPressed: () { + Navigator.pop(context); + }, + ), + ), + ); + } +} diff --git a/lib/pages/user_guide.dart b/lib/pages/user_guide.dart index 0cfb096..9fdf928 100644 --- a/lib/pages/user_guide.dart +++ b/lib/pages/user_guide.dart @@ -1,31 +1,34 @@ import 'package:flutter/material.dart'; -@override -Widget build(BuildContext context){ - return MaterialApp( - title: "User Guide", - home: Scaffold( - appBar: AppBar( - title: const Text("User Guide"), - centerTitle: true, +class UserGuide extends StatelessWidget { + const UserGuide({ + Key? key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("User Guide"), + centerTitle: true, + ), + body: Center( + child: ListView( + shrinkWrap: true, + children: [ + const Text("\nStep 1. Tap the add application button.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step1.png"), //Place holder image + const Text("\nStep 2. Scan the QR code with your camera.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step2.png"), //Place holder image + const Text("\nStep 3. Press the save button.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step3.png"), //Place holder image + const Text("\nStep 4. View your codes on the home screen.\n", + style: TextStyle(fontSize: 19)) + ], ), - body: Center( - child: ListView ( - shrinkWrap: true, - children: [ - const Text("\nStep 1. Tap the add application button.\n", style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step1.png"), //Place holder image - const Text("\nStep 2. Scan the QR code with your camera.\n", style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step2.png"), //Place holder image - const Text("\nStep 3. Press the save button.\n", style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step3.png"), //Place holder image - const Text("\nStep 4. View your codes on the home screen.\n", style: TextStyle(fontSize: 19)) - ], - ), - ) - ), - theme: ThemeData( - primarySwatch: Colors.orange, - ) - ); -} \ No newline at end of file + )); + } +} From ec629c7d68603b36f05724d6e610580aaa5aeb52 Mon Sep 17 00:00:00 2001 From: yueshengw <111824664+yueshengw@users.noreply.github.com> Date: Wed, 5 Oct 2022 19:09:52 -0400 Subject: [PATCH 2/5] Add AppCard & AppCardForm Widgets (Incomplete) --- lib/main.dart | 5 +- lib/pages/home_page.dart | 1 + lib/pages/test_page.dart | 42 ++++++++--- lib/pages/user_guide.dart | 46 ++++++------ lib/reusable_widgets/AppCard.dart | 64 ++++++++++++++++ lib/reusable_widgets/AppCardForm.dart | 102 ++++++++++++++++++++++++++ 6 files changed, 228 insertions(+), 32 deletions(-) create mode 100644 lib/reusable_widgets/AppCard.dart create mode 100644 lib/reusable_widgets/AppCardForm.dart diff --git a/lib/main.dart b/lib/main.dart index 1ef1ac0..9ff19cf 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,7 +1,9 @@ +import 'package:authenticator/reusable_widgets/AppCardForm.dart'; import 'package:flutter/material.dart'; import 'pages/home_page.dart'; import 'pages/test_page.dart'; import 'pages/user_guide.dart'; +import 'reusable_widgets/AppCardForm.dart'; void main() { runApp(const MyApp()); @@ -16,7 +18,8 @@ class MyApp extends StatelessWidget { routes: { '/': (context) => const HomePage(), '/testpage': (context) => const TestPage(), - 'userguide': (context) => const UserGuide(), + '/userguide': (context) => const UserGuide(), + '/appcardform': (context) => const AppCardForm() }, debugShowCheckedModeBanner: false, theme: ThemeData.dark(), diff --git a/lib/pages/home_page.dart b/lib/pages/home_page.dart index 0c487c3..0bb203f 100644 --- a/lib/pages/home_page.dart +++ b/lib/pages/home_page.dart @@ -15,6 +15,7 @@ class HomePage extends StatelessWidget { style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), ), ), + centerTitle: true, ), body: Center( child: Align( diff --git a/lib/pages/test_page.dart b/lib/pages/test_page.dart index 0b648b1..323e17a 100644 --- a/lib/pages/test_page.dart +++ b/lib/pages/test_page.dart @@ -1,16 +1,46 @@ +// ignore_for_file: prefer_const_constructors + +import 'package:authenticator/pages/user_guide.dart'; import 'package:flutter/material.dart'; +import '../reusable_widgets/AppCard.dart'; +import 'package:faker/faker.dart'; +import '../reusable_widgets/AppCardForm.dart'; class TestPage extends StatelessWidget { const TestPage({super.key}); @override Widget build(BuildContext context) { + // int i = 0; + // while (i < 15) {} + var TestList = []; + int i = 0; + TestList.add( + AppCardForm(), + ); + while (i < 12) { + var faker = new Faker(); + TestList.add(AppCard( + appName: faker.company.name(), + username: '${faker.person.firstName()}@gmail.com')); + i += 1; + } + + TestList.add(ElevatedButton( + child: const Text( + 'Go Back', + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + ), + onPressed: () { + Navigator.pop(context); + }, + )); return Scaffold( appBar: AppBar( title: Row( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, - children: const [ + children: const [ Text( "Test Page", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), @@ -20,15 +50,7 @@ class TestPage extends StatelessWidget { centerTitle: true, ), body: Center( - child: ElevatedButton( - child: const Text( - 'Go Back', - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20), - ), - onPressed: () { - Navigator.pop(context); - }, - ), + child: ListView(shrinkWrap: true, children: TestList), ), ); } diff --git a/lib/pages/user_guide.dart b/lib/pages/user_guide.dart index 9fdf928..626a6e2 100644 --- a/lib/pages/user_guide.dart +++ b/lib/pages/user_guide.dart @@ -8,27 +8,31 @@ class UserGuide extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar( - title: const Text("User Guide"), - centerTitle: true, + appBar: AppBar( + title: const Text( + "User Guide", + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), ), - body: Center( - child: ListView( - shrinkWrap: true, - children: [ - const Text("\nStep 1. Tap the add application button.\n", - style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step1.png"), //Place holder image - const Text("\nStep 2. Scan the QR code with your camera.\n", - style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step2.png"), //Place holder image - const Text("\nStep 3. Press the save button.\n", - style: TextStyle(fontSize: 19)), - Image.asset("lib/assets/step3.png"), //Place holder image - const Text("\nStep 4. View your codes on the home screen.\n", - style: TextStyle(fontSize: 19)) - ], - ), - )); + centerTitle: true, + ), + body: Center( + child: ListView( + shrinkWrap: true, + children: [ + const Text("\nStep 1. Tap the add application button.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step1.png"), //Place holder image + const Text("\nStep 2. Scan the QR code with your camera.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step2.png"), //Place holder image + const Text("\nStep 3. Press the save button.\n", + style: TextStyle(fontSize: 19)), + Image.asset("lib/assets/step3.png"), //Place holder image + const Text("\nStep 4. View your codes on the home screen.\n", + style: TextStyle(fontSize: 19)) + ], + ), + ), + ); } } diff --git a/lib/reusable_widgets/AppCard.dart b/lib/reusable_widgets/AppCard.dart new file mode 100644 index 0000000..b5b93f4 --- /dev/null +++ b/lib/reusable_widgets/AppCard.dart @@ -0,0 +1,64 @@ +import 'package:authenticator/pages/home_page.dart'; +import 'package:authenticator/reusable_widgets/AppCardForm.dart'; +import 'package:flutter/material.dart'; +import 'package:faker/faker.dart'; + +class AppCard extends StatefulWidget { + // ignore: use_key_in_widget_constructors + const AppCard({required this.appName, required this.username}); + final String appName; + final String username; + @override + // ignore: no_logic_in_create_state, unnecessary_this + State createState() => _AppCardState(); +} + +class _AppCardState extends State { + _AppCardState(); + var randomID = random.integer(99999, min: 5323); + @override + Widget build(BuildContext context) { + return Card( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Column( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Text( + widget.appName, + style: + const TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + ), + Text( + widget.username, + style: + const TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + ), + Text( + randomID.toString(), + style: + const TextStyle(fontWeight: FontWeight.bold, fontSize: 20), + ), + ], + ), + ElevatedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const AppCardForm(), + ), + ); + }, + child: const Icon( + Icons.settings, + size: 35.0, + color: Colors.white, + ), + ), + ], + ), + ); + } +} diff --git a/lib/reusable_widgets/AppCardForm.dart b/lib/reusable_widgets/AppCardForm.dart new file mode 100644 index 0000000..f0b6d18 --- /dev/null +++ b/lib/reusable_widgets/AppCardForm.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; + +class AppCardForm extends StatefulWidget { + const AppCardForm({super.key}); + + @override + State createState() => _AppCardFormState(); +} + +class _AppCardFormState extends State { + final formKey = GlobalKey(); + final GlobalKey _scaffoldKey = GlobalKey(); + @override + Widget build(BuildContext context) { + final double height = MediaQuery.of(context).size.height; + return Container( + padding: const EdgeInsets.only(left: 50, right: 50), + child: Form( + key: formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + height: height * 0.04, + ), + const Text( + "Edit", + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 20, + ), + ), + SizedBox( + height: height * 0.04, + ), + TextFormField( + decoration: const InputDecoration( + labelText: 'Enter application name', + ), + validator: (value) { + if (value!.isEmpty) { + return "Application name can't be empty"; + } else { + return null; + } + }, + ), + SizedBox( + height: height * 0.04, + ), + TextFormField( + initialValue: '', + decoration: const InputDecoration( + labelText: 'Enter username', + ), + validator: (value) { + if (value!.isEmpty) { + return "username can't be empty"; + } else { + return null; + } + }, + ), + SizedBox( + height: height * 0.04, + ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + TextButton( + onPressed: () { + if (formKey.currentState!.validate()) { + const snackBar = SnackBar( + content: Text( + 'Saved', + textAlign: TextAlign.center, + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 20), + ), + ); + ScaffoldMessenger.of(context).showSnackBar(snackBar); + } + }, + child: const Text( + 'Save', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 20, + ), + ), + ), + ], + ), + SizedBox( + height: height * 0.04, + ), + ], + ), + ), + ); + } +} From 58787f5321bf00b05c3cb5b3b52e96c6b989c338 Mon Sep 17 00:00:00 2001 From: yueshengw <111824664+yueshengw@users.noreply.github.com> Date: Wed, 5 Oct 2022 19:13:37 -0400 Subject: [PATCH 3/5] Add missing dependencies --- pubspec.lock | 294 +++++++++++++++++++++++++++++++++++++++++++++++++++ pubspec.yaml | 11 +- 2 files changed, 301 insertions(+), 4 deletions(-) diff --git a/pubspec.lock b/pubspec.lock index 8afb90a..42434ed 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1,6 +1,27 @@ # Generated by pub # See https://dart.dev/tools/pub/glossary#lockfile packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + url: "https://pub.dartlang.org" + source: hosted + version: "47.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + url: "https://pub.dartlang.org" + source: hosted + version: "4.7.0" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.1" async: dependency: transitive description: @@ -15,6 +36,62 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + build: + dependency: transitive + description: + name: build + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.0" + build_config: + dependency: transitive + description: + name: build_config + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.9" + build_runner: + dependency: "direct dev" + description: + name: build_runner + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + url: "https://pub.dartlang.org" + source: hosted + version: "7.2.3" + built_collection: + dependency: transitive + description: + name: built_collection + url: "https://pub.dartlang.org" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + url: "https://pub.dartlang.org" + source: hosted + version: "8.4.1" characters: dependency: transitive description: @@ -22,6 +99,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.2.1" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" clock: dependency: transitive description: @@ -29,6 +113,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.0" collection: dependency: transitive description: @@ -36,6 +127,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.16.0" + convert: + dependency: transitive + description: + name: convert + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" crypto: dependency: transitive description: @@ -50,6 +148,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.5" + dart_style: + dependency: transitive + description: + name: dart_style + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.3" + expandable: + dependency: "direct main" + description: + name: expandable + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.1" fake_async: dependency: transitive description: @@ -57,6 +169,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.3.1" + faker: + dependency: "direct main" + description: + name: faker + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.4" + fixnum: + dependency: transitive + description: + name: fixnum + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" flutter: dependency: "direct main" description: flutter @@ -121,6 +254,48 @@ packages: description: flutter source: sdk version: "0.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.3" + glob: + dependency: transitive + description: + name: glob + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + graphs: + dependency: transitive + description: + name: graphs + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + url: "https://pub.dartlang.org" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.1" + io: + dependency: transitive + description: + name: io + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" js: dependency: transitive description: @@ -128,6 +303,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.6.4" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + url: "https://pub.dartlang.org" + source: hosted + version: "4.6.0" + json_serializable: + dependency: "direct main" + description: + name: json_serializable + url: "https://pub.dartlang.org" + source: hosted + version: "6.3.1" lints: dependency: transitive description: @@ -135,6 +324,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" + logging: + dependency: transitive + description: + name: logging + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" matcher: dependency: transitive description: @@ -156,6 +352,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.8.0" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" ootp: dependency: "direct main" description: @@ -163,6 +366,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.1.1" + package_config: + dependency: transitive + description: + name: package_config + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" path: dependency: transitive description: @@ -177,11 +387,60 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.2" + pool: + dependency: transitive + description: + name: pool + url: "https://pub.dartlang.org" + source: hosted + version: "1.5.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.1" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + shelf: + dependency: transitive + description: + name: shelf + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" sky_engine: dependency: transitive description: flutter source: sdk version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.2" + source_helper: + dependency: transitive + description: + name: source_helper + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.2" source_span: dependency: transitive description: @@ -203,6 +462,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + stream_transform: + dependency: transitive + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" string_scanner: dependency: transitive description: @@ -224,6 +490,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.4.12" + timing: + dependency: transitive + description: + name: timing + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" typed_data: dependency: transitive description: @@ -238,6 +511,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.2" + watcher: + dependency: transitive + description: + name: watcher + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.0" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.1" sdks: dart: ">=2.18.0 <3.0.0" flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 0d65678..24c2ac8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: A new Flutter project. # The following line prevents the package from being accidentally published to # pub.dev using `flutter pub publish`. This is preferred for private packages. -publish_to: 'none' # Remove this line if you wish to publish to pub.dev +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 @@ -20,7 +20,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev version: 1.0.0+1 environment: - sdk: '>=2.18.0 <3.0.0' + sdk: ">=2.18.0 <3.0.0" # Dependencies specify other packages that your package needs in order to work. # To automatically upgrade your package dependencies to the latest versions @@ -32,12 +32,15 @@ dependencies: flutter: sdk: flutter - # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.2 flutter_secure_storage: ^6.0.0 ootp: ^0.1.1 + faker: ^2.0.0 + expandable: ^5.0.1 + json_serializable: ^6.3.1 + json_annotation: ^4.6.0 dev_dependencies: flutter_test: @@ -49,13 +52,13 @@ dev_dependencies: # package. See that file for information about deactivating specific lint # rules and activating additional ones. flutter_lints: ^2.0.0 + build_runner: ^2.2.0 # 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 packages. 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. From cbb8bc73bee1a591d38363504edc768101df0a45 Mon Sep 17 00:00:00 2001 From: yueshengw Date: Wed, 16 Nov 2022 18:06:19 -0500 Subject: [PATCH 4/5] Implement System For Multiple Page Navigation (Work In Progress) --- .DS_Store | Bin 0 -> 8196 bytes .flutter-plugins | 6 + .flutter-plugins-dependencies | 1 + .idea/.gitignore | 3 + .idea/Authenticator.iml | 21 + .idea/libraries/Dart_Packages.xml | 628 ++++++++++ .idea/libraries/Dart_SDK.xml | 27 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + android/.DS_Store | Bin 0 -> 6148 bytes android/.gradle/7.4/checksums/checksums.lock | Bin 0 -> 17 bytes .../dependencies-accessors.lock | Bin 0 -> 17 bytes .../7.4/dependencies-accessors/gc.properties | 0 .../7.4/executionHistory/executionHistory.bin | Bin 0 -> 379793 bytes .../executionHistory/executionHistory.lock | Bin 0 -> 17 bytes .../.gradle/7.4/fileChanges/last-build.bin | Bin 0 -> 1 bytes android/.gradle/7.4/fileHashes/fileHashes.bin | Bin 0 -> 39347 bytes .../.gradle/7.4/fileHashes/fileHashes.lock | Bin 0 -> 17 bytes .../7.4/fileHashes/resourceHashesCache.bin | Bin 0 -> 19381 bytes android/.gradle/7.4/gc.properties | 0 .../buildOutputCleanup.lock | Bin 0 -> 17 bytes .../buildOutputCleanup/cache.properties | 2 + .../buildOutputCleanup/outputFiles.bin | Bin 0 -> 22943 bytes android/.gradle/file-system.probe | Bin 0 -> 8 bytes android/.gradle/vcs-1/gc.properties | 0 .../plugins/GeneratedPluginRegistrant.java | 24 + android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes android/gradlew | 160 +++ android/gradlew.bat | 90 ++ android/local.properties | 5 + authenticator/.DS_Store | Bin 0 -> 6148 bytes ios/.DS_Store | Bin 0 -> 6148 bytes ios/Flutter/Generated.xcconfig | 14 + ios/Flutter/flutter_export_environment.sh | 13 + ios/Runner/GeneratedPluginRegistrant.h | 19 + ios/Runner/GeneratedPluginRegistrant.m | 21 + lib/.DS_Store | Bin 0 -> 6148 bytes lib/main.dart | 22 +- lib/reusable_widgets/AppCardForm.dart | 1 + lib/view/home.dart | 51 +- lib/widget/account_tab.dart | 25 +- lib/widget/bottom_nav.dart | 45 + .../flutter_secure_storage_linux | 1 + macos/.DS_Store | Bin 0 -> 6148 bytes .../plugins/flutter_secure_storage_macos | 1 + .../ephemeral/Flutter-Generated.xcconfig | 13 + .../ephemeral/FlutterInputs.xcfilelist | 0 macos/Flutter/ephemeral/FlutterMacOS.podspec | 18 + .../ephemeral/FlutterOutputs.xcfilelist | 0 .../ephemeral/flutter_export_environment.sh | 14 + macos/Podfile.lock | 22 + .../Local Podspecs/FlutterMacOS.podspec.json | 20 + .../flutter_secure_storage_macos.podspec.json | 30 + macos/Pods/Manifest.lock | 22 + macos/Pods/Pods.xcodeproj/project.pbxproj | 1081 +++++++++++++++++ .../xcschemes/FlutterMacOS.xcscheme | 58 + .../xcschemes/Pods-Runner.xcscheme | 58 + .../flutter_secure_storage_macos.xcscheme | 58 + .../xcschemes/xcschememanagement.plist | 26 + .../FlutterMacOS/FlutterMacOS.debug.xcconfig | 12 + .../FlutterMacOS.release.xcconfig | 12 + .../Pods-Runner/Pods-Runner-Info.plist | 26 + .../Pods-Runner-acknowledgements.markdown | 35 + .../Pods-Runner-acknowledgements.plist | 65 + .../Pods-Runner/Pods-Runner-dummy.m | 5 + ...er-frameworks-Debug-input-files.xcfilelist | 2 + ...r-frameworks-Debug-output-files.xcfilelist | 1 + ...-frameworks-Profile-input-files.xcfilelist | 2 + ...frameworks-Profile-output-files.xcfilelist | 1 + ...-frameworks-Release-input-files.xcfilelist | 2 + ...frameworks-Release-output-files.xcfilelist | 1 + .../Pods-Runner/Pods-Runner-frameworks.sh | 189 +++ .../Pods-Runner/Pods-Runner-umbrella.h | 16 + .../Pods-Runner/Pods-Runner.debug.xcconfig | 12 + .../Pods-Runner/Pods-Runner.modulemap | 6 + .../Pods-Runner/Pods-Runner.profile.xcconfig | 12 + .../Pods-Runner/Pods-Runner.release.xcconfig | 12 + .../flutter_secure_storage_macos-Info.plist | 26 + .../flutter_secure_storage_macos-dummy.m | 5 + .../flutter_secure_storage_macos-prefix.pch | 12 + .../flutter_secure_storage_macos-umbrella.h | 17 + ...lutter_secure_storage_macos.debug.xcconfig | 13 + .../flutter_secure_storage_macos.modulemap | 6 + ...tter_secure_storage_macos.release.xcconfig | 13 + macos/Runner.xcodeproj/project.pbxproj | 62 +- .../contents.xcworkspacedata | 3 + windows/.DS_Store | Bin 0 -> 6148 bytes .../flutter_secure_storage_windows | 1 + 88 files changed, 3153 insertions(+), 30 deletions(-) create mode 100644 .DS_Store create mode 100644 .flutter-plugins create mode 100644 .flutter-plugins-dependencies create mode 100644 .idea/.gitignore create mode 100644 .idea/Authenticator.iml create mode 100644 .idea/libraries/Dart_Packages.xml create mode 100644 .idea/libraries/Dart_SDK.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 android/.DS_Store create mode 100644 android/.gradle/7.4/checksums/checksums.lock create mode 100644 android/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock create mode 100644 android/.gradle/7.4/dependencies-accessors/gc.properties create mode 100644 android/.gradle/7.4/executionHistory/executionHistory.bin create mode 100644 android/.gradle/7.4/executionHistory/executionHistory.lock create mode 100644 android/.gradle/7.4/fileChanges/last-build.bin create mode 100644 android/.gradle/7.4/fileHashes/fileHashes.bin create mode 100644 android/.gradle/7.4/fileHashes/fileHashes.lock create mode 100644 android/.gradle/7.4/fileHashes/resourceHashesCache.bin create mode 100644 android/.gradle/7.4/gc.properties create mode 100644 android/.gradle/buildOutputCleanup/buildOutputCleanup.lock create mode 100644 android/.gradle/buildOutputCleanup/cache.properties create mode 100644 android/.gradle/buildOutputCleanup/outputFiles.bin create mode 100644 android/.gradle/file-system.probe create mode 100644 android/.gradle/vcs-1/gc.properties create mode 100644 android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java create mode 100755 android/gradle/wrapper/gradle-wrapper.jar create mode 100755 android/gradlew create mode 100755 android/gradlew.bat create mode 100644 android/local.properties create mode 100644 authenticator/.DS_Store create mode 100644 ios/.DS_Store create mode 100644 ios/Flutter/Generated.xcconfig create mode 100755 ios/Flutter/flutter_export_environment.sh create mode 100644 ios/Runner/GeneratedPluginRegistrant.h create mode 100644 ios/Runner/GeneratedPluginRegistrant.m create mode 100644 lib/.DS_Store create mode 100644 lib/widget/bottom_nav.dart create mode 120000 linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux create mode 100644 macos/.DS_Store create mode 120000 macos/Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos create mode 100644 macos/Flutter/ephemeral/Flutter-Generated.xcconfig create mode 100644 macos/Flutter/ephemeral/FlutterInputs.xcfilelist create mode 100644 macos/Flutter/ephemeral/FlutterMacOS.podspec create mode 100644 macos/Flutter/ephemeral/FlutterOutputs.xcfilelist create mode 100755 macos/Flutter/ephemeral/flutter_export_environment.sh create mode 100644 macos/Podfile.lock create mode 100644 macos/Pods/Local Podspecs/FlutterMacOS.podspec.json create mode 100644 macos/Pods/Local Podspecs/flutter_secure_storage_macos.podspec.json create mode 100644 macos/Pods/Manifest.lock create mode 100644 macos/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/FlutterMacOS.xcscheme create mode 100644 macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/Pods-Runner.xcscheme create mode 100644 macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/flutter_secure_storage_macos.xcscheme create mode 100644 macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig create mode 100644 macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist create mode 100755 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig create mode 100644 macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-dummy.m create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-umbrella.h create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.debug.xcconfig create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap create mode 100644 macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.release.xcconfig create mode 100644 windows/.DS_Store create mode 120000 windows/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_windows diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e52585ca53bb271a9396541cd5418e8762ee277a GIT binary patch literal 8196 zcmeHMJ!n%=6h5~}NLp#Bx@2hOQABVl7Q{h^#*(6wv}6$+v`I=ENScr~R#7ChI&~5E zY9>LHA`YTxA%lW0;-H|LgCK%JadGv#Kgl~c@1?YhRJ^y`d%`>4dEa^8y}38%m59Vd zEk8z-B%%bmw1fLFgf!`wJ5xtDRVgT(fI0c*nP64NYQ@|;(7Zkvm zEnA|?xv#x$bP6~H{!0bq{@|fYn=-bpt=c*;s1g7+ip#3uGwJ{p;~ASWwyv!T#XWWP zAWWz*C5F)9@Ou&tn=-bptqv!l!$}xsVJZ}%*b(O`IEj?DZgdJb1%e95+P#lPDNi$0 z<@I}UZY+~4mnt%(_vz}HZn#o8oz51^S@;w0de(;w>^?qgR^ zO|D#5+$^56ha)V0dN29on41OgSMgp2d006l&VC9acpg6wey-fpbJB4io=bO>l}~R| z=F^XSYFI1tP-FqNKsj8I?|rIPZj_Xp^EPOn=i&X|k383NwQYnydpnD;^4Et-jIzkT zfOk}umIICTAIO(^d44yii|5SRwh(?k;Rwz@@T>^}ih#RJi2xeN7?x_LFU>n6^LkjQr7>I z-QWN3@~#f<6mSasOA3f+I+LD2#(G;1rY>u35B(ClY!X-3R)t`Y5P4mdM sd?{n=+QNhO*Ixu!r+d0xkA$D@{1gsHSm%&C|4qe6!kzzWdGFcb4?wvZeE + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Dart_Packages.xml b/.idea/libraries/Dart_Packages.xml new file mode 100644 index 0000000..c845166 --- /dev/null +++ b/.idea/libraries/Dart_Packages.xml @@ -0,0 +1,628 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml new file mode 100644 index 0000000..cb79f3d --- /dev/null +++ b/.idea/libraries/Dart_SDK.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..47078f7 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/android/.DS_Store b/android/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6a439a22bed197f8b417f281f17fa2c920e7d94d GIT binary patch literal 6148 zcmeHKu};J=47Irvs>E_5V)3W))+8Tb`8egKJQJKVKU z7!d+nN?u~ecKS{iCq%@{o4O=g5K)09$TFA^QBRr<@?tTv#3)yruI(p6{9cvpeMT45 zQ{QZd`!8?zmbR;^b7#v^ zyM5i|9>r+8{SLlbGv0^%-Y(97GvEw31OJo()NGOB$k2Odz!`7`b_~e*5YPl;#$>2R z2ReNM0OwGvV61mbU=Rf`W=w|AK-gS?=F0hr!R8Kq$m?RpWN7Zhni+9&=J&@7=bJ4D zT}~Vgy>|wjfiVL!n=YjOpW&}G`N$u;_{!;6?S{u;L(L`ij rk^ux`EyX}B#hA!Ba;!$P2N}a2GbTfcB6@WP`b9tq@y;3e0S4XxE*VId literal 0 HcmV?d00001 diff --git a/android/.gradle/7.4/checksums/checksums.lock b/android/.gradle/7.4/checksums/checksums.lock new file mode 100644 index 0000000000000000000000000000000000000000..465d34dad2b231782bcb3b675e5dfd2fd6a0a476 GIT binary patch literal 17 TcmZSHa;tXBKP@gE1}FdkHp&D6 literal 0 HcmV?d00001 diff --git a/android/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock b/android/.gradle/7.4/dependencies-accessors/dependencies-accessors.lock new file mode 100644 index 0000000000000000000000000000000000000000..2cd117cc783a9329c04b12ffc673d70e61b5a57d GIT binary patch literal 17 ScmZQpYrE8&=p$vp00jUi?*k41 literal 0 HcmV?d00001 diff --git a/android/.gradle/7.4/dependencies-accessors/gc.properties b/android/.gradle/7.4/dependencies-accessors/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/android/.gradle/7.4/executionHistory/executionHistory.bin b/android/.gradle/7.4/executionHistory/executionHistory.bin new file mode 100644 index 0000000000000000000000000000000000000000..d135fdc31d1742427e70bdb711769c78fddc9e1a GIT binary patch literal 379793 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
x_2{?5|A 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¢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 SXfwzUpJCP8vMm+yx3vDG6L4V{M-QX$aB zpn-gl&0OO5i1PC<6Af`iz20T#as+_Fa)2Zt&>~qwuBa*eJ>}lm<8)L;Sz!2)I;ac< zmgq@?G+Oi=A@i}hn=MA6EwGr$mw4%rT7(^(IeZ&MgUZMh^`Gxd>ZdHz>Mi{i{`}b0 zCa6Ge%4nnXJI`7bci(d{&c1foahkbQOE3W{ibw(i0X?P3d^}n3J$#+=@WFkzDo-zP nzjYZZs-ePqu43FPbNf{dli*c_5`I&uEq8#z9<5VY+xY(g`9b;T literal 0 HcmV?d00001 diff --git a/android/.gradle/7.4/fileHashes/fileHashes.lock b/android/.gradle/7.4/fileHashes/fileHashes.lock new file mode 100644 index 0000000000000000000000000000000000000000..1e981e491a1e1da2e28bcc14ce303e55f772d8ca GIT binary patch literal 17 VcmZR6tCmu;(pWK_0Sp-T0{|@91RDSV literal 0 HcmV?d00001 diff --git a/android/.gradle/7.4/fileHashes/resourceHashesCache.bin b/android/.gradle/7.4/fileHashes/resourceHashesCache.bin new file mode 100644 index 0000000000000000000000000000000000000000..ded2ac86e438c7a411589d5a7689d237b41e1a3f GIT binary patch literal 19381 zcmeI(e^AqP9LMo58W57P@DK>a!GV{7xw*@k#4V76jiFeAP!>OgkSLmz4k`Jyg`3bA zI3&aiGJeU;f?XW)s{t}4Z-yp;?gVeSJLQMSjdD<+wC{btpSB-#xngNo<7{39>Ng_fB*=900@8p2!H?xfB*=900@8p2!H?xfB*=900@A< z|3x6y`bJh!Z^k2V1$p3-O%SZ-tOqY1|MeS-XH>L3^)i1N{r^D5&>GvqOBhrayovhB zmIoPUxZE%4{weBpk5tLZFsEgzNAghD>hhm|EETlS`wOTWWo53#ZtiA!-+=n6K=HP^ z_um_)_ghe3J(8KhXdUL$`()JJI5S_V!Y93`E>!)~)1KUsmnBe{h+L2QI-jeG{1o9; z`uwX=_jS&1(is*j=<`pa?!Qx!lXrthU#Bn{byl7Hq4uHVb^1J~P=D3_!>M=lZ=a&i zBSn3C_36x-=ydX(Q%ZGy3hJ?vHzt#PFG=XV zGwSg_9O@nKzc@?pi%?IHnbX|U0`^i}u!wqM!a~jD`9HeoeF*9YK03O2N;r{A_a@ZS zp~+igjo$xW*xeY*+-I!n)e+5o zw@N)^_+sK*_iclS|43M$ooacBmxM1Qj}s$qCh5~nsRxIoF_J2L(ZjtKOf+bJ(p3MZ z?{{H;f-fTMw8i_{Eskw<<-SXEZsa`zHdopkKf69DuXfwosIPYhin-*s_H7n#<+fTh zmwSRQ?#fvVWnFrLFFr8$7F-YdPJL%!Jnn>Y>$CXc_b+z*IHx}z(|oky$o-Ym9r&W7 zuywT3Z^3-Of1tvWzSbXKoF7wrhAh7l=p5Ik9#c4yABD}8&J>sj{8Ng59#N}m4H8Zf zzOcJ>w=%%9THU#)`zAwX*@!Q?<}X|h>d6`jk&d<>3vHgj7lvb-^g-pjBxNr*iE7?W zRpN`oyHl7e*)1Liw|ITV*0DzLh1B3xT68VmHq)$ literal 0 HcmV?d00001 diff --git a/android/.gradle/buildOutputCleanup/cache.properties b/android/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..7bc9b38 --- /dev/null +++ b/android/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Thu Oct 27 18:34:15 EDT 2022 +gradle.version=7.4 diff --git a/android/.gradle/buildOutputCleanup/outputFiles.bin b/android/.gradle/buildOutputCleanup/outputFiles.bin new file mode 100644 index 0000000000000000000000000000000000000000..6d179a2292cdb0f0c271d438fbd94fc79e264be9 GIT binary patch literal 22943 zcmeI%3sjBi8VB&wkSV0;qJ+vVmq8bfaw6!0j2{?2bc~p9bh`Zbb#pq(*dRf zOb3__Fdbkz@OSBe^!-G%U@}IQJ^py16RM^*q0jpl?W~a9k0%G#5Q_ zNRL%&W-Xp1Uq`*(cCGMw-EwfzVDz(9wQX_XAlo=*L6utT`_vVVf}m!hZG zjU1Sl!?6PAR#ATtnYVtZ(|m9q9nThbt4^oSyvcFhGBKZ;V7ehRX6G@;i^rm;g||OG z64iGF@nH0=8txuND@@4sAkn2hZQr*YPkHkoFPe#-aW+KDeMJc$+|`cyGjCy@wWcAd zUx&VgN|kTn~Lu+-aNDOW5SROS;fA z9qsKyj7wyYcU^_PxAkNP|K;#^$Trv#3*e8BM+koEr;Nownw-|8kZ2DX# zdAc6{R1`R=_}7wjaN$wRmuwE1YbDCr2QH)IKP_n(d*_!i^c>b`0FW!9(E{;P#YyQ*9G@tA};H+!Z5BCs zc}60rdYBFFas&Os`B~gzmwnGj{xJH*wlWX34a3fW^WxDj?Tiw)$=5c5v$N1IkL)^{ zGw`_=xJx+tl|BaXze|hAdcvaPxl%aMzp$zg>5o)O^Osf*-Ctcqo=0x;&@1~#ur!L! zRYH9+J-?L}S!SN;@&n*>RhGuvz`PcS-rXr z&ND&(rFZk1qSk^aa2HeRcel=TFz`DKE~}^B_B`jJyYCR*C{JW?6I*>X`X+E~JO+P)_ z30!uNdR`cN^V}%1&tb=**PPK?wIg5#SqG$aUbRxI;so9A$#Y7$4)e7M?iM-I#&V%P z#{j+V?Cr@luZ=pu1p(*}!oopHa&B;_aW|s-Wa#hbWnO#Evf$!z3Iyyg2hGm_kz0~r!KNGGi?)* z6Dg(lOH=8I#vTX0Amitaqxol&{T*Rx>!FU+6#dr?r8?SGoJ-)cH`KGFy?40hJ^~le z`>1(@v7O%eu1Vlrx*j%9_8(&&YftuXLLIErobe#TJ~46@Kcuj9BOqHT=)+2Z{sJ|HRWdC0_W55v`+PS zJ#$+PhtzqB`L-=yPPZyLh2Sm?=uAa+K^dSs9q`Y#Dm1 zhlSr)P>1VGy{om$tJbR(T%th#%{ox6q$DyI-1Rwnw}0yO>1UH2NS$W%9@d6qZz z=>4Kuk+NsxSNX=^ZnST`2m8gQt(KXAyKKigpYM8lPjYs`25^ZVx^~jWJ0n&UuK^cn zqwBmG@u>N{g6ubVbY1;o7^~;7qTS@Wb!o@E-qba^Q%)Vb0d)k0==vd+TKAWEc7nTV zpc_V3_`cANBhM)}x}F%#@PGAFsZP4kc3M>qcSj05C3cIbmP z?(@tUwNe{gJRN<=!)x1aoKYv&A%~9N^yZ7#Zzrmgb(_P*yqVe7cMooslJ!ObA7AAI9iavtR;(1#X;8m&JTjQyd{qcP6&7u)hAWc}oJVSdapcg^%v zqk&MLtBXGNLS9izRf8|MD1rJfhQk(J(A@P%8**MHwS7s*|8dlAKI-F{B8;4aUg=snl;PmqEwmIPN@SJmzI=Fl^ z&A+fcwQr>FLvUFo`agbm*!EJ(o;>e(blslR>3D3P=kij>E1WQID>5t!ofs|vceABl z@mWlh#ep8+!ky?-w(KlsFWNgATtKh4>B3)hkLOQp26v(B!1NB=LC%}Tkp8evW1Sf@ zzdB(c895p9Tm|)@>uSzlRPw+%&(ZB&?B|{=e@6CKT)Lh+M3hfyuN_AAOCl@G&vxV` zUX1c5`*~hEy3={hJsNSG1gI|)q0eF8w)QulNA@!cU+O#D9MvS>X+U0d4c&Q1>k+%T zQ^xz5;ochsE~EXI%otKw zwaBF}xZCeoM_Q}C`dprC?o{>0tCief+$7A;tqB>| z=^c~?d3g%@yfycGZ#h>=?q8Q&ba!8?UTyyKrb3<*i0<*(f$am=$A9^+TGwX6Y3A%#g<=~LY^<2xv-n@-uar-`k|i375%u zEU3#J`&t#Y;&ZK;x?j3MO7bgmorts0zbU)@P2#MhZBR$C4*lD@v8JM=$SvUPVDtq# z(IZ0l?==S((Ccb}Wq%jHv!fEhh4gw@_|*vi6*&vZzDQ_;brwy&6tf_Bo(;)Ip!*fh zyme_>0C}GBW2wI$F}gmKO@5!l*@x~weqPap&L*;M%RYqd>{9JgRFsZX!-#eO2| zOWiM`!C8+m9~gcvGbJhrpUbpFEO1#o_2%MhMUQuo z=O9}XJ;*FLs?xhD5Ar;^o&=?3uRFB*j0w1#9_E8bsn6NqW=-ZL*^R!edRnf-?1KG} z7t-}PWOzz|pa`g{;4xKo7P|MymwN#=PONcS9g5Fa_*GnyH0nK^+A$EeaSiT{kl7`kXPtX z596orl_s~6I`nxLSu^d&LpFXQaDh7Jqi314^&3=1_VYY?-lI94Aqx**CeJ}B-S0(* zZ1ZJ5Qr9PSY_SghuckJ@4t~abXF9-ifaw6!0j2{?2bc~p9bh`Zbb#pq(*dRfOb3__ zFdbkzz;uA=0Mh}c155{)4t)9@_~VakpTGb2#~(%1|M=GLf5`jDe`G#=`RnGTT=_$F zLzT*^WR%CF%DYs_s8ab;tE0-8l{3on=jQdH>Zo#b<&3iYx$&q{=g(FCyS_`gW6JV( zo%^RhFICRP|92M3M^_f*St!e=_Ace|D2pny_?YifWjv~6KIWJ|=CMB1+&@$u<+&>h zbFBA0`7fUWlsl#@s`OAfqb#aa{_EcL=^tHrgvz2ye?I2BKDF_D%(<&_tPjB% aF)L@3<*yshpF5WFc$7uCva+cBu73eWd!R1> literal 0 HcmV?d00001 diff --git a/android/.gradle/file-system.probe b/android/.gradle/file-system.probe new file mode 100644 index 0000000000000000000000000000000000000000..882426098206701f27a19c945a3b0e4ee0a27a1d GIT binary patch literal 8 PcmZQzU~G||Rm%$i1>*t5 literal 0 HcmV?d00001 diff --git a/android/.gradle/vcs-1/gc.properties b/android/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java new file mode 100644 index 0000000..c0c7eed --- /dev/null +++ b/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java @@ -0,0 +1,24 @@ +package io.flutter.plugins; + +import androidx.annotation.Keep; +import androidx.annotation.NonNull; +import io.flutter.Log; + +import io.flutter.embedding.engine.FlutterEngine; + +/** + * Generated file. Do not edit. + * This file is generated by the Flutter tool based on the + * plugins that support the Android platform. + */ +@Keep +public final class GeneratedPluginRegistrant { + private static final String TAG = "GeneratedPluginRegistrant"; + public static void registerWith(@NonNull FlutterEngine flutterEngine) { + try { + flutterEngine.getPlugins().add(new com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin()); + } catch(Exception e) { + Log.e(TAG, "Error registering plugin flutter_secure_storage, com.it_nomads.fluttersecurestorage.FlutterSecureStoragePlugin", e); + } + } +} diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100755 index 0000000000000000000000000000000000000000..13372aef5e24af05341d49695ee84e5f9b594659 GIT binary patch literal 53636 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ⅅ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 H-+%o-(+5aQ literal 0 HcmV?d00001 diff --git a/android/gradlew b/android/gradlew new file mode 100755 index 0000000..9d82f78 --- /dev/null +++ b/android/gradlew @@ -0,0 +1,160 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100755 index 0000000..aec9973 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/local.properties b/android/local.properties new file mode 100644 index 0000000..6cf7308 --- /dev/null +++ b/android/local.properties @@ -0,0 +1,5 @@ +sdk.dir=/Users/suling/Library/Android/sdk +flutter.sdk=/Users/suling/Documents/Development/flutter +flutter.buildMode=debug +flutter.versionName=1.0.0 +flutter.versionCode=1 \ No newline at end of file diff --git a/authenticator/.DS_Store b/authenticator/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e809a73f58b756b6012372525dab5b113b9a5f8f GIT binary patch literal 6148 zcmeHK%}xR_5S}WS4Vu8wWA8>2;?2`a)+gWrM1CSBEK5Yi<6iaP*~G-N@8H!J@QwVY zE!eUP#)~0lhP2=Abf*3GgY8fvQmxy5lc+&N5gKEqhOWeToLj-RoQIQ@nIoe^n$nOi z=(-Rs4pBf9*fa(B-QA-j8qhsW$bWwa)E`|o+r2EEIMOfcV$&>1x}&U%n5cUEaPU0) zI9(s#|5f~C=yPG(w1a(SiqC*E-)O z$|J({=RYB)A+{k3pk}j0yB4Jv1w;W+V4(o-4;qazc9>flwK4N1wsY3 z?QMhW|JmyEf0!h9qJSvyuM|*~q@A?zNUpXP9*%3RM(d!laa?ZEq@Z)<*j#Wa-bXWr YG0hji*kNuF9+>umNv? zw_T|lkqk@AhsVZ=QB1 zc{K}o^*g*gD4IS)6T2W`?d zH7KMevg%WW*16f~lH5;rio~SzZ9lxNTkU>aE6rh+xC}44XI?84cwK={L>Dvww=?i; zWx16)MdQ-^mbc#%eudUdbDT9c%X5o)ihZvD&TKYk$)MDtfG8jej1}Ph!9!v6Eyf1* z)`3c20f1$6YeU=R2GFzUTZ|221g1`#ZV?3{hsynEye~-I4OJiP + +NS_ASSUME_NONNULL_BEGIN + +@interface GeneratedPluginRegistrant : NSObject ++ (void)registerWithRegistry:(NSObject*)registry; +@end + +NS_ASSUME_NONNULL_END +#endif /* GeneratedPluginRegistrant_h */ diff --git a/ios/Runner/GeneratedPluginRegistrant.m b/ios/Runner/GeneratedPluginRegistrant.m new file mode 100644 index 0000000..ba5cd28 --- /dev/null +++ b/ios/Runner/GeneratedPluginRegistrant.m @@ -0,0 +1,21 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#import "GeneratedPluginRegistrant.h" + +#if __has_include() +#import +#else +@import flutter_secure_storage; +#endif + +@implementation GeneratedPluginRegistrant + ++ (void)registerWithRegistry:(NSObject*)registry { + [FlutterSecureStoragePlugin registerWithRegistrar:[registry registrarForPlugin:@"FlutterSecureStoragePlugin"]]; +} + +@end diff --git a/lib/.DS_Store b/lib/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2bd4e6d4ae0e3d2409e0fa41898da7d652d8f2a0 GIT binary patch literal 6148 zcmeHKyGjE=6uqOHn8YS1h=sz4U~T?jl?XOgR#s|^Mj>H?&%$PFzrhx|wM(dwM z+q?3t{G6dY_zv*drb9aLSZA(hyW^7k_WWh;!g71(XeFHv2IY8t%sg@*IciZtb@b8n zx}a#+kIEh%MoJ&+7xl7({uv%WY0KY+5)JVCD$v-C;m@Ly|LrN$Acw2w>Lq{w44;3V z`OCBq?ju}@O{!57$Ln-Ldr*XX>b^EKzVn?L+3WIa*6WvCas@xB^Vg+$T@f8)729;; zU)B7CjLAMPCsq#EQgcsdwX&anai7=S*Frs?yZ8+5yi`~6Uv&7pays|*pd7ys4VrHo z_H4GosKqb`1%d)WflL8@K4=Wa*kNkXJUTF$R{&rHw=o=>XCY9t0~k9@Ey4p+wiIYf zm3zfdwj6%#@?wXnMO#kFFylOqS-Ce9W!T}@CY@AlG0Z`Mpn$Kyu>D%*{eNlj`@dfl zz6Aw>0{=<@6;)TOi&&D|TYDDAd#%RUz+mIN)S@ZD Counter()), + ], child: MyApp())); } class MyApp extends StatelessWidget { MyApp({super.key}); - final SecureStore store = SecureStore(const FlutterSecureStorage()); - @override Widget build(BuildContext context) { + final pageWidgets = [Home(store: store), AppCardForm(), TestPage()]; return MaterialApp( routes: { - '/': (context) => const HomePage(), + '/homepage': (context) => HomePage(), '/testpage': (context) => const TestPage(), '/userguide': (context) => const UserGuide(), '/appcardform': (context) => const AppCardForm() }, debugShowCheckedModeBanner: false, home: Scaffold( - body: Home(store: store), + body: pageWidgets[counter.pageIndex], appBar: AppBar( title: const Text("Authenticator"), centerTitle: true, ), + bottomNavigationBar: const BottomNav(), ), theme: ThemeData( primarySwatch: Colors.orange, @@ -40,3 +43,12 @@ class MyApp extends StatelessWidget { ); } } + +class Counter extends StatelessWidget { + const Counter({super.key}); + static int pageIndex = 0; + @override + Widget build(BuildContext context) { + return Container(); + } +} diff --git a/lib/reusable_widgets/AppCardForm.dart b/lib/reusable_widgets/AppCardForm.dart index f0b6d18..71d71f1 100644 --- a/lib/reusable_widgets/AppCardForm.dart +++ b/lib/reusable_widgets/AppCardForm.dart @@ -1,3 +1,4 @@ +// id, secret key, import 'package:flutter/material.dart'; class AppCardForm extends StatefulWidget { diff --git a/lib/view/home.dart b/lib/view/home.dart index 4e69d8f..9959b75 100644 --- a/lib/view/home.dart +++ b/lib/view/home.dart @@ -1,8 +1,8 @@ import 'package:flutter/material.dart'; - import '../model/account.dart'; import '../widget/account_tab.dart'; import '../api/secure_store.dart'; +import 'package:faker/faker.dart'; class Home extends StatelessWidget { final SecureStore store; @@ -12,29 +12,36 @@ class Home extends StatelessWidget { @override Widget build(BuildContext context) { return FutureBuilder>( - future: store.getAccounts(), - builder: (BuildContext context, AsyncSnapshot> snapshot) { - if (snapshot.hasData) { - List accounts = snapshot.data!; - - // Test data - accounts.add(Account(uuid: "abc123")); - accounts.add(Account(uuid: "jbc123")); - accounts.add(Account(uuid: "lbc123")); - accounts.add(Account(uuid: "bbc123")); - accounts.add(Account(uuid: "nbc123")); - accounts.add(Account(uuid: "tbc123")); - accounts.add(Account(uuid: "wbc123")); - - return ListView( - children: accounts.map((Account account) => AccountTab(account: account)).toList() - ); - } else if (snapshot.hasError) { - return const Text("Error!"); - } else { - return const Text("Waiting for data..."); + future: store.getAccounts(), + builder: (BuildContext context, AsyncSnapshot> snapshot) { + if (snapshot.hasData) { + List accounts = snapshot.data!; + // automate adding new account tabs + var i = 0; + while (i < 12) { + var faker = new Faker(); + accounts.add(Account(uuid: faker.company.name())); + i += 1; } + // Test data + // accounts.add(Account(uuid: "abc123")); + // accounts.add(Account(uuid: "jbc123")); + // accounts.add(Account(uuid: "lbc123")); + // accounts.add(Account(uuid: "bbc123")); + // accounts.add(Account(uuid: "nbc123")); + // accounts.add(Account(uuid: "tbc123")); + // accounts.add(Account(uuid: "wbc123")); + + return ListView( + children: accounts + .map((Account account) => AccountTab(account: account)) + .toList()); + } else if (snapshot.hasError) { + return const Text("Error!"); + } else { + return const Text("Waiting for data..."); } + }, ); } } diff --git a/lib/widget/account_tab.dart b/lib/widget/account_tab.dart index 97afc4c..0f8d5aa 100644 --- a/lib/widget/account_tab.dart +++ b/lib/widget/account_tab.dart @@ -1,6 +1,8 @@ import 'package:flutter/material.dart'; import '../model/account.dart'; +import 'package:authenticator/reusable_widgets/AppCardForm.dart'; +import 'package:faker/faker.dart'; class AccountTab extends StatefulWidget { final Account account; @@ -12,7 +14,8 @@ class AccountTab extends StatefulWidget { } class _AccountTabState extends State { - String code = "000000"; + //String code = "000000"; + var code = random.integer(99999, min: 5323).toString(); @override Widget build(BuildContext context) { @@ -25,11 +28,29 @@ class _AccountTabState extends State { child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ - Image(height: 100, width: 100, image: NetworkImage(widget.account.imageUrl)), + Image( + height: 100, + width: 100, + image: NetworkImage(widget.account.imageUrl)), Column( children: [ Text(widget.account.uuid), Text(code), + ElevatedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const AppCardForm(), + ), + ); + }, + child: const Icon( + Icons.settings, + size: 35.0, + color: Colors.white, + ), + ), ], ), ], diff --git a/lib/widget/bottom_nav.dart b/lib/widget/bottom_nav.dart new file mode 100644 index 0000000..2f6874a --- /dev/null +++ b/lib/widget/bottom_nav.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/src/widgets/container.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import '../reusable_widgets/AppCardForm.dart'; +import '../view/home.dart'; +import '../main.dart'; + +class BottomNav extends StatelessWidget { + static int pageIndex = 0; + GlobalKey globalKey = new GlobalKey(debugLabel: 'bottomNav'); + @override + Widget build(BuildContext context) { + return BottomNavigationBar( + key: globalKey, + items: [ + new BottomNavigationBarItem( + icon: Icon(Icons.home), + label: 'Home', + ), + new BottomNavigationBarItem( + icon: Icon(Icons.add_circle), + label: 'Create', + ), + BottomNavigationBarItem( + icon: Icon(Icons.settings), + label: 'Settings', + ), + ], +onTap: (int index) { + setState(() { + pageIndex = index; + switch (pageIndex) { + case 0: + print("navigate to screen 1"); + break; + case 1: + print("navigate to screen 2"); + break; + case 2: + print("navigate to screen 3"); + break; + } + ); + } +} diff --git a/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux b/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux new file mode 120000 index 0000000..0fbaa00 --- /dev/null +++ b/linux/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_linux @@ -0,0 +1 @@ +/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_linux-1.1.1/ \ No newline at end of file diff --git a/macos/.DS_Store b/macos/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..91e2557b8870d12e43375289b201b110f3a2233d GIT binary patch literal 6148 zcmeHK%}N6?5T4koMK8sZ$DBNg&^K7i*0b0Lu=WQLpG;)CbL<1y_+0Q=5n?9zTtB5=IBIUnauL>^2j}M z9>ruHv_%)xpop5ts!Khzj_po2%DwiSB_^5g$L(;G?~iLGIm{F1@uHY{txe%|4n93P zp)+th0MC}sORWmZSOHtwVXi&BdMqJXbJ&b}7;{IATu|NBAmCJKlG|4IRs536Arl-${xBFAT~ sMya8&v0rS_grIWAv1#y8ypCcFW11Vlz+r3=JuvwZFfvFb3jC@9pBm@3e*gdg literal 0 HcmV?d00001 diff --git a/macos/Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos b/macos/Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos new file mode 120000 index 0000000..64d5333 --- /dev/null +++ b/macos/Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos @@ -0,0 +1 @@ +/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/ \ No newline at end of file diff --git a/macos/Flutter/ephemeral/Flutter-Generated.xcconfig b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig new file mode 100644 index 0000000..589e023 --- /dev/null +++ b/macos/Flutter/ephemeral/Flutter-Generated.xcconfig @@ -0,0 +1,13 @@ +// This is a generated file; do not edit or check into version control. +FLUTTER_ROOT=/Users/suling/Documents/Development/flutter +FLUTTER_APPLICATION_PATH=/Users/suling/Documents/Development/Authenticator +COCOAPODS_PARALLEL_CODE_SIGN=true +FLUTTER_TARGET=/Users/suling/Documents/Development/Authenticator/lib/main.dart +FLUTTER_BUILD_DIR=build +FLUTTER_BUILD_NAME=1.0.0 +FLUTTER_BUILD_NUMBER=1 +DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ== +DART_OBFUSCATION=false +TRACK_WIDGET_CREATION=true +TREE_SHAKE_ICONS=false +PACKAGE_CONFIG=/Users/suling/Documents/Development/Authenticator/.dart_tool/package_config.json diff --git a/macos/Flutter/ephemeral/FlutterInputs.xcfilelist b/macos/Flutter/ephemeral/FlutterInputs.xcfilelist new file mode 100644 index 0000000..e69de29 diff --git a/macos/Flutter/ephemeral/FlutterMacOS.podspec b/macos/Flutter/ephemeral/FlutterMacOS.podspec new file mode 100644 index 0000000..0bac3e8 --- /dev/null +++ b/macos/Flutter/ephemeral/FlutterMacOS.podspec @@ -0,0 +1,18 @@ +# +# NOTE: This podspec is NOT to be published. It is only used as a local source! +# This is a generated file; do not edit or check into version control. +# + +Pod::Spec.new do |s| + s.name = 'FlutterMacOS' + s.version = '1.0.0' + s.summary = 'A UI toolkit for beautiful and fast apps.' + s.homepage = 'https://flutter.dev' + s.license = { :type => 'BSD' } + s.author = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' } + s.source = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s } + s.osx.deployment_target = '10.11' + # Framework linking is handled by Flutter tooling, not CocoaPods. + # Add a placeholder to satisfy `s.dependency 'FlutterMacOS'` plugin podspecs. + s.vendored_frameworks = 'path/to/nothing' +end diff --git a/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist b/macos/Flutter/ephemeral/FlutterOutputs.xcfilelist new file mode 100644 index 0000000..e69de29 diff --git a/macos/Flutter/ephemeral/flutter_export_environment.sh b/macos/Flutter/ephemeral/flutter_export_environment.sh new file mode 100755 index 0000000..d3aba02 --- /dev/null +++ b/macos/Flutter/ephemeral/flutter_export_environment.sh @@ -0,0 +1,14 @@ +#!/bin/sh +# This is a generated file; do not edit or check into version control. +export "FLUTTER_ROOT=/Users/suling/Documents/Development/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/suling/Documents/Development/Authenticator" +export "COCOAPODS_PARALLEL_CODE_SIGN=true" +export "FLUTTER_TARGET=/Users/suling/Documents/Development/Authenticator/lib/main.dart" +export "FLUTTER_BUILD_DIR=build" +export "FLUTTER_BUILD_NAME=1.0.0" +export "FLUTTER_BUILD_NUMBER=1" +export "DART_DEFINES=RkxVVFRFUl9XRUJfQVVUT19ERVRFQ1Q9dHJ1ZQ==" +export "DART_OBFUSCATION=false" +export "TRACK_WIDGET_CREATION=true" +export "TREE_SHAKE_ICONS=false" +export "PACKAGE_CONFIG=/Users/suling/Documents/Development/Authenticator/.dart_tool/package_config.json" diff --git a/macos/Podfile.lock b/macos/Podfile.lock new file mode 100644 index 0000000..0318e93 --- /dev/null +++ b/macos/Podfile.lock @@ -0,0 +1,22 @@ +PODS: + - flutter_secure_storage_macos (3.3.1): + - FlutterMacOS + - FlutterMacOS (1.0.0) + +DEPENDENCIES: + - flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + +EXTERNAL SOURCES: + flutter_secure_storage_macos: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos + FlutterMacOS: + :path: Flutter/ephemeral + +SPEC CHECKSUMS: + flutter_secure_storage_macos: 6ceee8fbc7f484553ad17f79361b556259df89aa + FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811 + +PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c + +COCOAPODS: 1.11.3 diff --git a/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json b/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json new file mode 100644 index 0000000..0ef94a8 --- /dev/null +++ b/macos/Pods/Local Podspecs/FlutterMacOS.podspec.json @@ -0,0 +1,20 @@ +{ + "name": "FlutterMacOS", + "version": "1.0.0", + "summary": "A UI toolkit for beautiful and fast apps.", + "homepage": "https://flutter.dev", + "license": { + "type": "BSD" + }, + "authors": { + "Flutter Dev Team": "flutter-dev@googlegroups.com" + }, + "source": { + "git": "https://github.com/flutter/engine", + "tag": "1.0.0" + }, + "platforms": { + "osx": "10.11" + }, + "vendored_frameworks": "path/to/nothing" +} diff --git a/macos/Pods/Local Podspecs/flutter_secure_storage_macos.podspec.json b/macos/Pods/Local Podspecs/flutter_secure_storage_macos.podspec.json new file mode 100644 index 0000000..2b619d5 --- /dev/null +++ b/macos/Pods/Local Podspecs/flutter_secure_storage_macos.podspec.json @@ -0,0 +1,30 @@ +{ + "name": "flutter_secure_storage_macos", + "version": "3.3.1", + "summary": "Flutter Secure Storage", + "description": "Flutter Secure Storage Plugin for MacOs", + "homepage": "https://github.com/mogol/flutter_secure_storage", + "license": { + "file": "../LICENSE" + }, + "authors": { + "German Saprykin": "saprykin.h@gmail.com" + }, + "source": { + "path": "." + }, + "source_files": "Classes/**/*", + "dependencies": { + "FlutterMacOS": [ + + ] + }, + "platforms": { + "osx": "10.11" + }, + "pod_target_xcconfig": { + "DEFINES_MODULE": "YES" + }, + "swift_versions": "5.0", + "swift_version": "5.0" +} diff --git a/macos/Pods/Manifest.lock b/macos/Pods/Manifest.lock new file mode 100644 index 0000000..0318e93 --- /dev/null +++ b/macos/Pods/Manifest.lock @@ -0,0 +1,22 @@ +PODS: + - flutter_secure_storage_macos (3.3.1): + - FlutterMacOS + - FlutterMacOS (1.0.0) + +DEPENDENCIES: + - flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`) + - FlutterMacOS (from `Flutter/ephemeral`) + +EXTERNAL SOURCES: + flutter_secure_storage_macos: + :path: Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos + FlutterMacOS: + :path: Flutter/ephemeral + +SPEC CHECKSUMS: + flutter_secure_storage_macos: 6ceee8fbc7f484553ad17f79361b556259df89aa + FlutterMacOS: ae6af50a8ea7d6103d888583d46bd8328a7e9811 + +PODFILE CHECKSUM: 6eac6b3292e5142cfc23bdeb71848a40ec51c14c + +COCOAPODS: 1.11.3 diff --git a/macos/Pods/Pods.xcodeproj/project.pbxproj b/macos/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..075cf99 --- /dev/null +++ b/macos/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1081 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 624022EE1C2EAB1C3CC38699E1368C5F /* Build configuration list for PBXAggregateTarget "FlutterMacOS" */; + buildPhases = ( + ); + dependencies = ( + ); + name = FlutterMacOS; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 0A13A1B3ECD64D378DA01E4A10C756BC /* flutter_secure_storage_macos-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 46480647D3581881C42F90DCE301C5DE /* flutter_secure_storage_macos-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 18E339715BE00BD51F2263D20D121981 /* Pods-Runner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 96BF45FBE2BC9AD7B2D7E56D01B5EE46 /* Pods-Runner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 438FC811799C7DEE118A86F4555E5C38 /* Pods-Runner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B3C932BD54DBB963102A89E0F9E3948 /* Pods-Runner-dummy.m */; }; + 5F8CC55CA6BD62D69BA9A3D64B9A5104 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */; }; + 6A12D3217EA142A2978DCBB2F084F8F4 /* FlutterSecureStorageMacosPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 65A811A4884EBE37E4C868C99D446AE2 /* FlutterSecureStorageMacosPlugin.h */; settings = {ATTRIBUTES = (Public, ); }; }; + A27E461352F18140606E9E08A1B20FE8 /* flutter_secure_storage_macos-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F0898680026231103EFF9DD973339B0 /* flutter_secure_storage_macos-dummy.m */; }; + A50C39F8C9E9A2768E73929165B69563 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */; }; + E3961CB7BC7734C4A931C4BB12AA0907 /* FlutterSecureStorageMacosPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B6A4E330273C5042F0C759B7D62424 /* FlutterSecureStorageMacosPlugin.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 742EB1BA2D3DEFBE71BE4B8D9D03C320 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EF59DE143C0B7645A532B75D0696C617; + remoteInfo = flutter_secure_storage_macos; + }; + A1C21993C2C11491BD254625D8BD49FB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CA272E8348BAB4CE0B0C804FB7B818C4; + remoteInfo = FlutterMacOS; + }; + C95ACF21DC799BCC49ABB19BBDB2B573 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CA272E8348BAB4CE0B0C804FB7B818C4; + remoteInfo = FlutterMacOS; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1F0898680026231103EFF9DD973339B0 /* flutter_secure_storage_macos-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "flutter_secure_storage_macos-dummy.m"; sourceTree = ""; }; + 279E060F60CC884588D1ABE7A36FF365 /* flutter_secure_storage_macos.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = flutter_secure_storage_macos.podspec; path = "../../../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/macos/flutter_secure_storage_macos.podspec"; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 317C26B9A7CEDD34ADE8F37FAAB7AC20 /* Pods-Runner-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Runner-frameworks.sh"; sourceTree = ""; }; + 3B446571F638645A33B66F9FB04DA9F2 /* flutter_secure_storage_macos-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "flutter_secure_storage_macos-Info.plist"; sourceTree = ""; }; + 46480647D3581881C42F90DCE301C5DE /* flutter_secure_storage_macos-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "flutter_secure_storage_macos-umbrella.h"; sourceTree = ""; }; + 51825CD8F0558EFA53D9510F0E5BFA16 /* Pods-Runner-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-Info.plist"; sourceTree = ""; }; + 639AE0080496370B595CDB24F4EEACA9 /* flutter_secure_storage_macos-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "flutter_secure_storage_macos-prefix.pch"; sourceTree = ""; }; + 658027E789EDF1CCE63B99A473D9E5F9 /* FlutterMacOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterMacOS.release.xcconfig; sourceTree = ""; }; + 65A811A4884EBE37E4C868C99D446AE2 /* FlutterSecureStorageMacosPlugin.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FlutterSecureStorageMacosPlugin.h; path = "../../../../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/macos/Classes/FlutterSecureStorageMacosPlugin.h"; sourceTree = ""; }; + 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-Runner"; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B3C932BD54DBB963102A89E0F9E3948 /* Pods-Runner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Runner-dummy.m"; sourceTree = ""; }; + 96BF45FBE2BC9AD7B2D7E56D01B5EE46 /* Pods-Runner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Runner-umbrella.h"; sourceTree = ""; }; + 9A7D01EB572ECA98F95F88B5F286D1E5 /* flutter_secure_storage_macos.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = flutter_secure_storage_macos.modulemap; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9F79F8269DC34AC56BB3D1D9652C0D86 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.profile.xcconfig"; sourceTree = ""; }; + A211C3586A699E2C943F864535A05673 /* FlutterMacOS.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = FlutterMacOS.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A5DEDDCD541825388ACA7A6AF69E4553 /* flutter_secure_storage_macos */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = flutter_secure_storage_macos; path = flutter_secure_storage_macos.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A84E10840963AB3AA399C3005147A632 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = "../../../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/LICENSE"; sourceTree = ""; }; + B68BE78387DDA507E77D310A1DE99505 /* flutter_secure_storage_macos.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = flutter_secure_storage_macos.debug.xcconfig; sourceTree = ""; }; + C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + C6EA98402A94995D022D330B64B5203D /* Pods-Runner-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Runner-acknowledgements.markdown"; sourceTree = ""; }; + CDAECCF4B5E08124ED410F09FD5A5DF9 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.debug.xcconfig"; sourceTree = ""; }; + D2FA70CA298C392CB8332ADEEDD1CE85 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Runner.release.xcconfig"; sourceTree = ""; }; + D9F2B4CB813B4BDC4D164C6E0868930A /* Pods-Runner-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Runner-acknowledgements.plist"; sourceTree = ""; }; + DA6E47FD01283B16C2A3FB3E5EAC33B7 /* flutter_secure_storage_macos.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = flutter_secure_storage_macos.release.xcconfig; sourceTree = ""; }; + DCCBBEE68CC172AEBABB1A14AE2FD2FD /* FlutterMacOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FlutterMacOS.debug.xcconfig; sourceTree = ""; }; + E4B6A4E330273C5042F0C759B7D62424 /* FlutterSecureStorageMacosPlugin.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FlutterSecureStorageMacosPlugin.m; path = "../../../../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/macos/Classes/FlutterSecureStorageMacosPlugin.m"; sourceTree = ""; }; + F49C32B3B8CF59AB437BFD7314674868 /* Pods-Runner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-Runner.modulemap"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + BD99619EA0BFBADBC8144ABAD4236F94 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5F8CC55CA6BD62D69BA9A3D64B9A5104 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EF05D6EFCE64834BF32184F9C72869CC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A50C39F8C9E9A2768E73929165B69563 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1324008FC88E897F812CBF219CC3BEB5 /* .. */ = { + isa = PBXGroup; + children = ( + 84FA7C42350E1B9DE1C405782F75B5E2 /* .. */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + 14383D997F4220BCC84E80CC0F4A432C /* Support Files */ = { + isa = PBXGroup; + children = ( + DCCBBEE68CC172AEBABB1A14AE2FD2FD /* FlutterMacOS.debug.xcconfig */, + 658027E789EDF1CCE63B99A473D9E5F9 /* FlutterMacOS.release.xcconfig */, + ); + name = "Support Files"; + path = "../../Pods/Target Support Files/FlutterMacOS"; + sourceTree = ""; + }; + 1CAA88B2AFEBDD18D7CF494074A8CBE2 /* Products */ = { + isa = PBXGroup; + children = ( + A5DEDDCD541825388ACA7A6AF69E4553 /* flutter_secure_storage_macos */, + 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */, + ); + name = Products; + sourceTree = ""; + }; + 1F1EB8DFECBC4A1D3F3AC2109DBE9084 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9A7D01EB572ECA98F95F88B5F286D1E5 /* flutter_secure_storage_macos.modulemap */, + 1F0898680026231103EFF9DD973339B0 /* flutter_secure_storage_macos-dummy.m */, + 3B446571F638645A33B66F9FB04DA9F2 /* flutter_secure_storage_macos-Info.plist */, + 639AE0080496370B595CDB24F4EEACA9 /* flutter_secure_storage_macos-prefix.pch */, + 46480647D3581881C42F90DCE301C5DE /* flutter_secure_storage_macos-umbrella.h */, + B68BE78387DDA507E77D310A1DE99505 /* flutter_secure_storage_macos.debug.xcconfig */, + DA6E47FD01283B16C2A3FB3E5EAC33B7 /* flutter_secure_storage_macos.release.xcconfig */, + ); + name = "Support Files"; + path = "../../../../../../Pods/Target Support Files/flutter_secure_storage_macos"; + sourceTree = ""; + }; + 27111E2BC7212775655FE42A5B9F9A1C /* flutter_secure_storage_macos */ = { + isa = PBXGroup; + children = ( + 3C57C1A6FE7AD24309B91C6738C3EEF3 /* .. */, + ACCAB34B41C6B13DBD2B8C57858FBECC /* Pod */, + 1F1EB8DFECBC4A1D3F3AC2109DBE9084 /* Support Files */, + ); + name = flutter_secure_storage_macos; + path = ../Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos; + sourceTree = ""; + }; + 2B237AD8AC3C8595B447A03D2FD808D9 /* plugins */ = { + isa = PBXGroup; + children = ( + 80579E2F4DECBB365F8888B6FBF2F990 /* flutter_secure_storage_macos */, + ); + name = plugins; + path = plugins; + sourceTree = ""; + }; + 2C7060382FBC1184434577D528B83CAD /* Development Pods */ = { + isa = PBXGroup; + children = ( + 27111E2BC7212775655FE42A5B9F9A1C /* flutter_secure_storage_macos */, + 70D2F89D1781FABE3CA26C6EBF453320 /* FlutterMacOS */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 321835CD60E3F4DD4288DD16E0CE5F01 /* Classes */ = { + isa = PBXGroup; + children = ( + 65A811A4884EBE37E4C868C99D446AE2 /* FlutterSecureStorageMacosPlugin.h */, + E4B6A4E330273C5042F0C759B7D62424 /* FlutterSecureStorageMacosPlugin.m */, + ); + name = Classes; + path = Classes; + sourceTree = ""; + }; + 377BEDB335587580E17D3B2D1DD0B24F /* .. */ = { + isa = PBXGroup; + children = ( + 37AA3A26E750E213E38650A6E84D452B /* Authenticator */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + 37AA3A26E750E213E38650A6E84D452B /* Authenticator */ = { + isa = PBXGroup; + children = ( + 5D0D71047B9AC9ECE480F749B13C929F /* macos */, + ); + name = Authenticator; + path = Authenticator; + sourceTree = ""; + }; + 3C57C1A6FE7AD24309B91C6738C3EEF3 /* .. */ = { + isa = PBXGroup; + children = ( + 54E82C6672725BB89A0CD65E0ED4CF70 /* .. */, + ); + name = ..; + path = "../../../../../../../../flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/macos"; + sourceTree = ""; + }; + 4C20AE0B11E205703798B01AD5D77FDF /* .. */ = { + isa = PBXGroup; + children = ( + C2CE1CB4B2393B36AAC2D03B862AF124 /* .. */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + 54E82C6672725BB89A0CD65E0ED4CF70 /* .. */ = { + isa = PBXGroup; + children = ( + 4C20AE0B11E205703798B01AD5D77FDF /* .. */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + 5D0D71047B9AC9ECE480F749B13C929F /* macos */ = { + isa = PBXGroup; + children = ( + 7CF17BDF769D3C2B7CF7273432FA73BF /* Flutter */, + ); + name = macos; + path = macos; + sourceTree = ""; + }; + 70D2F89D1781FABE3CA26C6EBF453320 /* FlutterMacOS */ = { + isa = PBXGroup; + children = ( + 8ADCAB3D022B0C0764606E790294F554 /* Pod */, + 14383D997F4220BCC84E80CC0F4A432C /* Support Files */, + ); + name = FlutterMacOS; + path = ../Flutter/ephemeral; + sourceTree = ""; + }; + 791C6E4B424AF06279F8918FA67B8ED6 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 7B0D67477903E1EB8D6A9F9AF51BC5CC /* Pods-Runner */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 7B0D67477903E1EB8D6A9F9AF51BC5CC /* Pods-Runner */ = { + isa = PBXGroup; + children = ( + F49C32B3B8CF59AB437BFD7314674868 /* Pods-Runner.modulemap */, + C6EA98402A94995D022D330B64B5203D /* Pods-Runner-acknowledgements.markdown */, + D9F2B4CB813B4BDC4D164C6E0868930A /* Pods-Runner-acknowledgements.plist */, + 7B3C932BD54DBB963102A89E0F9E3948 /* Pods-Runner-dummy.m */, + 317C26B9A7CEDD34ADE8F37FAAB7AC20 /* Pods-Runner-frameworks.sh */, + 51825CD8F0558EFA53D9510F0E5BFA16 /* Pods-Runner-Info.plist */, + 96BF45FBE2BC9AD7B2D7E56D01B5EE46 /* Pods-Runner-umbrella.h */, + CDAECCF4B5E08124ED410F09FD5A5DF9 /* Pods-Runner.debug.xcconfig */, + 9F79F8269DC34AC56BB3D1D9652C0D86 /* Pods-Runner.profile.xcconfig */, + D2FA70CA298C392CB8332ADEEDD1CE85 /* Pods-Runner.release.xcconfig */, + ); + name = "Pods-Runner"; + path = "Target Support Files/Pods-Runner"; + sourceTree = ""; + }; + 7CF17BDF769D3C2B7CF7273432FA73BF /* Flutter */ = { + isa = PBXGroup; + children = ( + E5C2166FFDB408DA6BF3C3838D3611C3 /* ephemeral */, + ); + name = Flutter; + path = Flutter; + sourceTree = ""; + }; + 80579E2F4DECBB365F8888B6FBF2F990 /* flutter_secure_storage_macos */ = { + isa = PBXGroup; + children = ( + DBBC52FA415FF0A22D3D932C8E27745F /* macos */, + ); + name = flutter_secure_storage_macos; + path = flutter_secure_storage_macos; + sourceTree = ""; + }; + 84FA7C42350E1B9DE1C405782F75B5E2 /* .. */ = { + isa = PBXGroup; + children = ( + 377BEDB335587580E17D3B2D1DD0B24F /* .. */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + 8ADCAB3D022B0C0764606E790294F554 /* Pod */ = { + isa = PBXGroup; + children = ( + A211C3586A699E2C943F864535A05673 /* FlutterMacOS.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + ACCAB34B41C6B13DBD2B8C57858FBECC /* Pod */ = { + isa = PBXGroup; + children = ( + 279E060F60CC884588D1ABE7A36FF365 /* flutter_secure_storage_macos.podspec */, + A84E10840963AB3AA399C3005147A632 /* LICENSE */, + ); + name = Pod; + sourceTree = ""; + }; + C2CE1CB4B2393B36AAC2D03B862AF124 /* .. */ = { + isa = PBXGroup; + children = ( + 1324008FC88E897F812CBF219CC3BEB5 /* .. */, + ); + name = ..; + path = ..; + sourceTree = ""; + }; + C9F92C51A82ADF0B4CDBA44BD007F6C7 /* .symlinks */ = { + isa = PBXGroup; + children = ( + 2B237AD8AC3C8595B447A03D2FD808D9 /* plugins */, + ); + name = .symlinks; + path = .symlinks; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 2C7060382FBC1184434577D528B83CAD /* Development Pods */, + E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */, + 1CAA88B2AFEBDD18D7CF494074A8CBE2 /* Products */, + 791C6E4B424AF06279F8918FA67B8ED6 /* Targets Support Files */, + ); + sourceTree = ""; + }; + DBBC52FA415FF0A22D3D932C8E27745F /* macos */ = { + isa = PBXGroup; + children = ( + 321835CD60E3F4DD4288DD16E0CE5F01 /* Classes */, + ); + name = macos; + path = macos; + sourceTree = ""; + }; + E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E2A8756CA1FF5258A0344D53C5C60EC1 /* OS X */, + ); + name = Frameworks; + sourceTree = ""; + }; + E2A8756CA1FF5258A0344D53C5C60EC1 /* OS X */ = { + isa = PBXGroup; + children = ( + C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + E5C2166FFDB408DA6BF3C3838D3611C3 /* ephemeral */ = { + isa = PBXGroup; + children = ( + C9F92C51A82ADF0B4CDBA44BD007F6C7 /* .symlinks */, + ); + name = ephemeral; + path = ephemeral; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 2A48028D8359A3BECC5AC575EA892FA3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A13A1B3ECD64D378DA01E4A10C756BC /* flutter_secure_storage_macos-umbrella.h in Headers */, + 6A12D3217EA142A2978DCBB2F084F8F4 /* FlutterSecureStorageMacosPlugin.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C13BE6E056DFED795FA317043DAE48AF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 18E339715BE00BD51F2263D20D121981 /* Pods-Runner-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 8B74B458B450D74B75744B87BD747314 /* Pods-Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 81CD8692FC8E5F1E07B4778EF74DD3EF /* Build configuration list for PBXNativeTarget "Pods-Runner" */; + buildPhases = ( + C13BE6E056DFED795FA317043DAE48AF /* Headers */, + EE974B1B8F0A9BF3E0BCCCE7EE56139D /* Sources */, + EF05D6EFCE64834BF32184F9C72869CC /* Frameworks */, + 139921F17FD55A85E9BE5B1A55737CE3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3511429A4495B2A60494B57666132634 /* PBXTargetDependency */, + 52E25307944D367752E91A06081A2E28 /* PBXTargetDependency */, + ); + name = "Pods-Runner"; + productName = Pods_Runner; + productReference = 669E8F25E1897672BDB80B7EB784DA24 /* Pods-Runner */; + productType = "com.apple.product-type.framework"; + }; + EF59DE143C0B7645A532B75D0696C617 /* flutter_secure_storage_macos */ = { + isa = PBXNativeTarget; + buildConfigurationList = B36CCE80BD23EA64067C2C4C5D39C058 /* Build configuration list for PBXNativeTarget "flutter_secure_storage_macos" */; + buildPhases = ( + 2A48028D8359A3BECC5AC575EA892FA3 /* Headers */, + 5573D9ECF8B9B475C8211F177B86DF1C /* Sources */, + BD99619EA0BFBADBC8144ABAD4236F94 /* Frameworks */, + 21A862BE1571533DDA608DDA1FEAE14D /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + F651BAB179F8FF44E8D8134C1B5E8DFF /* PBXTargetDependency */, + ); + name = flutter_secure_storage_macos; + productName = flutter_secure_storage_macos; + productReference = A5DEDDCD541825388ACA7A6AF69E4553 /* flutter_secure_storage_macos */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1300; + LastUpgradeCheck = 1300; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 10.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + Base, + en, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 1CAA88B2AFEBDD18D7CF494074A8CBE2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + EF59DE143C0B7645A532B75D0696C617 /* flutter_secure_storage_macos */, + CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */, + 8B74B458B450D74B75744B87BD747314 /* Pods-Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 139921F17FD55A85E9BE5B1A55737CE3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 21A862BE1571533DDA608DDA1FEAE14D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5573D9ECF8B9B475C8211F177B86DF1C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A27E461352F18140606E9E08A1B20FE8 /* flutter_secure_storage_macos-dummy.m in Sources */, + E3961CB7BC7734C4A931C4BB12AA0907 /* FlutterSecureStorageMacosPlugin.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EE974B1B8F0A9BF3E0BCCCE7EE56139D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 438FC811799C7DEE118A86F4555E5C38 /* Pods-Runner-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3511429A4495B2A60494B57666132634 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FlutterMacOS; + target = CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */; + targetProxy = C95ACF21DC799BCC49ABB19BBDB2B573 /* PBXContainerItemProxy */; + }; + 52E25307944D367752E91A06081A2E28 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = flutter_secure_storage_macos; + target = EF59DE143C0B7645A532B75D0696C617 /* flutter_secure_storage_macos */; + targetProxy = 742EB1BA2D3DEFBE71BE4B8D9D03C320 /* PBXContainerItemProxy */; + }; + F651BAB179F8FF44E8D8134C1B5E8DFF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = FlutterMacOS; + target = CA272E8348BAB4CE0B0C804FB7B818C4 /* FlutterMacOS */; + targetProxy = A1C21993C2C11491BD254625D8BD49FB /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 12DD09D8B67EE22CC3C4701E38760CDC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DA6E47FD01283B16C2A3FB3E5EAC33B7 /* flutter_secure_storage_macos.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64-release\"", + "$(inherited)", + ); + GCC_PREFIX_HEADER = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap"; + PRODUCT_MODULE_NAME = flutter_secure_storage_macos; + PRODUCT_NAME = flutter_secure_storage_macos; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 29C906FE5FB7ACDC680C6CC289EFF96E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + 3090F4A125CF2639AF0D3EAE187F5C23 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 658027E789EDF1CCE63B99A473D9E5F9 /* FlutterMacOS.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + SDKROOT = macosx; + }; + name = Release; + }; + 4763886C351BE419D0F3E98AD25CF6DB /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DA6E47FD01283B16C2A3FB3E5EAC33B7 /* flutter_secure_storage_macos.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64-release\"", + "$(inherited)", + ); + GCC_PREFIX_HEADER = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap"; + PRODUCT_MODULE_NAME = flutter_secure_storage_macos; + PRODUCT_NAME = flutter_secure_storage_macos; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Profile; + }; + 4AABE67B16E0D36E94CC728786F6F488 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DCCBBEE68CC172AEBABB1A14AE2FD2FD /* FlutterMacOS.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + SDKROOT = macosx; + }; + name = Debug; + }; + 59909D53159D0E69D82D4AF65B5E5706 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + 5FAF32273FAFE0B6A43A7FA723EF3834 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9F79F8269DC34AC56BB3D1D9652C0D86 /* Pods-Runner.profile.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64-release\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Profile; + }; + 62BA325489888A4C9E99CEBC5F25641C /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_PROFILE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Profile; + }; + AD221369C5BD3BEA047A3355327146A4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B68BE78387DDA507E77D310A1DE99505 /* flutter_secure_storage_macos.debug.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64\"", + "$(inherited)", + ); + GCC_PREFIX_HEADER = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap"; + PRODUCT_MODULE_NAME = flutter_secure_storage_macos; + PRODUCT_NAME = flutter_secure_storage_macos; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + B8DEF8145783F51A780846D45A8E53E3 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 658027E789EDF1CCE63B99A473D9E5F9 /* FlutterMacOS.release.xcconfig */; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CLANG_ENABLE_OBJC_WEAK = NO; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + SDKROOT = macosx; + }; + name = Profile; + }; + DBF5C7BF8074122D033AD613BCA7A8A1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CDAECCF4B5E08124ED410F09FD5A5DF9 /* Pods-Runner.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + F381E62D1050346EA4517722255459C7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D2FA70CA298C392CB8332ADEEDD1CE85 /* Pods-Runner.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_ENABLE_OBJC_WEAK = NO; + CODE_SIGNING_ALLOWED = NO; + CODE_SIGNING_REQUIRED = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "\"/Users/suling/Documents/Development/flutter/bin/cache/artifacts/engine/darwin-x64-release\"", + "$(inherited)", + ); + INFOPLIST_FILE = "Target Support Files/Pods-Runner/Pods-Runner-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MODULEMAP_FILE = "Target Support Files/Pods-Runner/Pods-Runner.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 29C906FE5FB7ACDC680C6CC289EFF96E /* Debug */, + 62BA325489888A4C9E99CEBC5F25641C /* Profile */, + 59909D53159D0E69D82D4AF65B5E5706 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 624022EE1C2EAB1C3CC38699E1368C5F /* Build configuration list for PBXAggregateTarget "FlutterMacOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4AABE67B16E0D36E94CC728786F6F488 /* Debug */, + B8DEF8145783F51A780846D45A8E53E3 /* Profile */, + 3090F4A125CF2639AF0D3EAE187F5C23 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 81CD8692FC8E5F1E07B4778EF74DD3EF /* Build configuration list for PBXNativeTarget "Pods-Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DBF5C7BF8074122D033AD613BCA7A8A1 /* Debug */, + 5FAF32273FAFE0B6A43A7FA723EF3834 /* Profile */, + F381E62D1050346EA4517722255459C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B36CCE80BD23EA64067C2C4C5D39C058 /* Build configuration list for PBXNativeTarget "flutter_secure_storage_macos" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + AD221369C5BD3BEA047A3355327146A4 /* Debug */, + 4763886C351BE419D0F3E98AD25CF6DB /* Profile */, + 12DD09D8B67EE22CC3C4701E38760CDC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/FlutterMacOS.xcscheme b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/FlutterMacOS.xcscheme new file mode 100644 index 0000000..16b932f --- /dev/null +++ b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/FlutterMacOS.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/Pods-Runner.xcscheme b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/Pods-Runner.xcscheme new file mode 100644 index 0000000..f125f25 --- /dev/null +++ b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/Pods-Runner.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/flutter_secure_storage_macos.xcscheme b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/flutter_secure_storage_macos.xcscheme new file mode 100644 index 0000000..2059915 --- /dev/null +++ b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/flutter_secure_storage_macos.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/xcschememanagement.plist b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..fce3f86 --- /dev/null +++ b/macos/Pods/Pods.xcodeproj/xcuserdata/suling.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,26 @@ + + + + + SchemeUserState + + FlutterMacOS.xcscheme + + isShown + + + Pods-Runner.xcscheme + + isShown + + + flutter_secure_storage_macos.xcscheme + + isShown + + + + SuppressBuildableAutocreation + + + diff --git a/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig b/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig new file mode 100644 index 0000000..cf765c3 --- /dev/null +++ b/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig b/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig new file mode 100644 index 0000000..cf765c3 --- /dev/null +++ b/macos/Pods/Target Support Files/FlutterMacOS/FlutterMacOS.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/FlutterMacOS +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown new file mode 100644 index 0000000..fdb1f51 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.markdown @@ -0,0 +1,35 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## flutter_secure_storage_macos + +BSD 3-Clause License + +Copyright 2017 German Saprykin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +Generated by CocoaPods - https://cocoapods.org diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist new file mode 100644 index 0000000..198a8c2 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-acknowledgements.plist @@ -0,0 +1,65 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + BSD 3-Clause License + +Copyright 2017 German Saprykin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + Title + flutter_secure_storage_macos + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m new file mode 100644 index 0000000..0b73bc1 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Runner : NSObject +@end +@implementation PodsDummy_Pods_Runner +@end diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist new file mode 100644 index 0000000..04e8135 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh +${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist new file mode 100644 index 0000000..7006137 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Debug-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist new file mode 100644 index 0000000..04e8135 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh +${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist new file mode 100644 index 0000000..7006137 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Profile-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist new file mode 100644 index 0000000..04e8135 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist @@ -0,0 +1,2 @@ +${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh +${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist new file mode 100644 index 0000000..7006137 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist @@ -0,0 +1 @@ +${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage_macos.framework \ No newline at end of file diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh new file mode 100755 index 0000000..479e36c --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh @@ -0,0 +1,189 @@ +#!/bin/sh +set -e +set -u +set -o pipefail + +function on_error { + echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" +} +trap 'on_error $LINENO' ERR + +if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then + # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy + # frameworks to, so exit 0 (signalling the script phase was successful). + exit 0 +fi + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" + + +# This protects against multiple targets copying the same framework dependency at the same time. The solution +# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html +RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") + +# Copies and strips a vendored framework +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + + # Use filter instead of exclude so missing patterns don't throw errors. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + elif [ -L "${binary}" ]; then + echo "Destination binary is symlinked..." + dirname="$(dirname "${binary}")" + binary="${dirname}/$(readlink "${binary}")" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} +# Copies and strips a vendored dSYM +install_dsym() { + local source="$1" + warn_missing_arch=${2:-true} + if [ -r "$source" ]; then + # Copy the dSYM into the targets temp dir. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" + + local basename + basename="$(basename -s .dSYM "$source")" + binary_name="$(ls "$source/Contents/Resources/DWARF")" + binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" + + # Strip invalid architectures from the dSYM. + if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then + strip_invalid_archs "$binary" "$warn_missing_arch" + fi + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then + # Move the stripped file into its final destination. + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" + else + # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. + mkdir -p "${DWARF_DSYM_FOLDER_PATH}" + touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" + fi + fi +} + +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + warn_missing_arch=${2:-true} + # Get architectures for current target binary + binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" + # Intersect them with the architectures we are building for + intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" + # If there are no archs supported by this binary then warn the user + if [[ -z "$intersected_archs" ]]; then + if [[ "$warn_missing_arch" == "true" ]]; then + echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." + fi + STRIP_BINARY_RETVAL=1 + return + fi + stripped="" + for arch in $binary_archs; do + if ! [[ "${ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi + STRIP_BINARY_RETVAL=0 +} + +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" + + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework" +fi +if [[ "$CONFIGURATION" == "Profile" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "${BUILT_PRODUCTS_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework" +fi +if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + wait +fi diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h new file mode 100644 index 0000000..80f15ff --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_RunnerVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_RunnerVersionString[]; + diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig new file mode 100644 index 0000000..b47b858 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "flutter_secure_storage_macos" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap new file mode 100644 index 0000000..d2cf6f6 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Runner { + umbrella header "Pods-Runner-umbrella.h" + + export * + module * { export * } +} diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig new file mode 100644 index 0000000..b47b858 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "flutter_secure_storage_macos" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig new file mode 100644 index 0000000..b47b858 --- /dev/null +++ b/macos/Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig @@ -0,0 +1,12 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos/flutter_secure_storage_macos.framework/Headers" +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +OTHER_LDFLAGS = $(inherited) -framework "flutter_secure_storage_macos" +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist new file mode 100644 index 0000000..d4b3c29 --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.3.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-dummy.m b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-dummy.m new file mode 100644 index 0000000..7e27d23 --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_flutter_secure_storage_macos : NSObject +@end +@implementation PodsDummy_flutter_secure_storage_macos +@end diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch new file mode 100644 index 0000000..082f8af --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-prefix.pch @@ -0,0 +1,12 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-umbrella.h b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-umbrella.h new file mode 100644 index 0000000..814827c --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos-umbrella.h @@ -0,0 +1,17 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + +#import "FlutterSecureStorageMacosPlugin.h" + +FOUNDATION_EXPORT double flutter_secure_storage_macosVersionNumber; +FOUNDATION_EXPORT const unsigned char flutter_secure_storage_macosVersionString[]; + diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.debug.xcconfig b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.debug.xcconfig new file mode 100644 index 0000000..d971c14 --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.debug.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap new file mode 100644 index 0000000..4fd72ce --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.modulemap @@ -0,0 +1,6 @@ +framework module flutter_secure_storage_macos { + umbrella header "flutter_secure_storage_macos-umbrella.h" + + export * + module * { export * } +} diff --git a/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.release.xcconfig b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.release.xcconfig new file mode 100644 index 0000000..d971c14 --- /dev/null +++ b/macos/Pods/Target Support Files/flutter_secure_storage_macos/flutter_secure_storage_macos.release.xcconfig @@ -0,0 +1,13 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CODE_SIGN_IDENTITY = +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/flutter_secure_storage_macos +DEFINES_MODULE = YES +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj index 8aa80b9..77e780c 100644 --- a/macos/Runner.xcodeproj/project.pbxproj +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ /* End PBXAggregateTarget section */ /* Begin PBXBuildFile section */ + 1C321801B11D6AA47E7A67B9 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5B27C708B6761B2207E4752F /* Pods_Runner.framework */; }; 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; @@ -54,7 +55,7 @@ /* Begin PBXFileReference section */ 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; - 33CC10ED2044A3C60003C045 /* authenticator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "authenticator.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10ED2044A3C60003C045 /* authenticator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = authenticator.app; sourceTree = BUILT_PRODUCTS_DIR; }; 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; @@ -66,8 +67,12 @@ 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 5B27C708B6761B2207E4752F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A091F7E5558D5499B9920A1 /* 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; path = Release.xcconfig; sourceTree = ""; }; + 8643329740B340366C69BE11 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; + F99A1FEBA07B4CBB0C62001E /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -75,6 +80,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 1C321801B11D6AA47E7A67B9 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -99,6 +105,7 @@ 33CEB47122A05771004F2AC0 /* Flutter */, 33CC10EE2044A3C60003C045 /* Products */, D73912EC22F37F3D000D13A0 /* Frameworks */, + EBEE5F14413AB4294C4E5F59 /* Pods */, ); sourceTree = ""; }; @@ -148,10 +155,22 @@ D73912EC22F37F3D000D13A0 /* Frameworks */ = { isa = PBXGroup; children = ( + 5B27C708B6761B2207E4752F /* Pods_Runner.framework */, ); name = Frameworks; sourceTree = ""; }; + EBEE5F14413AB4294C4E5F59 /* Pods */ = { + isa = PBXGroup; + children = ( + 6A091F7E5558D5499B9920A1 /* Pods-Runner.debug.xcconfig */, + F99A1FEBA07B4CBB0C62001E /* Pods-Runner.release.xcconfig */, + 8643329740B340366C69BE11 /* Pods-Runner.profile.xcconfig */, + ); + name = Pods; + path = Pods; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -159,11 +178,13 @@ isa = PBXNativeTarget; buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + A5A0F3CB82E60FF6519874F9 /* [CP] Check Pods Manifest.lock */, 33CC10E92044A3C60003C045 /* Sources */, 33CC10EA2044A3C60003C045 /* Frameworks */, 33CC10EB2044A3C60003C045 /* Resources */, 33CC110E2044A8840003C045 /* Bundle Framework */, 3399D490228B24CF009A79C7 /* ShellScript */, + 5B7561E71F0B48AAAC9B9889 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -270,6 +291,45 @@ shellPath = /bin/sh; shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; }; + 5B7561E71F0B48AAAC9B9889 /* [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; + }; + A5A0F3CB82E60FF6519874F9 /* [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 */ diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata index 1d526a1..21a3cc1 100644 --- a/macos/Runner.xcworkspace/contents.xcworkspacedata +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -4,4 +4,7 @@ + + diff --git a/windows/.DS_Store b/windows/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..4c37ccf482904d4cb5b2e89673407ec394a327a6 GIT binary patch literal 6148 zcmeHKu};H447E!IK`cdLV7!Tqp*zD-g&nCsfJ!M04XLVjVu_geC3a@M0KNh~fakLb zgtQV9LX{o)-o|Z zPm9=wwrP%RZgI7;d3pc2{ymrb=eHxvrLjj*er2-Gr;!JrOCB!HfHU9>Y$^k&*&^AV zqL0piGvEx=49NE(Kn0^=rI>rXlaa8ot8E^)g3~cFbPwM~K`u@Ke0*MA6oPj@O-~;{# BQ1Ji& literal 0 HcmV?d00001 diff --git a/windows/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_windows b/windows/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_windows new file mode 120000 index 0000000..0fcc2cf --- /dev/null +++ b/windows/flutter/ephemeral/.plugin_symlinks/flutter_secure_storage_windows @@ -0,0 +1 @@ +/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_windows-1.1.2/ \ No newline at end of file From 45208c6f9137f73e85eb3d3c0f6a9c2ea0fc5aa2 Mon Sep 17 00:00:00 2001 From: yueshengw Date: Wed, 30 Nov 2022 18:38:09 -0500 Subject: [PATCH 5/5] Complete navigation between different pages and resolve data sharing errors --- .DS_Store | Bin 8196 -> 8196 bytes .flutter-plugins-dependencies | 2 +- android/.DS_Store | Bin 6148 -> 6148 bytes android/local.properties | 2 +- lib/.DS_Store | Bin 6148 -> 6148 bytes lib/main.dart | 66 +++++++++++++++--- lib/pages/test_page.dart | 18 ++--- lib/reusable_widgets/AppCardForm.dart | 2 +- macos/.DS_Store | Bin 6148 -> 6148 bytes .../bottom_nav_old.dart | 22 ++---- recycle bin/main (old).dart | 44 ++++++++++++ test/widget_test.dart | 2 +- 12 files changed, 116 insertions(+), 42 deletions(-) rename lib/widget/bottom_nav.dart => recycle bin/bottom_nav_old.dart (60%) create mode 100644 recycle bin/main (old).dart diff --git a/.DS_Store b/.DS_Store index e52585ca53bb271a9396541cd5418e8762ee277a..ddc7b2858e71a327656543c0b95110d7aede3e51 100644 GIT binary patch delta 639 zcmZp1XmOa}&uFnRU^hRb#pDD534xq+!{Frn+yVw5;Bh&o3KW!@>?e?SO&(75td`zFu7W|%i0%c4>Lm!(3Yg!d>5Cboctu92#435Wc90) zjyNLArl84Ab`X&Qni4Itldb0cd|99kQlc_2rj4j_JvT!ULn=cuLnRRB09gtQNkDt@ zP<+F{u@`6u4wc9*`exCj19cHj)d&}YRO{kbUXXzZeFg@F$an934xq+!{Frn+yVw5;M~^i4iuD{>?e?wU~;u^mvuML9%hCdpe;$c`7SO=Ir&LI5stkA%Yv`e z9dSgKO+k~L>>wfqG$mSOC)=9m&Gz$JCrgRSz?e3o%9HuUBpAy!Ylz)voY=5oGrI&Y KD@+!T!nFWADqpPt diff --git a/.flutter-plugins-dependencies b/.flutter-plugins-dependencies index ae460c7..f9fe932 100644 --- a/.flutter-plugins-dependencies +++ b/.flutter-plugins-dependencies @@ -1 +1 @@ -{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_secure_storage","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-6.0.0/","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_secure_storage","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-6.0.0/","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_secure_storage_macos","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_linux-1.1.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_windows-1.1.2/","native_build":true,"dependencies":[]}],"web":[{"name":"flutter_secure_storage_web","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_web-1.0.2/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]}],"date_created":"2022-10-27 20:22:54.722145","version":"3.3.2"} \ No newline at end of file +{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"flutter_secure_storage","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-6.0.0/","native_build":true,"dependencies":[]}],"android":[{"name":"flutter_secure_storage","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage-6.0.0/","native_build":true,"dependencies":[]}],"macos":[{"name":"flutter_secure_storage_macos","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_macos-1.1.1/","native_build":true,"dependencies":[]}],"linux":[{"name":"flutter_secure_storage_linux","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_linux-1.1.1/","native_build":true,"dependencies":[]}],"windows":[{"name":"flutter_secure_storage_windows","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_windows-1.1.2/","native_build":true,"dependencies":[]}],"web":[{"name":"flutter_secure_storage_web","path":"/Users/suling/Documents/Development/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_secure_storage_web-1.0.2/","dependencies":[]}]},"dependencyGraph":[{"name":"flutter_secure_storage","dependencies":["flutter_secure_storage_linux","flutter_secure_storage_macos","flutter_secure_storage_web","flutter_secure_storage_windows"]},{"name":"flutter_secure_storage_linux","dependencies":[]},{"name":"flutter_secure_storage_macos","dependencies":[]},{"name":"flutter_secure_storage_web","dependencies":[]},{"name":"flutter_secure_storage_windows","dependencies":[]}],"date_created":"2022-11-30 18:00:52.549230","version":"3.3.2"} \ No newline at end of file diff --git a/android/.DS_Store b/android/.DS_Store index 6a439a22bed197f8b417f281f17fa2c920e7d94d..3cfb7a7ec0ad70779bc22ffdd842009f1e578c09 100644 GIT binary patch delta 198 zcmZoMXfc=|#>B)qF;Q%yo}wrZ0|Nsi1A_nqLkdF5-U3F6faVlAtp%+|93ess=?p~-i4gs{`6(_*Ir&LI84ld43Nk>pB`mu~2NHo+3X70|Nsi1A_pAVQ_MOZo$ODwTv8-=P>m#F`SsJ!<@z_ puz4YK8q4Ml%<~vGvvcrs0CfUIzB5ne7qJBC1!-p593ZlV836R!6{-LL diff --git a/android/local.properties b/android/local.properties index 6cf7308..27c6b9b 100644 --- a/android/local.properties +++ b/android/local.properties @@ -1,4 +1,4 @@ -sdk.dir=/Users/suling/Library/Android/sdk +sdk.dir=/usr/local/Caskroom/android-platform-tools/33.0.3 flutter.sdk=/Users/suling/Documents/Development/flutter flutter.buildMode=debug flutter.versionName=1.0.0 diff --git a/lib/.DS_Store b/lib/.DS_Store index 2bd4e6d4ae0e3d2409e0fa41898da7d652d8f2a0..a232a1e82ad0f5ccc68ed74ed3b130e7ea86e832 100644 GIT binary patch delta 76 zcmZoMXffEZkd^V~=0&U*7**IZ85kJY7|Izk8B!S18B!Taa`RnWl5+BsfZ`nAEt+($ aPMSQ8U5*XP+{LcIC@?WmXEQs;Uw#09>lirz delta 76 zcmZoMXffEZkd<-Y=0&U*7*#l5GcYi)F_bf8GNdr1Go&(< Counter()), - ], child: MyApp())); + runApp(MyApp()); } class MyApp extends StatelessWidget { MyApp({super.key}); - final SecureStore store = SecureStore(const FlutterSecureStorage()); @override Widget build(BuildContext context) { final pageWidgets = [Home(store: store), AppCardForm(), TestPage()]; @@ -30,12 +27,11 @@ class MyApp extends StatelessWidget { }, debugShowCheckedModeBanner: false, home: Scaffold( - body: pageWidgets[counter.pageIndex], + body: StatefulWidget1(), appBar: AppBar( title: const Text("Authenticator"), centerTitle: true, ), - bottomNavigationBar: const BottomNav(), ), theme: ThemeData( primarySwatch: Colors.orange, @@ -44,11 +40,59 @@ class MyApp extends StatelessWidget { } } -class Counter extends StatelessWidget { - const Counter({super.key}); - static int pageIndex = 0; +class StatefulWidget1 extends StatefulWidget { + const StatefulWidget1({super.key}); + // SecureStore? HomePage; + // StatefulWidget1(SecureStore HomePage) { + // this.HomePage = HomePage; + // } @override + State createState() => _StatefulWidget1State(); +} + +class _StatefulWidget1State extends State { + int _selectedIndex = 0; + static const TextStyle optionStyle = + TextStyle(fontSize: 30, fontWeight: FontWeight.bold); + static final List _widgetOptions = [ + Home(store: store), + const AppCardForm(), + const Text( + 'Settings', + style: optionStyle, + ), + ]; + + void _onItemTapped(int index) { + setState(() { + _selectedIndex = index; + }); + } + Widget build(BuildContext context) { - return Container(); + return Scaffold( + body: Center( + child: _widgetOptions.elementAt(_selectedIndex), + ), + bottomNavigationBar: BottomNavigationBar( + items: const [ + BottomNavigationBarItem( + icon: Icon(Icons.home), + label: 'Home', + ), + BottomNavigationBarItem( + icon: Icon(Icons.add_circle), + label: 'Create', + ), + BottomNavigationBarItem( + icon: Icon(Icons.settings), + label: 'Settings', + ), + ], + currentIndex: _selectedIndex, + selectedItemColor: Colors.amber[800], + onTap: _onItemTapped, + ), + ); } } diff --git a/lib/pages/test_page.dart b/lib/pages/test_page.dart index 323e17a..3d530e5 100644 --- a/lib/pages/test_page.dart +++ b/lib/pages/test_page.dart @@ -15,9 +15,9 @@ class TestPage extends StatelessWidget { // while (i < 15) {} var TestList = []; int i = 0; - TestList.add( - AppCardForm(), - ); + // TestList.add( + // AppCardForm(), + // ); while (i < 12) { var faker = new Faker(); TestList.add(AppCard( @@ -40,12 +40,12 @@ class TestPage extends StatelessWidget { title: Row( mainAxisAlignment: MainAxisAlignment.center, mainAxisSize: MainAxisSize.min, - children: const [ - Text( - "Test Page", - style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), - ), - ], + // children: const [ + // Text( + // "Test Page", + // style: TextStyle(fontWeight: FontWeight.bold, fontSize: 25), + // ), + // ], ), centerTitle: true, ), diff --git a/lib/reusable_widgets/AppCardForm.dart b/lib/reusable_widgets/AppCardForm.dart index 71d71f1..0eb47cb 100644 --- a/lib/reusable_widgets/AppCardForm.dart +++ b/lib/reusable_widgets/AppCardForm.dart @@ -25,7 +25,7 @@ class _AppCardFormState extends State { height: height * 0.04, ), const Text( - "Edit", + "New", style: TextStyle( fontWeight: FontWeight.bold, fontSize: 20, diff --git a/macos/.DS_Store b/macos/.DS_Store index 91e2557b8870d12e43375289b201b110f3a2233d..5063ec20fdffb1767c5853267bcafd0b960ca63e 100644 GIT binary patch delta 232 zcmZoMXfc@J&nU7nU^g?P$YdTC1txB$$$Bg~^$83>z`_u~kk639P@I!)7@VA+TL2Pd zVAQfhmdnj|aY@R_PXdZ@1Y5V*&ucy6h$^3gSH2(v$!w+vK&=dH43ihKY-P%uGkF55 z+T=P`F1GWF8i58+?qfAVFx4i%VdZ0*z%aRhO+x_1g$#`6fPz|^ HomePage(), + '/testpage': (context) => const TestPage(), + '/userguide': (context) => const UserGuide(), + '/appcardform': (context) => const AppCardForm() + }, + debugShowCheckedModeBanner: false, + home: Scaffold( + body: pageWidgets[], + appBar: AppBar( + title: const Text("Authenticator"), + centerTitle: true, + ), + bottomNavigationBar: const BottomNav(), + ), + theme: ThemeData( + primarySwatch: Colors.orange, + ), + ); + } +} + diff --git a/test/widget_test.dart b/test/widget_test.dart index 0ce82eb..023059d 100644 --- a/test/widget_test.dart +++ b/test/widget_test.dart @@ -8,7 +8,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:authenticator/main.dart'; +import '../recycle bin/main (old).dart'; void main() { testWidgets('Counter increments smoke test', (WidgetTester tester) async {