scannerBarCode(InputImage inputImage) async {
50 | try {
51 | final barcodes = await barcodeScanner.processImage(inputImage);
52 | String? barcode;
53 | for (Barcode item in barcodes) {
54 | barcode = item.displayValue;
55 | }
56 |
57 | if (barcode != null && status.barcode.isEmpty) {
58 | barCodeStatus = BarcodeScannerStatus.barcode(barcode);
59 | cameraController?.dispose();
60 | await barcodeScanner.close();
61 | }
62 |
63 | return;
64 | } catch (e) {
65 | debugPrint('Error when scanning barcode ${e.toString()}');
66 | debugPrint('Stack when scanning barcode ${e.toString()}');
67 | }
68 | }
69 |
70 | void scanWithImagePicker() async {
71 | final response = await ImagePicker().pickImage(source: ImageSource.gallery);
72 | final inputImage = InputImage.fromFilePath(
73 | response?.path ?? AppImages.logomini,
74 | );
75 |
76 | scannerBarCode(inputImage);
77 | }
78 |
79 | void scanWithCamera() {
80 | barCodeStatus = BarcodeScannerStatus.available();
81 | Future.delayed(
82 | const Duration(seconds: 10),
83 | () {
84 | barCodeStatus = BarcodeScannerStatus.available();
85 | if (status.hasBarcode == false) {
86 | barCodeStatus =
87 | BarcodeScannerStatus.error('Timeout de leitura de boleto');
88 | }
89 | },
90 | );
91 | }
92 |
93 | void listenCamera() {
94 | if (cameraController?.value.isStreamingImages == false) {
95 | cameraController?.startImageStream((cameraImage) async {
96 | if (status.stopScanner == false) {
97 | try {
98 | final allBytes = WriteBuffer();
99 | for (Plane plane in cameraImage.planes) {
100 | allBytes.putUint8List(plane.bytes);
101 | }
102 | final bytes = allBytes.done().buffer.asUint8List();
103 | final imageSize = Size(
104 | cameraImage.width.toDouble(),
105 | cameraImage.height.toDouble(),
106 | );
107 | const imageRotation = InputImageRotation.rotation0deg;
108 | final inputImageFormat =
109 | InputImageFormatValue.fromRawValue(cameraImage.format.raw) ??
110 | InputImageFormat.nv21;
111 | final planeData = cameraImage.planes.map(
112 | (plane) {
113 | return InputImageMetadata(
114 | bytesPerRow: plane.bytesPerRow,
115 | rotation: imageRotation,
116 | format: inputImageFormat,
117 | size: imageSize,
118 | );
119 | },
120 | ).toList();
121 |
122 | final metadata = InputImageMetadata(
123 | size: imageSize,
124 | rotation: imageRotation,
125 | format: inputImageFormat,
126 | bytesPerRow: planeData.first.bytesPerRow,
127 | );
128 |
129 | final inputImageCamera = InputImage.fromBytes(
130 | bytes: bytes,
131 | metadata: metadata,
132 | );
133 |
134 | scannerBarCode(inputImageCamera);
135 | } catch (e, s) {
136 | debugPrint('Error when reading camera ${e.toString()}');
137 | debugPrint('Stack when reading camera ${s.toString()}');
138 | }
139 | }
140 | });
141 | }
142 | }
143 |
144 | @override
145 | void dispose() {
146 | _disposed = true;
147 | cameraController?.dispose();
148 | if (status.showCamera) {
149 | cameraController?.dispose();
150 | }
151 | if (status.hasBarcode) {
152 | barcodeScanner.close();
153 | }
154 | super.dispose();
155 | }
156 |
157 | @override
158 | void notifyListeners() {
159 | if (!_disposed) {
160 | super.notifyListeners();
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PayFlow
6 |
7 | - ✅ Liftoff 💪
8 | - ✅ Maximum Speed 🏃♂️
9 | - ✅ In Orbit 👨🚀
10 | - ✅ Landing 🔥
11 | - ✅ Surface Exploration ⚡
12 | - ✅ Accelerating your Career 🚀
13 | - ✅ Mission Closure 💜
14 |
15 | ---
16 |
17 | Topics 📋
18 |
19 |
20 |
21 | - [About 📖](#about-)
22 | - [Layout 🎨](#layout-)
23 | - [Functionalities 🛠️](#functionalities-%EF%B8%8F)
24 | - [Challenges and Learnings along the way 🤯](#challenges-and-learnings-along-the-way-)
25 | - [Notion Files 📋](#notion-file-)
26 | - [How to Use 🤔](#how-to-use-)
27 | - [How to Contribute 💪](#how-to-contribute-)
28 | - [License 📝](#license-)
29 |
30 |
31 |
32 | ---
33 |
34 | About 📖
35 |
36 |
37 | This project was developed at Next Level Week, an intense week of studies, networking, friendship, group work, accompanied by a sensational project developed by Rocketseat from the 20th to the 27th of June.
38 | This application is a Billet Management, containing several features, which will soon be developed and explained.
39 |
40 |
41 | ---
42 |
43 | Layout 🎨
44 |
45 |
46 |
47 |
48 |
49 |
50 | The Layout was developed by Tiago Luchtenberg, and you can access it on Figma:
51 |
52 | - Mobile 📱
53 |
54 |
55 | ---
56 |
57 | Functionalities 🛠️
58 |
59 |
60 |
61 | - Payment and Bills Management
62 | - Social login with Google
63 | - Firebase MLKit with QRCode Reading
64 | - Camera Usage
65 | - Boleto Registration
66 | - Ticket name
67 | - Maturity
68 | - Price
69 | - QRCode
70 | - Query Statements
71 | - Among many other amazing things!
72 |
73 |
74 |
75 | ---
76 |
77 | Challenges and Learnings along the way 🤯
78 |
79 |
80 | This was the most intense week of my life. And this NLW was super special for me, because in addition to always being that amazing week in all aspects, in this edition I had my first experience participating in the Rocketseat team.
81 | In addition to the usual challenge, which was to reconcile the time to take classes, study and take notes, in this edition I had to reconcile all of this, plus my work in helping people in the community and my intention was that my participation was the most fast, active, practical... the best of them all!
82 | The focus was on working my ass off and having an intense week. And that led me to give up a lot of things, but it helped me to have a new perspective on a lot of things, and the main one was that: "you can always do more, you can always be better and become better, success is trainable.". And man, I felt that, and I know I can do all of this, I want to always be better, and prepare myself to be and give my best.
83 | I managed to stand out in the week, being the TOP1 member 🥇 of the entire community, with more messages / answers / help / and other types of help and participation.
84 | Rocketseat provided me and is providing me with an amazing experience! It's amazing to be here. And I will do my best! 💜
85 |
86 |
87 | ---
88 |
89 | Notion File 📋
90 |
91 | - [Flutter Trail](https://www.notion.so/NLW-Together-Conte-dos-complementares-ae22125e899549efb2d4e360b5ee5ca3) 🚀
92 |
93 | ---
94 |
95 | How to Use 🤔
96 |
97 | ```
98 | First of all, correctly configure the Flutter development environment on your machine, see https://flutter.dev/docs/get-started/install
99 |
100 | - Clone this repository:
101 | $ git clone https://github.com/felipecastrosales/payflow payflow
102 |
103 | - Enter in directory:
104 | $ cd payflow
105 |
106 | - For install dependencies:
107 | $ flutter pub get
108 |
109 | - Run the app:
110 | $ flutter run
111 | ```
112 |
113 | ---
114 |
115 | How to Contribute 💪
116 |
117 | ```
118 | - Fork the project
119 |
120 | - Create a new branch with your changes:
121 | $ git checkout -b my-feature
122 |
123 | - Save your changes and create a commit message telling you what you did:
124 | $ git commit -m "feature: My new feature"
125 |
126 | - Submit your changes:
127 | $ git push origin my-feature
128 | ```
129 |
130 | ---
131 |
132 | License 📝
133 |
134 |
135 | This repository is under MIT license. You can see the LICENSE file for more details. 😉
136 |
137 |
138 | ---
139 |
140 | >This project was developed with ❤️ by **[@Felipe Sales](https://www.linkedin.com/in/felipecastrosales/)**, with the instructor **[@GabulDev](https://www.linkedin.com/in/gabuldev/)**, in #NextLevelWeek from **[Rocketseat](https://rocketseat.com.br/)**.
141 | If it helped you, give ⭐, contribute, it will help me too 😉
142 |
143 | ---
144 |
145 |
146 |
147 | [](https://www.linkedin.com/in/felipecastrosales/)
148 |
149 |
150 |
--------------------------------------------------------------------------------
/README-pt.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | PayFlow
6 |
7 | - ✅ Liftoff 💪
8 | - ✅ Maximum Speed 🏃♂️
9 | - ✅ In Orbit 👨🚀
10 | - ✅ Landing 🔥
11 | - ✅ Surface Exploration ⚡
12 | - ✅ Acelerando sua Carreira 🚀
13 | - ✅ Encerramento da Missão 💜
14 |
15 | ---
16 |
17 | Tópicos 📋
18 |
19 |
20 |
21 | - [Sobre 📖](#sobre-)
22 | - [Layout 🎨](#layout-)
23 | - [Funcionalidades 🛠️](#Funcionalidades-%EF%B8%8F)
24 | - [Desafios e Aprendizados no Caminho 🤯](#desafios-e-aprendizados-no-caminho-)
25 | - [Arquivos no Notion 📋](#arquivo-no-notion-)
26 | - [Como Usar 🤔](#como-usar-)
27 | - [Como Contribuir 💪](#como-contribuir-)
28 | - [Licença 📝](#licença-)
29 |
30 |
31 |
32 | ---
33 |
34 | Sobre 📖
35 |
36 |
37 | Esse projeto foi desenvolvido na Next Level Week, uma semana intensa de estudos, networking, amizade, trabalho em grupo, acompanhado de um projeto sensacional desenvolvido pela Rocketseat do dia 20 ao dia 27 de Junho.
38 | Essa aplicação é um Gerenciamento de Boletos, contendo vários recursos, que em breve serão desenvolvidos e explicados.
39 |
40 |
41 | ---
42 |
43 | Layout 🎨
44 |
45 |
46 |
47 |
48 |
49 |
50 | O Layout foi desenvolvido por Tiago Luchtenberg, e você pode acessá-lo no Figma:
51 |
52 | - Mobile 📱
53 |
54 |
55 | ---
56 |
57 | Funcionalidades 🛠️
58 |
59 |
60 |
61 | - Gerenciamento de Pagamentos e Boletos
62 | - Login Social com Google
63 | - MLKit do Firebase com Leitura de QRCode
64 | - Uso de Câmera
65 | - Cadastro de Boleto
66 | - Nome do Boleto
67 | - Vencimento
68 | - Valor
69 | - Código do QRCode
70 | - Consulta de Extratos
71 | - Entre várias outras coisas incríveis!
72 |
73 |
74 |
75 | ---
76 |
77 | Desafios e Aprendizados no Caminho 🤯
78 |
79 |
80 | Essa foi a semana mais intensa da minha vida. E essa NLW foi super especial para mim, pois além de ser sempre aquela semana incrível em todos os quesitos, nessa edição eu tive minha primeira experiência participando do time da Rocketseat.
81 | Além do desafio de sempre, que era conciliar o tempo para fazer as aulas, estudar e realizar anotações, nessa edição eu tive que conciliar tudo isso mais o meu trabalho em ajudar as pessoas da comunidade e meu intuito era que a minha participação fosse a mais rápida, ativa, prática... a melhor de todas!
82 | O foco era trabalhar pra caralho e ter uma semana intensa. E isso me levou a abrir mão de muitas coisas, mas que me ajudaram a ter uma visão nova sobre muitas coisas, e a principal era de que: "você sempre pode mais, você sempre pode ser melhor e se tornar melhor, o sucesso é treinável.". E cara, eu senti isso, e sei que posso fazer tudo isso, eu quero sempre ser melhor, e me preparar para ser e dar o melhor.
83 | Eu consegui me destacar na semana, sendo o membro TOP1 🥇 de toda a comunidade, com mais mensagens / respostas / auxílios / e outros tipos de ajudas e participações.
84 | A Rocketseat me proporcionou e está me proporcionando uma experiência incrível! É incrível estar aqui. E eu vou dar meu máximo! 💜
85 |
86 |
87 | ---
88 |
89 | Arquivo no Notion 📋
90 |
91 | - [Flutter Trail](https://www.notion.so/NLW-Together-Conte-dos-complementares-ae22125e899549efb2d4e360b5ee5ca3) 🚀
92 |
93 | ---
94 |
95 | Como Usar 🤔
96 |
97 | ```
98 | Primeiro, configure corretamente o ambiente de desenvolvimento em Flutter na sua máruina, veja em: https://flutter.dev/docs/get-started/install
99 |
100 | - Clone esse repositório:
101 | $ git clone https://github.com/felipecastrosales/payflow payflow
102 |
103 | - Entre no diretório:
104 | $ cd payflow
105 |
106 | - Instale as dependências:
107 | $ flutter pub get
108 |
109 | - Inicie o app:
110 | $ flutter run
111 | ```
112 |
113 | ---
114 |
115 | Como Contribuir 💪
116 |
117 | ```
118 | - Fork o projeto
119 |
120 | - Cria uma nova branch com suas mudanças:
121 | $ git checkout -b my-feature
122 |
123 | - Salve suas mudanças e crie uma mensagem de commit falando o que fez:
124 | $ git commit -m "feature: My new feature"
125 |
126 | - Envie suas mudanças:
127 | $ git push origin my-feature
128 | ```
129 |
130 | ---
131 |
132 | Licença 📝
133 |
134 |
135 | Este repositório está sob licença MIT. Você pode ver o arquivo LICENSE para mais detalhes. 😉
136 |
137 |
138 | ---
139 |
140 | >Esse projeto foi desenvolvido com ❤️ por **[@Felipe Sales](https://www.linkedin.com/in/felipecastrosales/)**, com o instrutor **[@GabulDev](https://www.linkedin.com/in/gabuldev/)**, na #NextLevelWeek da **[Rocketseat](https://rocketseat.com.br/)**.
141 | Se isso te ajudou, dê uma ⭐, isso vai me ajudar também! 😉
142 |
143 | ---
144 |
145 |
146 |
147 | [](https://www.linkedin.com/in/felipecastrosales/)
148 |
149 |
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 54;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11 | 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
12 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
13 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
14 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
15 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
16 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
17 | C76341CFCF42AAA610BF8305 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0B1FE0E1FA9DC4FE5D1250DA /* GoogleService-Info.plist */; };
18 | /* End PBXBuildFile section */
19 |
20 | /* Begin PBXContainerItemProxy section */
21 | 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
22 | isa = PBXContainerItemProxy;
23 | containerPortal = 97C146E61CF9000F007C117D /* Project object */;
24 | proxyType = 1;
25 | remoteGlobalIDString = 97C146ED1CF9000F007C117D;
26 | remoteInfo = Runner;
27 | };
28 | /* End PBXContainerItemProxy section */
29 |
30 | /* Begin PBXCopyFilesBuildPhase section */
31 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
32 | isa = PBXCopyFilesBuildPhase;
33 | buildActionMask = 2147483647;
34 | dstPath = "";
35 | dstSubfolderSpec = 10;
36 | files = (
37 | );
38 | name = "Embed Frameworks";
39 | runOnlyForDeploymentPostprocessing = 0;
40 | };
41 | /* End PBXCopyFilesBuildPhase section */
42 |
43 | /* Begin PBXFileReference section */
44 | 0B1FE0E1FA9DC4FE5D1250DA /* GoogleService-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "Runner/GoogleService-Info.plist"; sourceTree = ""; };
45 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
46 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
47 | 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
48 | 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
49 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
50 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
51 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
52 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
53 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
54 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
55 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
56 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
57 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
58 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
59 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
60 | /* End PBXFileReference section */
61 |
62 | /* Begin PBXFrameworksBuildPhase section */
63 | 97C146EB1CF9000F007C117D /* Frameworks */ = {
64 | isa = PBXFrameworksBuildPhase;
65 | buildActionMask = 2147483647;
66 | files = (
67 | );
68 | runOnlyForDeploymentPostprocessing = 0;
69 | };
70 | /* End PBXFrameworksBuildPhase section */
71 |
72 | /* Begin PBXGroup section */
73 | 331C8082294A63A400263BE5 /* RunnerTests */ = {
74 | isa = PBXGroup;
75 | children = (
76 | 331C807B294A618700263BE5 /* RunnerTests.swift */,
77 | );
78 | path = RunnerTests;
79 | sourceTree = "";
80 | };
81 | 9740EEB11CF90186004384FC /* Flutter */ = {
82 | isa = PBXGroup;
83 | children = (
84 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
85 | 9740EEB21CF90195004384FC /* Debug.xcconfig */,
86 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
87 | 9740EEB31CF90195004384FC /* Generated.xcconfig */,
88 | );
89 | name = Flutter;
90 | sourceTree = "";
91 | };
92 | 97C146E51CF9000F007C117D = {
93 | isa = PBXGroup;
94 | children = (
95 | 9740EEB11CF90186004384FC /* Flutter */,
96 | 97C146F01CF9000F007C117D /* Runner */,
97 | 97C146EF1CF9000F007C117D /* Products */,
98 | 331C8082294A63A400263BE5 /* RunnerTests */,
99 | 0B1FE0E1FA9DC4FE5D1250DA /* GoogleService-Info.plist */,
100 | );
101 | sourceTree = "";
102 | };
103 | 97C146EF1CF9000F007C117D /* Products */ = {
104 | isa = PBXGroup;
105 | children = (
106 | 97C146EE1CF9000F007C117D /* Runner.app */,
107 | 331C8081294A63A400263BE5 /* RunnerTests.xctest */,
108 | );
109 | name = Products;
110 | sourceTree = "";
111 | };
112 | 97C146F01CF9000F007C117D /* Runner */ = {
113 | isa = PBXGroup;
114 | children = (
115 | 97C146FA1CF9000F007C117D /* Main.storyboard */,
116 | 97C146FD1CF9000F007C117D /* Assets.xcassets */,
117 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
118 | 97C147021CF9000F007C117D /* Info.plist */,
119 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
120 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
121 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
122 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
123 | );
124 | path = Runner;
125 | sourceTree = "";
126 | };
127 | /* End PBXGroup section */
128 |
129 | /* Begin PBXNativeTarget section */
130 | 331C8080294A63A400263BE5 /* RunnerTests */ = {
131 | isa = PBXNativeTarget;
132 | buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
133 | buildPhases = (
134 | 331C807D294A63A400263BE5 /* Sources */,
135 | 331C807F294A63A400263BE5 /* Resources */,
136 | );
137 | buildRules = (
138 | );
139 | dependencies = (
140 | 331C8086294A63A400263BE5 /* PBXTargetDependency */,
141 | );
142 | name = RunnerTests;
143 | productName = RunnerTests;
144 | productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */;
145 | productType = "com.apple.product-type.bundle.unit-test";
146 | };
147 | 97C146ED1CF9000F007C117D /* Runner */ = {
148 | isa = PBXNativeTarget;
149 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
150 | buildPhases = (
151 | 9740EEB61CF901F6004384FC /* Run Script */,
152 | 97C146EA1CF9000F007C117D /* Sources */,
153 | 97C146EB1CF9000F007C117D /* Frameworks */,
154 | 97C146EC1CF9000F007C117D /* Resources */,
155 | 9705A1C41CF9048500538489 /* Embed Frameworks */,
156 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
157 | );
158 | buildRules = (
159 | );
160 | dependencies = (
161 | );
162 | name = Runner;
163 | productName = Runner;
164 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
165 | productType = "com.apple.product-type.application";
166 | };
167 | /* End PBXNativeTarget section */
168 |
169 | /* Begin PBXProject section */
170 | 97C146E61CF9000F007C117D /* Project object */ = {
171 | isa = PBXProject;
172 | attributes = {
173 | BuildIndependentTargetsInParallel = YES;
174 | LastUpgradeCheck = 1510;
175 | ORGANIZATIONNAME = "";
176 | TargetAttributes = {
177 | 331C8080294A63A400263BE5 = {
178 | CreatedOnToolsVersion = 14.0;
179 | TestTargetID = 97C146ED1CF9000F007C117D;
180 | };
181 | 97C146ED1CF9000F007C117D = {
182 | CreatedOnToolsVersion = 7.3.1;
183 | LastSwiftMigration = 1100;
184 | };
185 | };
186 | };
187 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
188 | compatibilityVersion = "Xcode 9.3";
189 | developmentRegion = en;
190 | hasScannedForEncodings = 0;
191 | knownRegions = (
192 | en,
193 | Base,
194 | );
195 | mainGroup = 97C146E51CF9000F007C117D;
196 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
197 | projectDirPath = "";
198 | projectRoot = "";
199 | targets = (
200 | 97C146ED1CF9000F007C117D /* Runner */,
201 | 331C8080294A63A400263BE5 /* RunnerTests */,
202 | );
203 | };
204 | /* End PBXProject section */
205 |
206 | /* Begin PBXResourcesBuildPhase section */
207 | 331C807F294A63A400263BE5 /* Resources */ = {
208 | isa = PBXResourcesBuildPhase;
209 | buildActionMask = 2147483647;
210 | files = (
211 | );
212 | runOnlyForDeploymentPostprocessing = 0;
213 | };
214 | 97C146EC1CF9000F007C117D /* Resources */ = {
215 | isa = PBXResourcesBuildPhase;
216 | buildActionMask = 2147483647;
217 | files = (
218 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
219 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
220 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
221 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
222 | C76341CFCF42AAA610BF8305 /* GoogleService-Info.plist in Resources */,
223 | );
224 | runOnlyForDeploymentPostprocessing = 0;
225 | };
226 | /* End PBXResourcesBuildPhase section */
227 |
228 | /* Begin PBXShellScriptBuildPhase section */
229 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
230 | isa = PBXShellScriptBuildPhase;
231 | alwaysOutOfDate = 1;
232 | buildActionMask = 2147483647;
233 | files = (
234 | );
235 | inputPaths = (
236 | "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}",
237 | );
238 | name = "Thin Binary";
239 | outputPaths = (
240 | );
241 | runOnlyForDeploymentPostprocessing = 0;
242 | shellPath = /bin/sh;
243 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
244 | };
245 | 9740EEB61CF901F6004384FC /* Run Script */ = {
246 | isa = PBXShellScriptBuildPhase;
247 | alwaysOutOfDate = 1;
248 | buildActionMask = 2147483647;
249 | files = (
250 | );
251 | inputPaths = (
252 | );
253 | name = "Run Script";
254 | outputPaths = (
255 | );
256 | runOnlyForDeploymentPostprocessing = 0;
257 | shellPath = /bin/sh;
258 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
259 | };
260 | /* End PBXShellScriptBuildPhase section */
261 |
262 | /* Begin PBXSourcesBuildPhase section */
263 | 331C807D294A63A400263BE5 /* Sources */ = {
264 | isa = PBXSourcesBuildPhase;
265 | buildActionMask = 2147483647;
266 | files = (
267 | 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */,
268 | );
269 | runOnlyForDeploymentPostprocessing = 0;
270 | };
271 | 97C146EA1CF9000F007C117D /* Sources */ = {
272 | isa = PBXSourcesBuildPhase;
273 | buildActionMask = 2147483647;
274 | files = (
275 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
276 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
277 | );
278 | runOnlyForDeploymentPostprocessing = 0;
279 | };
280 | /* End PBXSourcesBuildPhase section */
281 |
282 | /* Begin PBXTargetDependency section */
283 | 331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
284 | isa = PBXTargetDependency;
285 | target = 97C146ED1CF9000F007C117D /* Runner */;
286 | targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
287 | };
288 | /* End PBXTargetDependency section */
289 |
290 | /* Begin PBXVariantGroup section */
291 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
292 | isa = PBXVariantGroup;
293 | children = (
294 | 97C146FB1CF9000F007C117D /* Base */,
295 | );
296 | name = Main.storyboard;
297 | sourceTree = "";
298 | };
299 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
300 | isa = PBXVariantGroup;
301 | children = (
302 | 97C147001CF9000F007C117D /* Base */,
303 | );
304 | name = LaunchScreen.storyboard;
305 | sourceTree = "";
306 | };
307 | /* End PBXVariantGroup section */
308 |
309 | /* Begin XCBuildConfiguration section */
310 | 249021D3217E4FDB00AE95B9 /* Profile */ = {
311 | isa = XCBuildConfiguration;
312 | buildSettings = {
313 | ALWAYS_SEARCH_USER_PATHS = NO;
314 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
315 | CLANG_ANALYZER_NONNULL = YES;
316 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
317 | CLANG_CXX_LIBRARY = "libc++";
318 | CLANG_ENABLE_MODULES = YES;
319 | CLANG_ENABLE_OBJC_ARC = YES;
320 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
321 | CLANG_WARN_BOOL_CONVERSION = YES;
322 | CLANG_WARN_COMMA = YES;
323 | CLANG_WARN_CONSTANT_CONVERSION = YES;
324 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
325 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
326 | CLANG_WARN_EMPTY_BODY = YES;
327 | CLANG_WARN_ENUM_CONVERSION = YES;
328 | CLANG_WARN_INFINITE_RECURSION = YES;
329 | CLANG_WARN_INT_CONVERSION = YES;
330 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
331 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
332 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
333 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
334 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
335 | CLANG_WARN_STRICT_PROTOTYPES = YES;
336 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
337 | CLANG_WARN_UNREACHABLE_CODE = YES;
338 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
339 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
340 | COPY_PHASE_STRIP = NO;
341 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
342 | ENABLE_NS_ASSERTIONS = NO;
343 | ENABLE_STRICT_OBJC_MSGSEND = YES;
344 | ENABLE_USER_SCRIPT_SANDBOXING = NO;
345 | GCC_C_LANGUAGE_STANDARD = gnu99;
346 | GCC_NO_COMMON_BLOCKS = YES;
347 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
348 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
349 | GCC_WARN_UNDECLARED_SELECTOR = YES;
350 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
351 | GCC_WARN_UNUSED_FUNCTION = YES;
352 | GCC_WARN_UNUSED_VARIABLE = YES;
353 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
354 | MTL_ENABLE_DEBUG_INFO = NO;
355 | SDKROOT = iphoneos;
356 | SUPPORTED_PLATFORMS = iphoneos;
357 | TARGETED_DEVICE_FAMILY = "1,2";
358 | VALIDATE_PRODUCT = YES;
359 | };
360 | name = Profile;
361 | };
362 | 249021D4217E4FDB00AE95B9 /* Profile */ = {
363 | isa = XCBuildConfiguration;
364 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
365 | buildSettings = {
366 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
367 | CLANG_ENABLE_MODULES = YES;
368 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
369 | DEVELOPMENT_TEAM = C2ZWJXER5Z;
370 | ENABLE_BITCODE = NO;
371 | INFOPLIST_FILE = Runner/Info.plist;
372 | LD_RUNPATH_SEARCH_PATHS = (
373 | "$(inherited)",
374 | "@executable_path/Frameworks",
375 | );
376 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow;
377 | PRODUCT_NAME = "$(TARGET_NAME)";
378 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
379 | SWIFT_VERSION = 5.0;
380 | VERSIONING_SYSTEM = "apple-generic";
381 | };
382 | name = Profile;
383 | };
384 | 331C8088294A63A400263BE5 /* Debug */ = {
385 | isa = XCBuildConfiguration;
386 | buildSettings = {
387 | BUNDLE_LOADER = "$(TEST_HOST)";
388 | CODE_SIGN_STYLE = Automatic;
389 | CURRENT_PROJECT_VERSION = 1;
390 | GENERATE_INFOPLIST_FILE = YES;
391 | MARKETING_VERSION = 1.0;
392 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow.RunnerTests;
393 | PRODUCT_NAME = "$(TARGET_NAME)";
394 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
395 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
396 | SWIFT_VERSION = 5.0;
397 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
398 | };
399 | name = Debug;
400 | };
401 | 331C8089294A63A400263BE5 /* Release */ = {
402 | isa = XCBuildConfiguration;
403 | buildSettings = {
404 | BUNDLE_LOADER = "$(TEST_HOST)";
405 | CODE_SIGN_STYLE = Automatic;
406 | CURRENT_PROJECT_VERSION = 1;
407 | GENERATE_INFOPLIST_FILE = YES;
408 | MARKETING_VERSION = 1.0;
409 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow.RunnerTests;
410 | PRODUCT_NAME = "$(TARGET_NAME)";
411 | SWIFT_VERSION = 5.0;
412 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
413 | };
414 | name = Release;
415 | };
416 | 331C808A294A63A400263BE5 /* Profile */ = {
417 | isa = XCBuildConfiguration;
418 | buildSettings = {
419 | BUNDLE_LOADER = "$(TEST_HOST)";
420 | CODE_SIGN_STYLE = Automatic;
421 | CURRENT_PROJECT_VERSION = 1;
422 | GENERATE_INFOPLIST_FILE = YES;
423 | MARKETING_VERSION = 1.0;
424 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow.RunnerTests;
425 | PRODUCT_NAME = "$(TARGET_NAME)";
426 | SWIFT_VERSION = 5.0;
427 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
428 | };
429 | name = Profile;
430 | };
431 | 97C147031CF9000F007C117D /* Debug */ = {
432 | isa = XCBuildConfiguration;
433 | buildSettings = {
434 | ALWAYS_SEARCH_USER_PATHS = NO;
435 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
436 | CLANG_ANALYZER_NONNULL = YES;
437 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
438 | CLANG_CXX_LIBRARY = "libc++";
439 | CLANG_ENABLE_MODULES = YES;
440 | CLANG_ENABLE_OBJC_ARC = YES;
441 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
442 | CLANG_WARN_BOOL_CONVERSION = YES;
443 | CLANG_WARN_COMMA = YES;
444 | CLANG_WARN_CONSTANT_CONVERSION = YES;
445 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
446 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
447 | CLANG_WARN_EMPTY_BODY = YES;
448 | CLANG_WARN_ENUM_CONVERSION = YES;
449 | CLANG_WARN_INFINITE_RECURSION = YES;
450 | CLANG_WARN_INT_CONVERSION = YES;
451 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
452 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
453 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
454 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
455 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
456 | CLANG_WARN_STRICT_PROTOTYPES = YES;
457 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
458 | CLANG_WARN_UNREACHABLE_CODE = YES;
459 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
460 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
461 | COPY_PHASE_STRIP = NO;
462 | DEBUG_INFORMATION_FORMAT = dwarf;
463 | ENABLE_STRICT_OBJC_MSGSEND = YES;
464 | ENABLE_TESTABILITY = YES;
465 | ENABLE_USER_SCRIPT_SANDBOXING = NO;
466 | GCC_C_LANGUAGE_STANDARD = gnu99;
467 | GCC_DYNAMIC_NO_PIC = NO;
468 | GCC_NO_COMMON_BLOCKS = YES;
469 | GCC_OPTIMIZATION_LEVEL = 0;
470 | GCC_PREPROCESSOR_DEFINITIONS = (
471 | "DEBUG=1",
472 | "$(inherited)",
473 | );
474 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
475 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
476 | GCC_WARN_UNDECLARED_SELECTOR = YES;
477 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
478 | GCC_WARN_UNUSED_FUNCTION = YES;
479 | GCC_WARN_UNUSED_VARIABLE = YES;
480 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
481 | MTL_ENABLE_DEBUG_INFO = YES;
482 | ONLY_ACTIVE_ARCH = YES;
483 | SDKROOT = iphoneos;
484 | TARGETED_DEVICE_FAMILY = "1,2";
485 | };
486 | name = Debug;
487 | };
488 | 97C147041CF9000F007C117D /* Release */ = {
489 | isa = XCBuildConfiguration;
490 | buildSettings = {
491 | ALWAYS_SEARCH_USER_PATHS = NO;
492 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
493 | CLANG_ANALYZER_NONNULL = YES;
494 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
495 | CLANG_CXX_LIBRARY = "libc++";
496 | CLANG_ENABLE_MODULES = YES;
497 | CLANG_ENABLE_OBJC_ARC = YES;
498 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
499 | CLANG_WARN_BOOL_CONVERSION = YES;
500 | CLANG_WARN_COMMA = YES;
501 | CLANG_WARN_CONSTANT_CONVERSION = YES;
502 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
503 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
504 | CLANG_WARN_EMPTY_BODY = YES;
505 | CLANG_WARN_ENUM_CONVERSION = YES;
506 | CLANG_WARN_INFINITE_RECURSION = YES;
507 | CLANG_WARN_INT_CONVERSION = YES;
508 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
509 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
510 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
511 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
512 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
513 | CLANG_WARN_STRICT_PROTOTYPES = YES;
514 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
515 | CLANG_WARN_UNREACHABLE_CODE = YES;
516 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
517 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
518 | COPY_PHASE_STRIP = NO;
519 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
520 | ENABLE_NS_ASSERTIONS = NO;
521 | ENABLE_STRICT_OBJC_MSGSEND = YES;
522 | ENABLE_USER_SCRIPT_SANDBOXING = NO;
523 | GCC_C_LANGUAGE_STANDARD = gnu99;
524 | GCC_NO_COMMON_BLOCKS = YES;
525 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
526 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
527 | GCC_WARN_UNDECLARED_SELECTOR = YES;
528 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
529 | GCC_WARN_UNUSED_FUNCTION = YES;
530 | GCC_WARN_UNUSED_VARIABLE = YES;
531 | IPHONEOS_DEPLOYMENT_TARGET = 12.0;
532 | MTL_ENABLE_DEBUG_INFO = NO;
533 | SDKROOT = iphoneos;
534 | SUPPORTED_PLATFORMS = iphoneos;
535 | SWIFT_COMPILATION_MODE = wholemodule;
536 | SWIFT_OPTIMIZATION_LEVEL = "-O";
537 | TARGETED_DEVICE_FAMILY = "1,2";
538 | VALIDATE_PRODUCT = YES;
539 | };
540 | name = Release;
541 | };
542 | 97C147061CF9000F007C117D /* Debug */ = {
543 | isa = XCBuildConfiguration;
544 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
545 | buildSettings = {
546 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
547 | CLANG_ENABLE_MODULES = YES;
548 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
549 | DEVELOPMENT_TEAM = C2ZWJXER5Z;
550 | ENABLE_BITCODE = NO;
551 | INFOPLIST_FILE = Runner/Info.plist;
552 | LD_RUNPATH_SEARCH_PATHS = (
553 | "$(inherited)",
554 | "@executable_path/Frameworks",
555 | );
556 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow;
557 | PRODUCT_NAME = "$(TARGET_NAME)";
558 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
559 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
560 | SWIFT_VERSION = 5.0;
561 | VERSIONING_SYSTEM = "apple-generic";
562 | };
563 | name = Debug;
564 | };
565 | 97C147071CF9000F007C117D /* Release */ = {
566 | isa = XCBuildConfiguration;
567 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
568 | buildSettings = {
569 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
570 | CLANG_ENABLE_MODULES = YES;
571 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
572 | DEVELOPMENT_TEAM = C2ZWJXER5Z;
573 | ENABLE_BITCODE = NO;
574 | INFOPLIST_FILE = Runner/Info.plist;
575 | LD_RUNPATH_SEARCH_PATHS = (
576 | "$(inherited)",
577 | "@executable_path/Frameworks",
578 | );
579 | PRODUCT_BUNDLE_IDENTIFIER = com.example.payflow;
580 | PRODUCT_NAME = "$(TARGET_NAME)";
581 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
582 | SWIFT_VERSION = 5.0;
583 | VERSIONING_SYSTEM = "apple-generic";
584 | };
585 | name = Release;
586 | };
587 | /* End XCBuildConfiguration section */
588 |
589 | /* Begin XCConfigurationList section */
590 | 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
591 | isa = XCConfigurationList;
592 | buildConfigurations = (
593 | 331C8088294A63A400263BE5 /* Debug */,
594 | 331C8089294A63A400263BE5 /* Release */,
595 | 331C808A294A63A400263BE5 /* Profile */,
596 | );
597 | defaultConfigurationIsVisible = 0;
598 | defaultConfigurationName = Release;
599 | };
600 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
601 | isa = XCConfigurationList;
602 | buildConfigurations = (
603 | 97C147031CF9000F007C117D /* Debug */,
604 | 97C147041CF9000F007C117D /* Release */,
605 | 249021D3217E4FDB00AE95B9 /* Profile */,
606 | );
607 | defaultConfigurationIsVisible = 0;
608 | defaultConfigurationName = Release;
609 | };
610 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
611 | isa = XCConfigurationList;
612 | buildConfigurations = (
613 | 97C147061CF9000F007C117D /* Debug */,
614 | 97C147071CF9000F007C117D /* Release */,
615 | 249021D4217E4FDB00AE95B9 /* Profile */,
616 | );
617 | defaultConfigurationIsVisible = 0;
618 | defaultConfigurationName = Release;
619 | };
620 | /* End XCConfigurationList section */
621 | };
622 | rootObject = 97C146E61CF9000F007C117D /* Project object */;
623 | }
624 |
--------------------------------------------------------------------------------