Commit 3b263c8beedc8a0c26e3aa03de0701532a458d84

Authored by weixin_45529955
1 parent d0e0e284

发短信插件放在本地,需要更改部分代码

Showing 100 changed files with 3406 additions and 95 deletions

Too many changes to show.

To preserve performance only 100 of 100+ files are displayed.

@@ -91,9 +91,9 @@ class Utils { @@ -91,9 +91,9 @@ class Utils {
91 static void launchAppGallery() async { 91 static void launchAppGallery() async {
92 final appid = Constant.ohos_app_id; //可以是应用id、也可以是鸿蒙应用包名 92 final appid = Constant.ohos_app_id; //可以是应用id、也可以是鸿蒙应用包名
93 // final url='store://appgallery.huawei.com/app/detail?id=$appid'; 93 // final url='store://appgallery.huawei.com/app/detail?id=$appid';
94 - 94 +// &channelId=LAUNCHERSHARE
95 final url = 95 final url =
96 - 'store://appgallery.huawei.com/app/detail?id=com.jd.hm.mall&channelId=LAUNCHERSHARE'; 96 + 'store://appgallery.huawei.com/app/detail?id=com.naji.one_key_harmonyOS';
97 97
98 try { 98 try {
99 await launchUrl(Uri.parse(url)); 99 await launchUrl(Uri.parse(url));
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
@@ -37,10 +37,10 @@ packages: @@ -37,10 +37,10 @@ packages:
37 dependency: transitive 37 dependency: transitive
38 description: 38 description:
39 name: collection 39 name: collection
40 - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 40 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
41 url: "https://pub.flutter-io.cn" 41 url: "https://pub.flutter-io.cn"
42 source: hosted 42 source: hosted
43 - version: "1.19.0" 43 + version: "1.18.0"
44 fake_async: 44 fake_async:
45 dependency: transitive 45 dependency: transitive
46 description: 46 description:
@@ -71,18 +71,18 @@ packages: @@ -71,18 +71,18 @@ packages:
71 dependency: transitive 71 dependency: transitive
72 description: 72 description:
73 name: leak_tracker 73 name: leak_tracker
74 - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" 74 + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
75 url: "https://pub.flutter-io.cn" 75 url: "https://pub.flutter-io.cn"
76 source: hosted 76 source: hosted
77 - version: "10.0.7" 77 + version: "10.0.4"
78 leak_tracker_flutter_testing: 78 leak_tracker_flutter_testing:
79 dependency: transitive 79 dependency: transitive
80 description: 80 description:
81 name: leak_tracker_flutter_testing 81 name: leak_tracker_flutter_testing
82 - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" 82 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
83 url: "https://pub.flutter-io.cn" 83 url: "https://pub.flutter-io.cn"
84 source: hosted 84 source: hosted
85 - version: "3.0.8" 85 + version: "3.0.3"
86 leak_tracker_testing: 86 leak_tracker_testing:
87 dependency: transitive 87 dependency: transitive
88 description: 88 description:
@@ -111,18 +111,18 @@ packages: @@ -111,18 +111,18 @@ packages:
111 dependency: transitive 111 dependency: transitive
112 description: 112 description:
113 name: material_color_utilities 113 name: material_color_utilities
114 - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 114 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
115 url: "https://pub.flutter-io.cn" 115 url: "https://pub.flutter-io.cn"
116 source: hosted 116 source: hosted
117 - version: "0.11.1" 117 + version: "0.8.0"
118 meta: 118 meta:
119 dependency: transitive 119 dependency: transitive
120 description: 120 description:
121 name: meta 121 name: meta
122 - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 122 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
123 url: "https://pub.flutter-io.cn" 123 url: "https://pub.flutter-io.cn"
124 source: hosted 124 source: hosted
125 - version: "1.15.0" 125 + version: "1.12.0"
126 path: 126 path:
127 dependency: transitive 127 dependency: transitive
128 description: 128 description:
@@ -143,7 +143,7 @@ packages: @@ -143,7 +143,7 @@ packages:
143 dependency: transitive 143 dependency: transitive
144 description: flutter 144 description: flutter
145 source: sdk 145 source: sdk
146 - version: "0.0.0" 146 + version: "0.0.99"
147 source_span: 147 source_span:
148 dependency: transitive 148 dependency: transitive
149 description: 149 description:
@@ -156,10 +156,10 @@ packages: @@ -156,10 +156,10 @@ packages:
156 dependency: transitive 156 dependency: transitive
157 description: 157 description:
158 name: stack_trace 158 name: stack_trace
159 - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 159 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
160 url: "https://pub.flutter-io.cn" 160 url: "https://pub.flutter-io.cn"
161 source: hosted 161 source: hosted
162 - version: "1.12.0" 162 + version: "1.11.1"
163 stream_channel: 163 stream_channel:
164 dependency: transitive 164 dependency: transitive
165 description: 165 description:
@@ -172,10 +172,10 @@ packages: @@ -172,10 +172,10 @@ packages:
172 dependency: transitive 172 dependency: transitive
173 description: 173 description:
174 name: string_scanner 174 name: string_scanner
175 - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 175 + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
176 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
177 source: hosted 177 source: hosted
178 - version: "1.3.0" 178 + version: "1.2.0"
179 term_glyph: 179 term_glyph:
180 dependency: transitive 180 dependency: transitive
181 description: 181 description:
@@ -188,10 +188,10 @@ packages: @@ -188,10 +188,10 @@ packages:
188 dependency: transitive 188 dependency: transitive
189 description: 189 description:
190 name: test_api 190 name: test_api
191 - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" 191 + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
192 url: "https://pub.flutter-io.cn" 192 url: "https://pub.flutter-io.cn"
193 source: hosted 193 source: hosted
194 - version: "0.7.3" 194 + version: "0.7.0"
195 vector_math: 195 vector_math:
196 dependency: transitive 196 dependency: transitive
197 description: 197 description:
@@ -204,10 +204,10 @@ packages: @@ -204,10 +204,10 @@ packages:
204 dependency: transitive 204 dependency: transitive
205 description: 205 description:
206 name: vm_service 206 name: vm_service
207 - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 207 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
208 url: "https://pub.flutter-io.cn" 208 url: "https://pub.flutter-io.cn"
209 source: hosted 209 source: hosted
210 - version: "14.3.0" 210 + version: "14.2.1"
211 sdks: 211 sdks:
212 - dart: ">=3.4.0 <4.0.0" 212 + dart: ">=3.3.0 <4.0.0"
213 flutter: ">=3.18.0-18.0.pre.54" 213 flutter: ">=3.18.0-18.0.pre.54"
@@ -37,10 +37,10 @@ packages: @@ -37,10 +37,10 @@ packages:
37 dependency: transitive 37 dependency: transitive
38 description: 38 description:
39 name: collection 39 name: collection
40 - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 40 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
41 url: "https://pub.flutter-io.cn" 41 url: "https://pub.flutter-io.cn"
42 source: hosted 42 source: hosted
43 - version: "1.19.0" 43 + version: "1.18.0"
44 fake_async: 44 fake_async:
45 dependency: transitive 45 dependency: transitive
46 description: 46 description:
@@ -79,18 +79,18 @@ packages: @@ -79,18 +79,18 @@ packages:
79 dependency: transitive 79 dependency: transitive
80 description: 80 description:
81 name: leak_tracker 81 name: leak_tracker
82 - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" 82 + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
83 url: "https://pub.flutter-io.cn" 83 url: "https://pub.flutter-io.cn"
84 source: hosted 84 source: hosted
85 - version: "10.0.7" 85 + version: "10.0.4"
86 leak_tracker_flutter_testing: 86 leak_tracker_flutter_testing:
87 dependency: transitive 87 dependency: transitive
88 description: 88 description:
89 name: leak_tracker_flutter_testing 89 name: leak_tracker_flutter_testing
90 - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" 90 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
91 url: "https://pub.flutter-io.cn" 91 url: "https://pub.flutter-io.cn"
92 source: hosted 92 source: hosted
93 - version: "3.0.8" 93 + version: "3.0.3"
94 leak_tracker_testing: 94 leak_tracker_testing:
95 dependency: transitive 95 dependency: transitive
96 description: 96 description:
@@ -119,18 +119,18 @@ packages: @@ -119,18 +119,18 @@ packages:
119 dependency: transitive 119 dependency: transitive
120 description: 120 description:
121 name: material_color_utilities 121 name: material_color_utilities
122 - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 122 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
123 url: "https://pub.flutter-io.cn" 123 url: "https://pub.flutter-io.cn"
124 source: hosted 124 source: hosted
125 - version: "0.11.1" 125 + version: "0.8.0"
126 meta: 126 meta:
127 dependency: transitive 127 dependency: transitive
128 description: 128 description:
129 name: meta 129 name: meta
130 - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 130 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
131 url: "https://pub.flutter-io.cn" 131 url: "https://pub.flutter-io.cn"
132 source: hosted 132 source: hosted
133 - version: "1.15.0" 133 + version: "1.12.0"
134 path: 134 path:
135 dependency: transitive 135 dependency: transitive
136 description: 136 description:
@@ -143,7 +143,7 @@ packages: @@ -143,7 +143,7 @@ packages:
143 dependency: transitive 143 dependency: transitive
144 description: flutter 144 description: flutter
145 source: sdk 145 source: sdk
146 - version: "0.0.0" 146 + version: "0.0.99"
147 source_span: 147 source_span:
148 dependency: transitive 148 dependency: transitive
149 description: 149 description:
@@ -156,10 +156,10 @@ packages: @@ -156,10 +156,10 @@ packages:
156 dependency: transitive 156 dependency: transitive
157 description: 157 description:
158 name: stack_trace 158 name: stack_trace
159 - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 159 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
160 url: "https://pub.flutter-io.cn" 160 url: "https://pub.flutter-io.cn"
161 source: hosted 161 source: hosted
162 - version: "1.12.0" 162 + version: "1.11.1"
163 stream_channel: 163 stream_channel:
164 dependency: transitive 164 dependency: transitive
165 description: 165 description:
@@ -172,10 +172,10 @@ packages: @@ -172,10 +172,10 @@ packages:
172 dependency: transitive 172 dependency: transitive
173 description: 173 description:
174 name: string_scanner 174 name: string_scanner
175 - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 175 + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
176 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
177 source: hosted 177 source: hosted
178 - version: "1.3.0" 178 + version: "1.2.0"
179 term_glyph: 179 term_glyph:
180 dependency: transitive 180 dependency: transitive
181 description: 181 description:
@@ -188,10 +188,10 @@ packages: @@ -188,10 +188,10 @@ packages:
188 dependency: transitive 188 dependency: transitive
189 description: 189 description:
190 name: test_api 190 name: test_api
191 - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" 191 + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
192 url: "https://pub.flutter-io.cn" 192 url: "https://pub.flutter-io.cn"
193 source: hosted 193 source: hosted
194 - version: "0.7.3" 194 + version: "0.7.0"
195 vector_math: 195 vector_math:
196 dependency: transitive 196 dependency: transitive
197 description: 197 description:
@@ -204,10 +204,10 @@ packages: @@ -204,10 +204,10 @@ packages:
204 dependency: transitive 204 dependency: transitive
205 description: 205 description:
206 name: vm_service 206 name: vm_service
207 - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 207 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
208 url: "https://pub.flutter-io.cn" 208 url: "https://pub.flutter-io.cn"
209 source: hosted 209 source: hosted
210 - version: "14.3.0" 210 + version: "14.2.1"
211 sdks: 211 sdks:
212 - dart: ">=3.4.0 <4.0.0" 212 + dart: ">=3.3.0 <4.0.0"
213 flutter: ">=3.18.0-18.0.pre.54" 213 flutter: ">=3.18.0-18.0.pre.54"
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
1 sdk.dir=/Users/wangdongni/Library/Android/sdk 1 sdk.dir=/Users/wangdongni/Library/Android/sdk
2 -flutter.sdk=/Users/wangdongni/fvm/versions/3.27.3  
  2 +flutter.sdk=/Users/wangdongni/fvm/versions/custom_3.27.4-ohos-dev
@@ -37,10 +37,10 @@ packages: @@ -37,10 +37,10 @@ packages:
37 dependency: transitive 37 dependency: transitive
38 description: 38 description:
39 name: collection 39 name: collection
40 - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 40 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
41 url: "https://pub.flutter-io.cn" 41 url: "https://pub.flutter-io.cn"
42 source: hosted 42 source: hosted
43 - version: "1.19.0" 43 + version: "1.18.0"
44 cupertino_icons: 44 cupertino_icons:
45 dependency: "direct main" 45 dependency: "direct main"
46 description: 46 description:
@@ -94,18 +94,18 @@ packages: @@ -94,18 +94,18 @@ packages:
94 dependency: transitive 94 dependency: transitive
95 description: 95 description:
96 name: leak_tracker 96 name: leak_tracker
97 - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" 97 + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
98 url: "https://pub.flutter-io.cn" 98 url: "https://pub.flutter-io.cn"
99 source: hosted 99 source: hosted
100 - version: "10.0.7" 100 + version: "10.0.4"
101 leak_tracker_flutter_testing: 101 leak_tracker_flutter_testing:
102 dependency: transitive 102 dependency: transitive
103 description: 103 description:
104 name: leak_tracker_flutter_testing 104 name: leak_tracker_flutter_testing
105 - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" 105 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
106 url: "https://pub.flutter-io.cn" 106 url: "https://pub.flutter-io.cn"
107 source: hosted 107 source: hosted
108 - version: "3.0.8" 108 + version: "3.0.3"
109 leak_tracker_testing: 109 leak_tracker_testing:
110 dependency: transitive 110 dependency: transitive
111 description: 111 description:
@@ -142,18 +142,18 @@ packages: @@ -142,18 +142,18 @@ packages:
142 dependency: transitive 142 dependency: transitive
143 description: 143 description:
144 name: material_color_utilities 144 name: material_color_utilities
145 - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 145 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
146 url: "https://pub.flutter-io.cn" 146 url: "https://pub.flutter-io.cn"
147 source: hosted 147 source: hosted
148 - version: "0.11.1" 148 + version: "0.8.0"
149 meta: 149 meta:
150 dependency: transitive 150 dependency: transitive
151 description: 151 description:
152 name: meta 152 name: meta
153 - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 153 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
154 url: "https://pub.flutter-io.cn" 154 url: "https://pub.flutter-io.cn"
155 source: hosted 155 source: hosted
156 - version: "1.15.0" 156 + version: "1.12.0"
157 path: 157 path:
158 dependency: transitive 158 dependency: transitive
159 description: 159 description:
@@ -166,7 +166,7 @@ packages: @@ -166,7 +166,7 @@ packages:
166 dependency: transitive 166 dependency: transitive
167 description: flutter 167 description: flutter
168 source: sdk 168 source: sdk
169 - version: "0.0.0" 169 + version: "0.0.99"
170 source_span: 170 source_span:
171 dependency: transitive 171 dependency: transitive
172 description: 172 description:
@@ -179,10 +179,10 @@ packages: @@ -179,10 +179,10 @@ packages:
179 dependency: transitive 179 dependency: transitive
180 description: 180 description:
181 name: stack_trace 181 name: stack_trace
182 - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 182 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
183 url: "https://pub.flutter-io.cn" 183 url: "https://pub.flutter-io.cn"
184 source: hosted 184 source: hosted
185 - version: "1.12.0" 185 + version: "1.11.1"
186 stream_channel: 186 stream_channel:
187 dependency: transitive 187 dependency: transitive
188 description: 188 description:
@@ -195,10 +195,10 @@ packages: @@ -195,10 +195,10 @@ packages:
195 dependency: transitive 195 dependency: transitive
196 description: 196 description:
197 name: string_scanner 197 name: string_scanner
198 - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 198 + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
199 url: "https://pub.flutter-io.cn" 199 url: "https://pub.flutter-io.cn"
200 source: hosted 200 source: hosted
201 - version: "1.3.0" 201 + version: "1.2.0"
202 term_glyph: 202 term_glyph:
203 dependency: transitive 203 dependency: transitive
204 description: 204 description:
@@ -211,10 +211,10 @@ packages: @@ -211,10 +211,10 @@ packages:
211 dependency: transitive 211 dependency: transitive
212 description: 212 description:
213 name: test_api 213 name: test_api
214 - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" 214 + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
215 url: "https://pub.flutter-io.cn" 215 url: "https://pub.flutter-io.cn"
216 source: hosted 216 source: hosted
217 - version: "0.7.3" 217 + version: "0.7.0"
218 vector_math: 218 vector_math:
219 dependency: transitive 219 dependency: transitive
220 description: 220 description:
@@ -227,10 +227,10 @@ packages: @@ -227,10 +227,10 @@ packages:
227 dependency: transitive 227 dependency: transitive
228 description: 228 description:
229 name: vm_service 229 name: vm_service
230 - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 230 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
231 url: "https://pub.flutter-io.cn" 231 url: "https://pub.flutter-io.cn"
232 source: hosted 232 source: hosted
233 - version: "14.3.0" 233 + version: "14.2.1"
234 sdks: 234 sdks:
235 - dart: ">=3.4.0 <4.0.0" 235 + dart: ">=3.3.0 <4.0.0"
236 flutter: ">=3.18.0-18.0.pre.54" 236 flutter: ">=3.18.0-18.0.pre.54"
@@ -37,10 +37,10 @@ packages: @@ -37,10 +37,10 @@ packages:
37 dependency: transitive 37 dependency: transitive
38 description: 38 description:
39 name: collection 39 name: collection
40 - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf 40 + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
41 url: "https://pub.flutter-io.cn" 41 url: "https://pub.flutter-io.cn"
42 source: hosted 42 source: hosted
43 - version: "1.19.0" 43 + version: "1.18.0"
44 fake_async: 44 fake_async:
45 dependency: transitive 45 dependency: transitive
46 description: 46 description:
@@ -71,18 +71,18 @@ packages: @@ -71,18 +71,18 @@ packages:
71 dependency: transitive 71 dependency: transitive
72 description: 72 description:
73 name: leak_tracker 73 name: leak_tracker
74 - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" 74 + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
75 url: "https://pub.flutter-io.cn" 75 url: "https://pub.flutter-io.cn"
76 source: hosted 76 source: hosted
77 - version: "10.0.7" 77 + version: "10.0.4"
78 leak_tracker_flutter_testing: 78 leak_tracker_flutter_testing:
79 dependency: transitive 79 dependency: transitive
80 description: 80 description:
81 name: leak_tracker_flutter_testing 81 name: leak_tracker_flutter_testing
82 - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" 82 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
83 url: "https://pub.flutter-io.cn" 83 url: "https://pub.flutter-io.cn"
84 source: hosted 84 source: hosted
85 - version: "3.0.8" 85 + version: "3.0.3"
86 leak_tracker_testing: 86 leak_tracker_testing:
87 dependency: transitive 87 dependency: transitive
88 description: 88 description:
@@ -119,18 +119,18 @@ packages: @@ -119,18 +119,18 @@ packages:
119 dependency: transitive 119 dependency: transitive
120 description: 120 description:
121 name: material_color_utilities 121 name: material_color_utilities
122 - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 122 + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
123 url: "https://pub.flutter-io.cn" 123 url: "https://pub.flutter-io.cn"
124 source: hosted 124 source: hosted
125 - version: "0.11.1" 125 + version: "0.8.0"
126 meta: 126 meta:
127 dependency: transitive 127 dependency: transitive
128 description: 128 description:
129 name: meta 129 name: meta
130 - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 130 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
131 url: "https://pub.flutter-io.cn" 131 url: "https://pub.flutter-io.cn"
132 source: hosted 132 source: hosted
133 - version: "1.15.0" 133 + version: "1.12.0"
134 path: 134 path:
135 dependency: transitive 135 dependency: transitive
136 description: 136 description:
@@ -143,7 +143,7 @@ packages: @@ -143,7 +143,7 @@ packages:
143 dependency: transitive 143 dependency: transitive
144 description: flutter 144 description: flutter
145 source: sdk 145 source: sdk
146 - version: "0.0.0" 146 + version: "0.0.99"
147 source_span: 147 source_span:
148 dependency: transitive 148 dependency: transitive
149 description: 149 description:
@@ -156,10 +156,10 @@ packages: @@ -156,10 +156,10 @@ packages:
156 dependency: transitive 156 dependency: transitive
157 description: 157 description:
158 name: stack_trace 158 name: stack_trace
159 - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" 159 + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
160 url: "https://pub.flutter-io.cn" 160 url: "https://pub.flutter-io.cn"
161 source: hosted 161 source: hosted
162 - version: "1.12.0" 162 + version: "1.11.1"
163 stream_channel: 163 stream_channel:
164 dependency: transitive 164 dependency: transitive
165 description: 165 description:
@@ -172,10 +172,10 @@ packages: @@ -172,10 +172,10 @@ packages:
172 dependency: transitive 172 dependency: transitive
173 description: 173 description:
174 name: string_scanner 174 name: string_scanner
175 - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" 175 + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
176 url: "https://pub.flutter-io.cn" 176 url: "https://pub.flutter-io.cn"
177 source: hosted 177 source: hosted
178 - version: "1.3.0" 178 + version: "1.2.0"
179 term_glyph: 179 term_glyph:
180 dependency: transitive 180 dependency: transitive
181 description: 181 description:
@@ -188,10 +188,10 @@ packages: @@ -188,10 +188,10 @@ packages:
188 dependency: transitive 188 dependency: transitive
189 description: 189 description:
190 name: test_api 190 name: test_api
191 - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" 191 + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
192 url: "https://pub.flutter-io.cn" 192 url: "https://pub.flutter-io.cn"
193 source: hosted 193 source: hosted
194 - version: "0.7.3" 194 + version: "0.7.0"
195 vector_math: 195 vector_math:
196 dependency: transitive 196 dependency: transitive
197 description: 197 description:
@@ -204,10 +204,10 @@ packages: @@ -204,10 +204,10 @@ packages:
204 dependency: transitive 204 dependency: transitive
205 description: 205 description:
206 name: vm_service 206 name: vm_service
207 - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b 207 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
208 url: "https://pub.flutter-io.cn" 208 url: "https://pub.flutter-io.cn"
209 source: hosted 209 source: hosted
210 - version: "14.3.0" 210 + version: "14.2.1"
211 sdks: 211 sdks:
212 - dart: ">=3.4.0 <4.0.0" 212 + dart: ">=3.3.0 <4.0.0"
213 flutter: ">=3.18.0-18.0.pre.54" 213 flutter: ">=3.18.0-18.0.pre.54"
@@ -2,8 +2,8 @@ @@ -2,8 +2,8 @@
2 "app": { 2 "app": {
3 "bundleName": "com.naji.one_key_harmonyOS", 3 "bundleName": "com.naji.one_key_harmonyOS",
4 "debug": true, 4 "debug": true,
5 - "versionCode": 103,  
6 - "versionName": "1.0.3", 5 + "versionCode": 1,
  6 + "versionName": "1.0.0",
7 "minAPIVersion": 50100018, 7 "minAPIVersion": 50100018,
8 "targetAPIVersion": 60000020, 8 "targetAPIVersion": 60000020,
9 "apiReleaseType": "Release", 9 "apiReleaseType": "Release",
  1 +# Auto detect text files and perform LF normalization
  2 +* text=auto
  1 +name: github pages
  2 +
  3 +on:
  4 + push:
  5 + branches:
  6 + - master
  7 +
  8 +jobs:
  9 + deploy:
  10 + runs-on: ubuntu-18.04
  11 + steps:
  12 + - uses: actions/checkout@v2
  13 +
  14 + - name: Setup Flutter
  15 + uses: subosito/flutter-action@v1
  16 + with:
  17 + channel: 'dev'
  18 +
  19 + - name: Install
  20 + run: |
  21 + flutter config --enable-web
  22 + flutter pub get
  23 + - name: Build
  24 + run: cd example && flutter build web
  25 +
  26 + - name: Deploy
  27 + uses: peaceiris/actions-gh-pages@v3
  28 + with:
  29 + deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
  30 + publish_dir: ./example/build/web
  1 +# Miscellaneous
  2 +*.class
  3 +*.lock
  4 +*.log
  5 +*.pyc
  6 +*.swp
  7 +.DS_Store
  8 +.atom/
  9 +.buildlog/
  10 +.history
  11 +.svn/
  12 +
  13 +# IntelliJ related
  14 +*.iml
  15 +*.ipr
  16 +*.iws
  17 +.idea/
  18 +
  19 +# Visual Studio Code related
  20 +.classpath
  21 +.project
  22 +.settings/
  23 +.vscode/
  24 +
  25 +# Flutter repo-specific
  26 +/bin/cache/
  27 +/bin/mingit/
  28 +/dev/benchmarks/mega_gallery/
  29 +/dev/bots/.recipe_deps
  30 +/dev/bots/android_tools/
  31 +/dev/docs/doc/
  32 +/dev/docs/flutter.docs.zip
  33 +/dev/docs/lib/
  34 +/dev/docs/pubspec.yaml
  35 +/dev/integration_tests/**/xcuserdata
  36 +/dev/integration_tests/**/Pods
  37 +/packages/flutter/coverage/
  38 +version
  39 +
  40 +# packages file containing multi-root paths
  41 +.packages.generated
  42 +
  43 +# Flutter/Dart/Pub related
  44 +**/doc/api/
  45 +.dart_tool/
  46 +.flutter-plugins
  47 +.flutter-plugins-dependencies
  48 +.packages
  49 +.pub-cache/
  50 +.pub/
  51 +build/
  52 +flutter_*.png
  53 +linked_*.ds
  54 +unlinked.ds
  55 +unlinked_spec.ds
  56 +
  57 +# Android related
  58 +**/android/**/gradle-wrapper.jar
  59 +**/android/.gradle
  60 +**/android/captures/
  61 +**/android/gradlew
  62 +**/android/gradlew.bat
  63 +**/android/local.properties
  64 +**/android/**/GeneratedPluginRegistrant.java
  65 +**/android/key.properties
  66 +*.jks
  67 +
  68 +# iOS/XCode related
  69 +**/ios/**/*.mode1v3
  70 +**/ios/**/*.mode2v3
  71 +**/ios/**/*.moved-aside
  72 +**/ios/**/*.pbxuser
  73 +**/ios/**/*.perspectivev3
  74 +**/ios/**/*sync/
  75 +**/ios/**/.sconsign.dblite
  76 +**/ios/**/.tags*
  77 +**/ios/**/.vagrant/
  78 +**/ios/**/DerivedData/
  79 +**/ios/**/Icon?
  80 +**/ios/**/Pods/
  81 +**/ios/**/.symlinks/
  82 +**/ios/**/profile
  83 +**/ios/**/xcuserdata
  84 +**/ios/.generated/
  85 +**/ios/Flutter/App.framework
  86 +**/ios/Flutter/Flutter.framework
  87 +**/ios/Flutter/Flutter.podspec
  88 +**/ios/Flutter/Generated.xcconfig
  89 +**/ios/Flutter/app.flx
  90 +**/ios/Flutter/app.zip
  91 +**/ios/Flutter/flutter_assets/
  92 +**/ios/Flutter/flutter_export_environment.sh
  93 +**/ios/ServiceDefinitions.json
  94 +**/ios/Runner/GeneratedPluginRegistrant.*
  95 +
  96 +# ohos
  97 +**/ohos/.idea/
  98 +**/ohos/**/.hvigor/
  99 +**/ohos/**/build/
  100 +**/ohos/**/oh_modules/
  101 +**/ohos/**/local.properties
  102 +**/ohos/**/flutter_embedding.har
  103 +**/ohos/**/oh-package-lock.json5
  104 +
  105 +# macOS
  106 +**/macos/Flutter/GeneratedPluginRegistrant.swift
  107 +**/macos/Flutter/Flutter-Debug.xcconfig
  108 +**/macos/Flutter/Flutter-Release.xcconfig
  109 +**/macos/Flutter/Flutter-Profile.xcconfig
  110 +
  111 +# Coverage
  112 +coverage/
  113 +
  114 +# Symbols
  115 +app.*.symbols
  116 +
  117 +# Exceptions to above rules.
  118 +!**/ios/**/default.mode1v3
  119 +!**/ios/**/default.mode2v3
  120 +!**/ios/**/default.pbxuser
  121 +!**/ios/**/default.perspectivev3
  122 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
  123 +!/dev/ci/**/Gemfile.lock
  1 +# This file tracks properties of this Flutter project.
  2 +# Used by Flutter tool to assess capabilities and perform upgrades etc.
  3 +#
  4 +# This file should be version controlled and should not be manually edited.
  5 +
  6 +version:
  7 + revision: 8be33b97e62dd51fc4799e611632ce78875ff370
  8 + channel: dev
  1 +# 2.3.3
  2 +
  3 +* Adding ability to send SMS directly on Android (#57).
  4 +
  5 +# 2.3.2
  6 +
  7 +* Update Android plugin to use V2 embedding.
  8 +
  9 +## 2.3.1
  10 +
  11 +* Full null safety
  12 +* Fixing support for web
  13 +* Removing macos folder
  14 +* Fixing example
  15 +
  16 +## 2.3.0
  17 +
  18 +* Null Safety (1 dependency needs to be upgraded for full null safety: flutter_user_agent)
  19 +
  20 +## 2.2.0
  21 +
  22 +* Upgrading dependencies
  23 +* Updating example (lint issues)
  24 +
  25 +## 2.1.1
  26 +
  27 +* Fixing Issue with Web
  28 +
  29 +## 2.1.0
  30 +
  31 +* Fixing Bugs with iOS
  32 +* Adding URL fallback
  33 +
  34 +## 2.0.0
  35 +
  36 +* Adding Online Demo
  37 +* Adding Support for Web
  38 +
  39 +## 1.1.0
  40 +
  41 +* Updating for latest ios/android flutter plugin template
  42 +
  43 +## 1.0.1
  44 +
  45 +* Android result added
  46 +
  47 +## 1.0.0 * 04.29.2019
  48 +
  49 +* Reduce minSdkVersion to 16
  50 +* Fix crash on android when `recipients` is empty (substring on empty string)
  51 +* Add `canSendSMS` API
  52 + - Checks if device is SMS capable (iOS and Android)
  53 + - Checks if `smsto:` Intent is resolved and resulting activity exported (Android)
  54 +* sendSMS: Return error when device is not SMS capable (Android)
  55 +* Remove unused AndroidX dependency
  56 +* Use Intent.ACTION_SENDTO and Intent.EXTRA_TEXT to increase message app support coverage
  57 +
  58 +## 0.2.0 * 04.06.2019
  59 +
  60 +* Updating example to be desktop aware
  61 +
  62 +## 0.1.0
  63 +
  64 +* Fix for Android Multiple People
  65 +* Fixes Issues #8 and #4
  66 +
  67 +## 0.0.5
  68 +
  69 +* Removed SMS Permissions on Android
  70 +
  71 +## 0.0.4
  72 +
  73 +* Bug Fix Send Result
  74 +* Added Can Send Text
  75 +
  76 +## 0.0.3
  77 +
  78 +* Bug Fix for iOS Simulator Error
  79 +
  80 +## 0.0.2
  81 +
  82 +* Fixing Version
  83 +
  84 +## 0.0.1
  85 +
  86 +* SMS and MMS for Android and iOS
  1 +## Committers列表
  2 +
  3 +### 以下是此项目的committer人员
  4 +不区分先后顺序
  5 +
  6 +- [zjzhu](https://gitee.com/appproject)
  7 +- [aibin](https://gitee.com/binai)
  8 +- [lihui](https://gitee.com/lihui868)
  9 +- [gxzmf](https://gitee.com/gxzmf)
  1 +MIT License
  2 +
  3 +Copyright (c) 2018 Rody Davis
  4 +
  5 +Permission is hereby granted, free of charge, to any person obtaining a copy
  6 +of this software and associated documentation files (the "Software"), to deal
  7 +in the Software without restriction, including without limitation the rights
  8 +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  9 +copies of the Software, and to permit persons to whom the Software is
  10 +furnished to do so, subject to the following conditions:
  11 +
  12 +The above copyright notice and this permission notice shall be included in all
  13 +copies or substantial portions of the Software.
  14 +
  15 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17 +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  18 +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19 +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  20 +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  21 +SOFTWARE.
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!-- Copyright (c) 2021 Huawei Device Co., Ltd.
  3 +
  4 + Licensed under the Apache License, Version 2.0 (the "License");
  5 + you may not use this file except in compliance with the License.
  6 + You may obtain a copy of the License at
  7 +
  8 + http://www.apache.org/licenses/LICENSE-2.0
  9 +
  10 + Unless required by applicable law or agreed to in writing, software
  11 + distributed under the License is distributed on an "AS IS" BASIS,
  12 + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + See the License for the specific language governing permissions and
  14 + limitations under the License.
  15 +
  16 + This is the configuration file template for OpenHarmony OSS Audit Tool, please copy it to your project root dir and modify it refer to OpenHarmony/tools_oat/README.
  17 + All configurations in this file will be merged to OAT-Default.xml, if you have any questions or concerns, please create issue in OpenHarmony/tools_oat and @jalenchen or chenyaxun.
  18 +
  19 + licensefile:
  20 + 1.If the project don't have "LICENSE" in root dir, please define all the license files in this project in , OAT will check license files according to this rule.
  21 +
  22 + policylist:
  23 + 1. policy: If the OAT-Default.xml policies do not meet your requirements, please add policies here.
  24 + 2. policyitem: The fields type, name, path, desc is required, and the fields rule, group, filefilter is optional,the default value is:
  25 + <policyitem type="" name="" path="" desc="" rule="may" group="defaultGroup" filefilter="defaultPolicyFilter"/>
  26 + 3. policyitem type:
  27 + "compatibility" is used to check license compatibility in the specified path;
  28 + "license" is used to check source license header in the specified path;
  29 + "copyright" is used to check source copyright header in the specified path;
  30 + "import" is used to check source dependency in the specified path, such as import ... ,include ...
  31 + "filetype" is used to check file type in the specified path, supported file types: archive, binary
  32 + "filename" is used to check whether the specified file exists in the specified path(projectroot means the root dir of the project), supported file names: LICENSE, README, README.OpenSource
  33 + 4. policyitem name: This field is used for define the license, copyright, "*" means match all, the "!" prefix means could not match this value. For example, "!GPL" means can not use GPL license.
  34 + 5. policyitem path: This field is used for define the source file scope to apply this policyitem, the "!" prefix means exclude the files. For example, "!.*/lib/.*" means files in lib dir will be exclude while process this policyitem.
  35 + 6. policyitem rule and group: These two fields are used together to merge policy results. "may" policyitems in the same group means any one in this group passed, the result will be passed.
  36 + 7. policyitem filefilter: Used to bind filefilter which define filter rules.
  37 + 7. policyitem desc: Used to describe the reason of this policy item, committers will check this while merging the code.
  38 + 8. filefilter: Filter rules, the type filename is used to filter file name, the type filepath is used to filter file path.
  39 +
  40 + Note:If the text contains special characters, please escape them according to the following rules:
  41 + " == &quot;
  42 + & == &amp;
  43 + ' == &apos;
  44 + < == &lt;
  45 + > == &gt;
  46 +-->
  47 +
  48 +<configuration>
  49 + <oatconfig>
  50 + <licensefile></licensefile>
  51 + <policylist>
  52 + <policy
  53 + desc=""
  54 + name="projectPolicy">
  55 + <policyitem
  56 + desc="Developed By Shenzhen Kaihong Digital Industry Development Co, Ltd."
  57 + filefilter="copyrightPolicyFilter"
  58 + group="defaultGroup"
  59 + name="Shenzhen Kaihong Digital Industry Development Co., Ltd."
  60 + path=".*"
  61 + rule="may"
  62 + type="copyright"/>
  63 + <policyitem
  64 + desc="Developed By The Flutter Authors. All rights reserved."
  65 + filefilter="copyrightPolicyFilter"
  66 + group="defaultGroup"
  67 + name="The Flutter Authors. All rights reserved"
  68 + path=".*"
  69 + rule="may"
  70 + type="copyright"/>
  71 + <policyitem type="license" name="BSD-3-Clause" path=".*" filefilter="defaultPolicyFilter" desc="不影响兼容性"/>
  72 + <policyitem type="license" name="BSD 3-Clause License" path=".*" filefilter="defaultPolicyFilter" desc="不影响兼容性"/>
  73 + <policyitem type="license" name="BSD-2-Clause" path=".*" filefilter="defaultPolicyFilter" desc="不影响兼容性"/>
  74 + <policyitem type="license" name="BSD 2-Clause License" path=".*" filefilter="defaultPolicyFilter" desc="不影响兼容性"/>
  75 + <policyitem type="compatibility" name="BSD-3-Clause" path=".*" desc="不影响兼容性"/>
  76 + <policyitem type="compatibility" name="BSD-2-Clause" path=".*" desc="不影响兼容性"/>
  77 + <policyitem type="license" name="BSDStyleLicense" path=".*" filefilter="defaultPolicyFilter" desc="不影响兼容性"/>
  78 + </policy>
  79 + <policy name="projectPolicy" desc="">
  80 + <policyitem type="compatibility" name="GPL-2.0+" path=".*" desc="Process that runs independently, invoked by the X process."/>
  81 + <policyitem type="compatibility" name="Apache-2.0" path=".*" desc="不影响兼容性"/>
  82 + <policyitem type="compatibility" name="BSDStyleLicense" path=".*" desc="不影响兼容性" />
  83 + </policy>
  84 + </policylist>
  85 +
  86 + <filefilterlist>
  87 + <filefilter name="defaultFilter" desc="Files not to check">
  88 + <filteritem type="filename" name="*.iml|*.json|*.txt" desc="desc files"/>
  89 + <filteritem type="filename" name="*.png|*.ico|*.jpg|*.webp|*.ttf|*.enc|*.mp3" desc="app resource files"/>
  90 + <filteritem type="filename" name="*.so|*.har" desc="engine二进制文件,不影响兼容性"/>
  91 + <filteritem type="filename" name="*.tgz" desc="hvigor本地插件,不影响兼容性"/>
  92 + <filteritem type="filename" name="**.json5" desc="配置文件,flutter插件项目编译时会重写覆盖"/>
  93 + <filteritem type="filepath" name="*/ohos/har/" desc="hvigor本地插件,不影响兼容性"/>
  94 + <filteritem type="filepath" name="*/ohos/entry/src/main/resources/rawfile/flutter_assets/" desc="资源文件,不影响兼容性"/>
  95 + <filteritem type="filepath" name="*/ohos/dta/icudtl.dat" desc="ohos字体库文件,不影响兼容性"/>
  96 + <filteritem type="filepath" name="*/ohos/hvigor/hvigor-wrapper.js" desc="hvigorw编译程序,不影响兼容性"/>
  97 + <filteritem type="filepath" name="*/ohos/hvigorw.bat" desc="hvigorw编译程序,不影响兼容性"/>
  98 + <filteritem type="filepath" name="*/ohos/har/har_product/flutter_embedding.har.profile.10" desc="二进制文件,不影响兼容性"/>
  99 + <filteritem type="filepath" name="*/android/*" desc="android文件,不涉及适配"/>
  100 + <filteritem type="filepath" name="*/ios/*" desc="iOS文件,不涉及适配"/>
  101 + <filteritem type="filepath" name="*/macos/*" desc="macos文件,不涉及适配"/>
  102 + <filteritem type="filepath" name="*/plugins/GeneratedPluginRegistrant.ets" desc="自动生成的文件"/>
  103 + <filteritem type="filepath" name="*/ohos/BuildProfile.ets" desc="自动生成的文件"/>
  104 + <filteritem type="filepath" name="*/ohos/hvigorw.bat" desc="自动生成的文件"/>
  105 + <filteritem type="filepath" name="*/example/analysis_options.yaml" desc="自动生成的文件"/>
  106 + </filefilter>
  107 + <filefilter name="defaultPolicyFilter" desc="Filters for compatibility,license header policies">
  108 + <filteritem type="filepath" name="**/ohos/hvigor/hvigor-wrapper.js" desc="hvigorw编译程序,不影响兼容性"/>
  109 + <filteritem type="filename" name="**.json5" desc="配置文件,flutter插件项目编译时会重写覆盖"/>
  110 + <filteritem type="filepath" name="*/android/*" desc="android文件,不涉及适配"/>
  111 + <filteritem type="filepath" name="*/ios/*" desc="iOS文件,不涉及适配"/>
  112 + <filteritem type="filepath" name="*/macos/*" desc="macos文件,不涉及适配"/>
  113 + <filteritem type="filepath" name="*/plugins/GeneratedPluginRegistrant.ets" desc="自动生成的文件"/>
  114 + <filteritem type="filepath" name="*/ohos/BuildProfile.ets" desc="自动生成的文件"/>
  115 + <filteritem type="filepath" name="*/ohos/hvigorw.bat" desc="自动生成的文件"/>
  116 + <filteritem type="filepath" name="*/example/analysis_options.yaml" desc="自动生成的文件"/>
  117 + </filefilter>
  118 + <filefilter name="copyrightPolicyFilter" desc="Filters for copyright header policies">
  119 + <filteritem type="filename" name="**.dart" desc="dart原始代码"/>
  120 + <filteritem type="filepath" name="**/ohos/hvigor/hvigor-wrapper.js" desc="hvigorw编译程序,不影响兼容性"/>
  121 + <filteritem type="filepath" name="*/android/*" desc="android文件,不涉及适配"/>
  122 + <filteritem type="filepath" name="*/ios/*" desc="iOS文件,不涉及适配"/>
  123 + <filteritem type="filepath" name="*/macos/*" desc="macos文件,不涉及适配"/>
  124 + <filteritem type="filepath" name="*/plugins/GeneratedPluginRegistrant.ets" desc="自动生成的文件"/>
  125 + <filteritem type="filepath" name="*/ohos/BuildProfile.ets" desc="自动生成的文件"/>
  126 + <filteritem type="filepath" name="*/ohos/hvigorw.bat" desc="自动生成的文件"/>
  127 + <filteritem type="filepath" name="*/example/analysis_options.yaml" desc="自动生成的文件"/>
  128 + </filefilter>
  129 + <filefilter name="licenseFileNamePolicyFilter" desc="Filters for LICENSE file policies">
  130 + </filefilter>
  131 + <filefilter name="readmeFileNamePolicyFilter" desc="Filters for README file policies">
  132 + </filefilter>
  133 + <filefilter name="readmeOpenSourcefileNamePolicyFilter" desc="Filters for README.OpenSource file policies">
  134 + </filefilter>
  135 + <filefilter name="binaryFileTypePolicyFilter" desc="Filters for binary file policies">
  136 + <filteritem type="filename" name="*.iml|*.json|*.txt" desc="desc files"/>
  137 + <filteritem type='filepath' name="example/ohos/dta/icudtl.dat" desc='二进制文件,不影响兼容性'/>
  138 + <filteritem type="filepath" name="*/android/*" desc="android文件,不涉及适配"/>
  139 + <filteritem type="filepath" name="*/ios/*" desc="iOS文件,不涉及适配"/>
  140 + <filteritem type="filepath" name="*/macos/*" desc="macos文件,不涉及适配"/>
  141 + </filefilter>
  142 + </filefilterlist>
  143 + </oatconfig>
  144 +</configuration>
  145 +
  1 +> Template version: v0.0.1
  2 +
  3 +<p align="center">
  4 + <h1 align="center"> <code>flutter_sms</code> </h1>
  5 +</p>
  6 +
  7 +This project is based on [flutter_sms](https://pub.dev/packages/flutter_sms).
  8 +
  9 +## 1. Installation and Usage
  10 +
  11 +### 1.1 Installation
  12 +
  13 +Go to the project directory and add the following dependencies in pubspec.yaml
  14 +
  15 +<!-- tabs:start -->
  16 +
  17 +#### pubspec.yaml
  18 +
  19 +```yaml
  20 +...
  21 +
  22 +dependencies:
  23 + flutter_sms:
  24 + git:
  25 + url: https://gitcode.com/openharmony-sig/fluttertpc_flutter_sms.git
  26 +...
  27 +```
  28 +
  29 +Execute Command
  30 +
  31 +```bash
  32 +flutter pub get
  33 +```
  34 +
  35 +<!-- tabs:end -->
  36 +
  37 +### 1.2 Usage
  38 +
  39 +For use cases [ohos/example](./example/lib/main.dart)
  40 +
  41 +## 2. Constraints
  42 +
  43 +### 2.1 Compatibility
  44 +
  45 +This document is verified based on the following versions:
  46 +
  47 +1. Flutter: 3.7.12-ohos-1.0.6; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;
  48 +2. Flutter: 3.22.1-ohos-1.0.1; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;
  49 +
  50 +## 3. API
  51 +
  52 +> [!TIP] If the value of **ohos Support** is **yes**, it means that the ohos platform supports this property; **no** means the opposite; **partially** means some capabilities of this property are supported. The usage method is the same on different platforms and the effect is the same as that of iOS or Android.
  53 +
  54 +| Name | Description | Type | Input | Output | ohos Support |
  55 +| -------------- | --------------------------------------------- | -------- | ---------------------------------------------------------------------------------- | -------------- | ------------ |
  56 +| sendSMS | Open SMS Dialog on ohos | fuction | {required String message,required List<String> recipients,bool sendDirect = false} | Future<String> | yes |
  57 +| launchSms | Launch SMS Url Scheme for single recipien | fuction | {String? message,String? number} | Future<bool> | yes |
  58 +| launchSmsMulti | Launch SMS Url Scheme for multiple recipients | function | {required String message,required List<String> numbers} | Future<bool> | yes |
  59 +| canSendSMS | Check if you can send SMS on this platform | fuction | / | Future<bool> | yes |
  60 +
  61 +## 4. Known Issues
  62 +
  63 +## 5. Others
  64 +
  65 +## 6. License
  66 +
  67 +This project is licensed under [The MIT License (MIT)](./LICENSE).
  1 +> 模板版本: v0.0.1
  2 +
  3 +<p align="center">
  4 + <h1 align="center"> <code>flutter_sms</code> </h1>
  5 +</p>
  6 +
  7 +本项目基于 [flutter_sms](https://pub.dev/packages/flutter_sms) 开发。
  8 +
  9 +## 1. 安装与使用
  10 +
  11 +### 1.1 安装方式
  12 +
  13 +进入到工程目录并在 pubspec.yaml 中添加以下依赖:
  14 +
  15 +<!-- tabs:start -->
  16 +
  17 +#### pubspec.yaml
  18 +
  19 +```yaml
  20 +...
  21 +
  22 +dependencies:
  23 + flutter_sms:
  24 + git:
  25 + url: https://gitcode.com/openharmony-sig/fluttertpc_flutter_sms.git
  26 +...
  27 +```
  28 +
  29 +执行命令
  30 +
  31 +```bash
  32 +flutter pub get
  33 +```
  34 +
  35 +<!-- tabs:end -->
  36 +
  37 +### 1.2 使用案例
  38 +
  39 +使用案例详见 [ohos/example](./example/lib/main.dart)
  40 +
  41 +## 2. 约束与限制
  42 +
  43 +### 2.1 兼容性
  44 +
  45 +在以下版本中已测试通过
  46 +
  47 +1. Flutter: 3.7.12-ohos-1.0.6; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;
  48 +2. Flutter: 3.22.1-ohos-1.0.1; SDK: 5.0.0(12); IDE: DevEco Studio: 5.0.13.200; ROM: 5.1.0.120 SP3;
  49 +
  50 +## 3. API
  51 +
  52 +> [!TIP] "ohos Support"列为 yes 表示 ohos 平台支持该属性;no 则表示不支持;partially 表示部分支持。使用方法跨平台一致,效果对标 iOS 或 Android 的效果。
  53 +
  54 +| Name | Description | Type | Input | Output | ohos Support |
  55 +| -------------- | --------------------------------------------- | -------- | ---------------------------------------------------------------------------------- | -------------- | ------------ |
  56 +| sendSMS | Open SMS Dialog on ohos | fuction | {required String message,required List<String> recipients,bool sendDirect = false} | Future<String> | yes |
  57 +| launchSms | Launch SMS Url Scheme for single recipien | fuction | {String? message,String? number} | Future<bool> | yes |
  58 +| launchSmsMulti | Launch SMS Url Scheme for multiple recipients | function | {required String message,required List<String> numbers} | Future<bool> | yes |
  59 +| canSendSMS | Check if you can send SMS on this platform | fuction | / | Future<bool> | yes |
  60 +
  61 +## 4. 遗留问题
  62 +
  63 +## 5. 其他
  64 +
  65 +## 6. 开源协议
  66 +
  67 +本项目基于 [The MIT License (MIT)](./LICENSE) ,请自由地享受和参与开源。
  1 +[
  2 + {
  3 + "Name": "flutter_sms",
  4 + "License": "MIT License",
  5 + "License File": "LICENSE",
  6 + "Version Number": "eea09849c355405d77175542c982a2f567d76232",
  7 + "Owner": "george.lihui@huawei.com",
  8 + "Upstream URL": "https://github.com/fluttercommunity/flutter_sms",
  9 + "Description": "A Flutter plugin to Send SMS and MMS on iOS and Android. If iMessage is enabled it will send as iMessage on iOS. This plugin must be tested on a real device on iOS."
  10 + }
  11 +]
  1 +[![Flutter Community: flutter_sms](https://fluttercommunity.dev/_github/header/flutter_sms)](https://github.com/fluttercommunity/community)
  2 +
  3 +[![Buy Me A Coffee](https://img.shields.io/badge/Donate-Buy%20Me%20A%20Coffee-yellow.svg)](https://www.buymeacoffee.com/rodydavis)
  4 +[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=WSH3GVC49GNNJ)
  5 +![github pages](https://github.com/fluttercommunity/flutter_sms/workflows/github%20pages/badge.svg)
  6 +[![GitHub stars](https://img.shields.io/github/stars/fluttercommunity/flutter_sms?color=blue)](https://github.com/fluttercommunity/flutter_sms)
  7 +[![flutter_sms](https://img.shields.io/pub/v/flutter_sms.svg)](https://pub.dev/packages/flutter_sms)
  8 +
  9 +# flutter_sms
  10 +
  11 +![alt-text-1](https://github.com/fluttercommunity/flutter_sms/blob/master/screenshots/ios_blank.PNG)
  12 +
  13 +Online Demo: https://fluttercommunity.github.io/flutter_sms/
  14 +
  15 +## Description
  16 +
  17 +Flutter Plugin for sending SMS and MMS on Android and iOS. If you send to more than one person it will send as MMS. On the iOS if the number is an iPhone and iMessage is enabled it will send as an iMessage.
  18 +
  19 +## How To Use
  20 +
  21 +You can send multiple ways:
  22 +
  23 +1. Message and No People
  24 +2. People and No Message
  25 +3. Message and People
  26 +
  27 +This will populate the correct fields.
  28 +
  29 +
  30 +## Example
  31 +
  32 +Make sure to Install and Import the Package.
  33 +
  34 +``` dart
  35 +import 'package:flutter_sms/flutter_sms.dart';
  36 +```
  37 +
  38 +Create a function for sending messages.
  39 +
  40 +``` dart
  41 +void _sendSMS(String message, List<String> recipents) async {
  42 + String _result = await sendSMS(message: message, recipients: recipents)
  43 + .catchError((onError) {
  44 + print(onError);
  45 + });
  46 +print(_result);
  47 +}
  48 +```
  49 +
  50 +You can quickly send the message with this function.
  51 +
  52 +``` dart
  53 +String message = "This is a test message!";
  54 +List<String> recipents = ["1234567890", "5556787676"];
  55 +
  56 +_sendSMS(message, recipents);
  57 +```
  58 +
  59 +
  60 +## Sending Direct
  61 +
  62 +**WARNING, there is a narrow category of apps that can get into the play store
  63 +using this feature. Using it is only advisable if you fit into this category or
  64 +you intent to distribute through a third party platform**
  65 +
  66 +On Android, you can skip the additional dialog with the sendDirect parameter.
  67 +
  68 +``` dart
  69 +String message = "This is a test message!";
  70 +List<String> recipents = ["1234567890", "5556787676"];
  71 +
  72 + String _result = await sendSMS(message: message, recipients: recipents, sendDirect: true)
  73 + .catchError((onError) {
  74 + print(onError);
  75 + });
  76 +print(_result);
  77 +```
  78 +
  79 +NOTE: This also requires the SEND_SMS permission to be added to the AndroidManifest.xml
  80 +
  81 +```
  82 + <uses-permission android:name="android.permission.SEND_SMS"/>
  83 +
  84 + <application
  85 + ...
  86 +```
  87 +
  88 +
  89 +## Screenshots
  90 +
  91 +iOS SMS | Android MMS
  92 +:-------------------------:|:-------------------------:
  93 +![alt-text-1](https://github.com/fluttercommunity/flutter_sms/blob/master/screenshots/ios_sms.PNG) | ![alt-text-2](https://github.com/fluttercommunity/flutter_sms/blob/master/screenshots/android_mms.png)
  94 +
  95 +You can find other [screenshots here](https://github.com/fluttercommunity/flutter_sms/tree/master/screenshots).
  1 +# flutter_sms
  2 +
  3 +原始仓来源:https://github.com/fluttercommunity/flutter_sms
  4 +
  5 +## 仓库简介
  6 +flutter_sms是一个Flutter插件,旨在帮助开发者在Flutter应用中实现短信发送功能。
  7 +该仓库为flutter_sms库适配OpenHarmony的仓库。
  8 +
  9 +## 引入背景简述
  10 +OpenHarmony北向生态发展过程中,已经适配Flutter的厂商在接入OpenHarmony过程中存在使用flutter_sms的诉求。鉴于此OpenHarmony为支持北向生态伙伴快速接入适配、快速实现产品化而提供的flutter_sms,本方案采用插件化的适配器模式实现flutter_sms适配OpenHarmony平台。
  11 +
  12 +## 使用场景
  13 +本方案仅供应用厂商中已支持Flutter框架的设备在移植OpenHarmony系统过程中作为备选方案使用。
  14 +
  15 +## 使用文档
  16 +
  17 +适配OpenHarmony平台的使用指导请见:[Flutter使用指导文档](https://gitee.com/openharmony-sig/flutter_samples/blob/master/ohos/docs/07_plugin/ohos%E5%B9%B3%E5%8F%B0%E9%80%82%E9%85%8Dflutter%E4%B8%89%E6%96%B9%E5%BA%93%E6%8C%87%E5%AF%BC.md)
  18 +
  19 +## License
  20 +
  21 +MIT License
  22 +
  23 +见 [LICENSE](LICENSE)
  1 +*.iml
  2 +.gradle
  3 +/local.properties
  4 +/.idea/workspace.xml
  5 +/.idea/libraries
  6 +.DS_Store
  7 +/build
  8 +/captures
  1 +group 'com.example.flutter_sms'
  2 +version '1.0-SNAPSHOT'
  3 +
  4 +buildscript {
  5 + ext.kotlin_version = '1.7.10'
  6 + repositories {
  7 + google()
  8 + jcenter()
  9 + }
  10 +
  11 + dependencies {
  12 + classpath 'com.android.tools.build:gradle:3.5.4'
  13 + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  14 + }
  15 +}
  16 +
  17 +rootProject.allprojects {
  18 + repositories {
  19 + google()
  20 + jcenter()
  21 + }
  22 +}
  23 +
  24 +apply plugin: 'com.android.library'
  25 +apply plugin: 'kotlin-android'
  26 +
  27 +android {
  28 + compileSdkVersion 31
  29 +
  30 + sourceSets {
  31 + main.java.srcDirs += 'src/main/kotlin'
  32 + }
  33 + defaultConfig {
  34 + minSdkVersion 16
  35 + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  36 + }
  37 + lintOptions {
  38 + disable 'InvalidPackage'
  39 + }
  40 +}
  41 +
  42 +dependencies {
  43 + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  44 +}
  1 +org.gradle.jvmargs=-Xmx1536M
  2 +android.enableR8=true
  3 +android.useAndroidX=true
  4 +android.enableJetifier=true
  1 +#Mon Oct 28 10:41:06 EDT 2019
  2 +distributionBase=GRADLE_USER_HOME
  3 +distributionPath=wrapper/dists
  4 +zipStoreBase=GRADLE_USER_HOME
  5 +zipStorePath=wrapper/dists
  6 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + package="com.example.flutter_sms">
  3 +</manifest>
  1 +package com.example.flutter_sms
  2 +
  3 +import android.annotation.TargetApi
  4 +import android.app.Activity
  5 +import android.app.PendingIntent
  6 +import android.content.Intent
  7 +import android.content.pm.PackageManager
  8 +import android.net.Uri
  9 +import android.os.Build
  10 +import android.telephony.SmsManager
  11 +import android.util.Log
  12 +import androidx.annotation.NonNull
  13 +import io.flutter.embedding.engine.plugins.FlutterPlugin
  14 +import io.flutter.embedding.engine.plugins.activity.ActivityAware
  15 +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
  16 +import io.flutter.plugin.common.BinaryMessenger
  17 +import io.flutter.plugin.common.MethodCall
  18 +import io.flutter.plugin.common.MethodChannel
  19 +import io.flutter.plugin.common.MethodChannel.MethodCallHandler
  20 +import io.flutter.plugin.common.MethodChannel.Result
  21 +import io.flutter.plugin.common.PluginRegistry.Registrar
  22 +
  23 +
  24 +class FlutterSmsPlugin: FlutterPlugin, MethodCallHandler, ActivityAware {
  25 + private lateinit var mChannel: MethodChannel
  26 + private var activity: Activity? = null
  27 + private val REQUEST_CODE_SEND_SMS = 205
  28 +
  29 + override fun onAttachedToActivity(binding: ActivityPluginBinding) {
  30 + activity = binding.activity
  31 + }
  32 +
  33 + override fun onDetachedFromActivity() {
  34 + activity = null
  35 + }
  36 +
  37 + override fun onDetachedFromActivityForConfigChanges() {
  38 + activity = null
  39 + }
  40 +
  41 + override fun onReattachedToActivityForConfigChanges(binding: ActivityPluginBinding) {
  42 + activity = binding.activity
  43 + }
  44 +
  45 + override fun onAttachedToEngine(@NonNull flutterPluginBinding: FlutterPlugin.FlutterPluginBinding) {
  46 + setupCallbackChannels(flutterPluginBinding.binaryMessenger)
  47 + }
  48 +
  49 + override fun onDetachedFromEngine(@NonNull binding: FlutterPlugin.FlutterPluginBinding) {
  50 + teardown()
  51 + }
  52 +
  53 + private fun setupCallbackChannels(messenger: BinaryMessenger) {
  54 + mChannel = MethodChannel(messenger, "flutter_sms")
  55 + mChannel.setMethodCallHandler(this)
  56 + }
  57 +
  58 + private fun teardown() {
  59 + mChannel.setMethodCallHandler(null)
  60 + }
  61 +
  62 + // V1 embedding entry point. This is deprecated and will be removed in a future Flutter
  63 + // release but we leave it here in case someone's app does not utilize the V2 embedding yet.
  64 + companion object {
  65 + @JvmStatic
  66 + fun registerWith(registrar: Registrar) {
  67 + val inst = FlutterSmsPlugin()
  68 + inst.activity = registrar.activity()
  69 + inst.setupCallbackChannels(registrar.messenger())
  70 + }
  71 + }
  72 +
  73 + override fun onMethodCall(call: MethodCall, result: Result) {
  74 + when (call.method) {
  75 + "sendSMS" -> {
  76 + if (!canSendSMS()) {
  77 + result.error(
  78 + "device_not_capable",
  79 + "The current device is not capable of sending text messages.",
  80 + "A device may be unable to send messages if it does not support messaging or if it is not currently configured to send messages. This only applies to the ability to send text messages via iMessage, SMS, and MMS.")
  81 + return
  82 + }
  83 + val message = call.argument<String?>("message") ?: ""
  84 + val recipients = call.argument<String?>("recipients") ?: ""
  85 + val sendDirect = call.argument<Boolean?>("sendDirect") ?: false
  86 + sendSMS(result, recipients, message!!, sendDirect)
  87 + }
  88 + "canSendSMS" -> result.success(canSendSMS())
  89 + else -> result.notImplemented()
  90 + }
  91 + }
  92 +
  93 + @TargetApi(Build.VERSION_CODES.ECLAIR)
  94 + private fun canSendSMS(): Boolean {
  95 + if (!activity!!.packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY))
  96 + return false
  97 + val intent = Intent(Intent.ACTION_SENDTO)
  98 + intent.data = Uri.parse("smsto:")
  99 + val activityInfo = intent.resolveActivityInfo(activity!!.packageManager, intent.flags.toInt())
  100 + return !(activityInfo == null || !activityInfo.exported)
  101 + }
  102 +
  103 + private fun sendSMS(result: Result, phones: String, message: String, sendDirect: Boolean) {
  104 + if (sendDirect) {
  105 + sendSMSDirect(result, phones, message);
  106 + }
  107 + else {
  108 + sendSMSDialog(result, phones, message);
  109 + }
  110 + }
  111 +
  112 + private fun sendSMSDirect(result: Result, phones: String, message: String) {
  113 + // SmsManager is android.telephony
  114 + val sentIntent = PendingIntent.getBroadcast(activity, 0, Intent("SMS_SENT_ACTION"), PendingIntent.FLAG_IMMUTABLE)
  115 + val mSmsManager = SmsManager.getDefault()
  116 + val numbers = phones.split(";")
  117 +
  118 + for (num in numbers) {
  119 + Log.d("Flutter SMS", "msg.length() : " + message.toByteArray().size)
  120 + if (message.toByteArray().size > 80) {
  121 + val partMessage = mSmsManager.divideMessage(message)
  122 + mSmsManager.sendMultipartTextMessage(num, null, partMessage, null, null)
  123 + } else {
  124 + mSmsManager.sendTextMessage(num, null, message, sentIntent, null)
  125 + }
  126 + }
  127 +
  128 + result.success("SMS Sent!")
  129 + }
  130 +
  131 + private fun sendSMSDialog(result: Result, phones: String, message: String) {
  132 + val intent = Intent(Intent.ACTION_SENDTO)
  133 + intent.data = Uri.parse("smsto:$phones")
  134 + intent.putExtra("sms_body", message)
  135 + intent.putExtra(Intent.EXTRA_TEXT, message)
  136 + activity?.startActivityForResult(intent, REQUEST_CODE_SEND_SMS)
  137 + result.success("SMS Sent!")
  138 + }
  139 +}
  1 +# Miscellaneous
  2 +*.class
  3 +*.log
  4 +*.pyc
  5 +*.swp
  6 +.DS_Store
  7 +.atom/
  8 +.buildlog/
  9 +.history
  10 +.svn/
  11 +
  12 +# IntelliJ related
  13 +*.iml
  14 +*.ipr
  15 +*.iws
  16 +.idea/
  17 +
  18 +# The .vscode folder contains launch configuration and tasks you configure in
  19 +# VS Code which you may wish to be included in version control, so this line
  20 +# is commented out by default.
  21 +#.vscode/
  22 +
  23 +# Flutter/Dart/Pub related
  24 +**/doc/api/
  25 +.dart_tool/
  26 +.flutter-plugins
  27 +.packages
  28 +.pub-cache/
  29 +.pub/
  30 +/build/
  31 +
  32 +# Web related
  33 +lib/generated_plugin_registrant.dart
  34 +
  35 +# Exceptions to above rules.
  36 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
  1 +# This file tracks properties of this Flutter project.
  2 +# Used by Flutter tool to assess capabilities and perform upgrades etc.
  3 +#
  4 +# This file should be version controlled.
  5 +
  6 +version:
  7 + revision: 52f3e60cd29ce0e2a21301abbda13ee7299c6ba3
  8 + channel: master
  9 +
  10 +project_type: app
  11 +
  12 +# Tracks metadata for the flutter migrate command
  13 +migration:
  14 + platforms:
  15 + - platform: root
  16 + create_revision: 52f3e60cd29ce0e2a21301abbda13ee7299c6ba3
  17 + base_revision: 52f3e60cd29ce0e2a21301abbda13ee7299c6ba3
  18 + - platform: ohos
  19 + create_revision: 52f3e60cd29ce0e2a21301abbda13ee7299c6ba3
  20 + base_revision: 52f3e60cd29ce0e2a21301abbda13ee7299c6ba3
  21 +
  22 + # User provided section
  23 +
  24 + # List of Local paths (relative to this file) that should be
  25 + # ignored by the migrate tool.
  26 + #
  27 + # Files that are not part of the templates will be ignored by default.
  28 + unmanaged_files:
  29 + - 'lib/main.dart'
  30 + - 'ios/Runner.xcodeproj/project.pbxproj'
  1 +# flutter_sms_example
  2 +
  3 +Demonstrates how to use the flutter_sms plugin.
  4 +
  5 +## Getting Started
  6 +
  7 +This project is a starting point for a Flutter application.
  8 +
  9 +A few resources to get you started if this is your first Flutter project:
  10 +
  11 +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
  12 +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
  13 +
  14 +For help getting started with Flutter, view our
  15 +[online documentation](https://flutter.dev/docs), which offers tutorials,
  16 +samples, guidance on mobile development, and a full API reference.
  1 +# This file configures the analyzer, which statically analyzes Dart code to
  2 +# check for errors, warnings, and lints.
  3 +#
  4 +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
  5 +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
  6 +# invoked from the command line by running `flutter analyze`.
  7 +
  8 +# The following line activates a set of recommended lints for Flutter apps,
  9 +# packages, and plugins designed to encourage good coding practices.
  10 +include: package:flutter_lints/flutter.yaml
  11 +
  12 +linter:
  13 + # The lint rules applied to this project can be customized in the
  14 + # section below to disable rules from the `package:flutter_lints/flutter.yaml`
  15 + # included above or to enable additional rules. A list of all available lints
  16 + # and their documentation is published at
  17 + # https://dart-lang.github.io/linter/lints/index.html.
  18 + #
  19 + # Instead of disabling a lint rule for the entire project in the
  20 + # section below, it can also be suppressed for a single line of code
  21 + # or a specific dart file by using the `// ignore: name_of_lint` and
  22 + # `// ignore_for_file: name_of_lint` syntax on the line or in the file
  23 + # producing the lint.
  24 + rules:
  25 + # avoid_print: false # Uncomment to disable the `avoid_print` rule
  26 + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
  27 +
  28 +# Additional information about this file can be found at
  29 +# https://dart.dev/guides/language/analysis-options
  1 +gradle-wrapper.jar
  2 +/.gradle
  3 +/captures/
  4 +/gradlew
  5 +/gradlew.bat
  6 +/local.properties
  7 +GeneratedPluginRegistrant.java
  1 +def localProperties = new Properties()
  2 +def localPropertiesFile = rootProject.file('local.properties')
  3 +if (localPropertiesFile.exists()) {
  4 + localPropertiesFile.withReader('UTF-8') { reader ->
  5 + localProperties.load(reader)
  6 + }
  7 +}
  8 +
  9 +def flutterRoot = localProperties.getProperty('flutter.sdk')
  10 +if (flutterRoot == null) {
  11 + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
  12 +}
  13 +
  14 +def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
  15 +if (flutterVersionCode == null) {
  16 + flutterVersionCode = '1'
  17 +}
  18 +
  19 +def flutterVersionName = localProperties.getProperty('flutter.versionName')
  20 +if (flutterVersionName == null) {
  21 + flutterVersionName = '1.0'
  22 +}
  23 +
  24 +apply plugin: 'com.android.application'
  25 +apply plugin: 'kotlin-android'
  26 +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
  27 +
  28 +android {
  29 + compileSdkVersion 31
  30 +
  31 + sourceSets {
  32 + main.java.srcDirs += 'src/main/kotlin'
  33 + }
  34 +
  35 + lintOptions {
  36 + disable 'InvalidPackage'
  37 + }
  38 +
  39 + defaultConfig {
  40 + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
  41 + applicationId "com.example.example"
  42 + minSdkVersion 16
  43 + targetSdkVersion 31
  44 + versionCode flutterVersionCode.toInteger()
  45 + versionName flutterVersionName
  46 + }
  47 +
  48 + buildTypes {
  49 + release {
  50 + // TODO: Add your own signing config for the release build.
  51 + // Signing with the debug keys for now, so `flutter run --release` works.
  52 + signingConfig signingConfigs.debug
  53 + }
  54 + }
  55 +}
  56 +
  57 +flutter {
  58 + source '../..'
  59 +}
  60 +
  61 +dependencies {
  62 + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
  63 +}
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + package="com.example.example">
  3 + <!-- Flutter needs it to communicate with the running application
  4 + to allow setting breakpoints, to provide hot reload, etc.
  5 + -->
  6 + <uses-permission android:name="android.permission.INTERNET"/>
  7 +</manifest>
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + package="com.example.example">
  3 + <!-- io.flutter.app.FlutterApplication is an android.app.Application that
  4 + calls FlutterMain.startInitialization(this); in its onCreate method.
  5 + In most cases you can leave this as-is, but you if you want to provide
  6 + additional functionality it is fine to subclass or reimplement
  7 + FlutterApplication and put your custom class here. -->
  8 +
  9 + <uses-permission android:name="android.permission.SEND_SMS"/>
  10 +
  11 + <application
  12 + android:name="${applicationName}"
  13 + android:label="example"
  14 + android:icon="@mipmap/ic_launcher">
  15 + <activity
  16 + android:name=".MainActivity"
  17 + android:launchMode="singleTop"
  18 + android:theme="@style/LaunchTheme"
  19 + android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
  20 + android:hardwareAccelerated="true"
  21 + android:exported="true"
  22 + android:windowSoftInputMode="adjustResize">
  23 + <!-- Specifies an Android theme to apply to this Activity as soon as
  24 + the Android process has started. This theme is visible to the user
  25 + while the Flutter UI initializes. After that, this theme continues
  26 + to determine the Window background behind the Flutter UI. -->
  27 + <meta-data
  28 + android:name="io.flutter.embedding.android.NormalTheme"
  29 + android:resource="@style/NormalTheme"
  30 + />
  31 + <!-- Displays an Android View that continues showing the launch screen
  32 + Drawable until Flutter paints its first frame, then this splash
  33 + screen fades out. A splash screen is useful to avoid any visual
  34 + gap between the end of Android's launch screen and the painting of
  35 + Flutter's first frame. -->
  36 + <meta-data
  37 + android:name="io.flutter.embedding.android.SplashScreenDrawable"
  38 + android:resource="@drawable/launch_background"
  39 + />
  40 + <intent-filter>
  41 + <action android:name="android.intent.action.MAIN"/>
  42 + <category android:name="android.intent.category.LAUNCHER"/>
  43 + </intent-filter>
  44 + </activity>
  45 + <!-- Don't delete the meta-data below.
  46 + This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
  47 + <meta-data
  48 + android:name="flutterEmbedding"
  49 + android:value="2" />
  50 + </application>
  51 +</manifest>
  1 +package com.example.example
  2 +
  3 +import io.flutter.embedding.android.FlutterActivity
  4 +
  5 +class MainActivity: FlutterActivity() {
  6 +}
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<!-- Modify this file to customize your launch splash screen -->
  3 +<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  4 + <item android:drawable="@android:color/white" />
  5 +
  6 + <!-- You can insert your own image assets here -->
  7 + <!-- <item>
  8 + <bitmap
  9 + android:gravity="center"
  10 + android:src="@mipmap/launch_image" />
  11 + </item> -->
  12 +</layer-list>
  1 +<?xml version="1.0" encoding="utf-8"?>
  2 +<resources>
  3 + <!-- Theme applied to the Android Window while the process is starting -->
  4 + <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
  5 + <!-- Show a splash screen on the activity. Automatically removed when
  6 + Flutter draws its first frame -->
  7 + <item name="android:windowBackground">@drawable/launch_background</item>
  8 + </style>
  9 + <!-- Theme applied to the Android Window as soon as the process has started.
  10 + This theme determines the color of the Android Window while your
  11 + Flutter UI initializes, as well as behind your Flutter UI while its
  12 + running.
  13 +
  14 + This Theme is only used starting with V2 of Flutter's Android embedding. -->
  15 + <style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
  16 + <item name="android:windowBackground">@android:color/white</item>
  17 + </style>
  18 +</resources>
  1 +<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2 + package="com.example.example">
  3 + <!-- Flutter needs it to communicate with the running application
  4 + to allow setting breakpoints, to provide hot reload, etc.
  5 + -->
  6 + <uses-permission android:name="android.permission.INTERNET"/>
  7 +</manifest>
  1 +buildscript {
  2 + ext.kotlin_version = '1.6.10'
  3 + repositories {
  4 + google()
  5 + jcenter()
  6 + }
  7 +
  8 + dependencies {
  9 + classpath 'com.android.tools.build:gradle:3.5.4'
  10 + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
  11 + }
  12 +}
  13 +
  14 +allprojects {
  15 + repositories {
  16 + google()
  17 + jcenter()
  18 + }
  19 +}
  20 +
  21 +rootProject.buildDir = '../build'
  22 +subprojects {
  23 + project.buildDir = "${rootProject.buildDir}/${project.name}"
  24 +}
  25 +subprojects {
  26 + project.evaluationDependsOn(':app')
  27 +}
  28 +
  29 +task clean(type: Delete) {
  30 + delete rootProject.buildDir
  31 +}
  1 +org.gradle.jvmargs=-Xmx1536M
  2 +android.enableR8=true
  3 +android.useAndroidX=true
  4 +android.enableJetifier=true
  1 +#Fri Jun 23 08:50:38 CEST 2017
  2 +distributionBase=GRADLE_USER_HOME
  3 +distributionPath=wrapper/dists
  4 +zipStoreBase=GRADLE_USER_HOME
  5 +zipStorePath=wrapper/dists
  6 +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
  1 +include ':app'
  2 +
  3 +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
  4 +
  5 +def plugins = new Properties()
  6 +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
  7 +if (pluginsFile.exists()) {
  8 + pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
  9 +}
  10 +
  11 +plugins.each { name, path ->
  12 + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
  13 + include ":$name"
  14 + project(":$name").projectDir = pluginDirectory
  15 +}
  1 +*.mode1v3
  2 +*.mode2v3
  3 +*.moved-aside
  4 +*.pbxuser
  5 +*.perspectivev3
  6 +**/*sync/
  7 +.sconsign.dblite
  8 +.tags*
  9 +**/.vagrant/
  10 +**/DerivedData/
  11 +Icon?
  12 +**/Pods/
  13 +**/.symlinks/
  14 +profile
  15 +xcuserdata
  16 +**/.generated/
  17 +Flutter/App.framework
  18 +Flutter/Flutter.framework
  19 +Flutter/Flutter.podspec
  20 +Flutter/Generated.xcconfig
  21 +Flutter/app.flx
  22 +Flutter/app.zip
  23 +Flutter/flutter_assets/
  24 +Flutter/flutter_export_environment.sh
  25 +ServiceDefinitions.json
  26 +Runner/GeneratedPluginRegistrant.*
  27 +
  28 +# Exceptions to above rules.
  29 +!default.mode1v3
  30 +!default.mode2v3
  31 +!default.pbxuser
  32 +!default.perspectivev3
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>$(DEVELOPMENT_LANGUAGE)</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>App</string>
  9 + <key>CFBundleIdentifier</key>
  10 + <string>io.flutter.flutter.app</string>
  11 + <key>CFBundleInfoDictionaryVersion</key>
  12 + <string>6.0</string>
  13 + <key>CFBundleName</key>
  14 + <string>App</string>
  15 + <key>CFBundlePackageType</key>
  16 + <string>FMWK</string>
  17 + <key>CFBundleShortVersionString</key>
  18 + <string>1.0</string>
  19 + <key>CFBundleSignature</key>
  20 + <string>????</string>
  21 + <key>CFBundleVersion</key>
  22 + <string>1.0</string>
  23 + <key>MinimumOSVersion</key>
  24 + <string>8.0</string>
  25 +</dict>
  26 +</plist>
  1 +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
  2 +#include "Generated.xcconfig"
  1 +#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
  2 +#include "Generated.xcconfig"
  1 +# Uncomment this line to define a global platform for your project
  2 +# platform :ios, '9.0'
  3 +
  4 +# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
  5 +ENV['COCOAPODS_DISABLE_STATS'] = 'true'
  6 +
  7 +project 'Runner', {
  8 + 'Debug' => :debug,
  9 + 'Profile' => :release,
  10 + 'Release' => :release,
  11 +}
  12 +
  13 +def parse_KV_file(file, separator='=')
  14 + file_abs_path = File.expand_path(file)
  15 + if !File.exists? file_abs_path
  16 + return [];
  17 + end
  18 + generated_key_values = {}
  19 + skip_line_start_symbols = ["#", "/"]
  20 + File.foreach(file_abs_path) do |line|
  21 + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
  22 + plugin = line.split(pattern=separator)
  23 + if plugin.length == 2
  24 + podname = plugin[0].strip()
  25 + path = plugin[1].strip()
  26 + podpath = File.expand_path("#{path}", file_abs_path)
  27 + generated_key_values[podname] = podpath
  28 + else
  29 + puts "Invalid plugin specification: #{line}"
  30 + end
  31 + end
  32 + generated_key_values
  33 +end
  34 +
  35 +target 'Runner' do
  36 + use_frameworks!
  37 + use_modular_headers!
  38 +
  39 + # Flutter Pod
  40 +
  41 + copied_flutter_dir = File.join(__dir__, 'Flutter')
  42 + copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
  43 + copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
  44 + unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
  45 + # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
  46 + # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
  47 + # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
  48 +
  49 + generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
  50 + unless File.exist?(generated_xcode_build_settings_path)
  51 + raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  52 + end
  53 + generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
  54 + cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
  55 +
  56 + unless File.exist?(copied_framework_path)
  57 + FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
  58 + end
  59 + unless File.exist?(copied_podspec_path)
  60 + FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
  61 + end
  62 + end
  63 +
  64 + # Keep pod path relative so it can be checked into Podfile.lock.
  65 + pod 'Flutter', :path => 'Flutter'
  66 +
  67 + # Plugin Pods
  68 +
  69 + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
  70 + # referring to absolute paths on developers' machines.
  71 + system('rm -rf .symlinks')
  72 + system('mkdir -p .symlinks/plugins')
  73 + plugin_pods = parse_KV_file('../.flutter-plugins')
  74 + plugin_pods.each do |name, path|
  75 + symlink = File.join('.symlinks', 'plugins', name)
  76 + File.symlink(path, symlink)
  77 + pod name, :path => File.join(symlink, 'ios')
  78 + end
  79 +end
  80 +
  81 +post_install do |installer|
  82 + installer.pods_project.targets.each do |target|
  83 + target.build_configurations.each do |config|
  84 + config.build_settings['ENABLE_BITCODE'] = 'NO'
  85 + end
  86 + end
  87 +end
  1 +// !$*UTF8*$!
  2 +{
  3 + archiveVersion = 1;
  4 + classes = {
  5 + };
  6 + objectVersion = 46;
  7 + objects = {
  8 +
  9 +/* Begin PBXBuildFile section */
  10 + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
  11 + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
  12 + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
  13 + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
  14 + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
  15 + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
  16 +/* End PBXBuildFile section */
  17 +
  18 +/* Begin PBXCopyFilesBuildPhase section */
  19 + 9705A1C41CF9048500538489 /* Embed Frameworks */ = {
  20 + isa = PBXCopyFilesBuildPhase;
  21 + buildActionMask = 2147483647;
  22 + dstPath = "";
  23 + dstSubfolderSpec = 10;
  24 + files = (
  25 + );
  26 + name = "Embed Frameworks";
  27 + runOnlyForDeploymentPostprocessing = 0;
  28 + };
  29 +/* End PBXCopyFilesBuildPhase section */
  30 +
  31 +/* Begin PBXFileReference section */
  32 + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
  33 + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
  34 + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
  35 + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
  36 + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
  37 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
  38 + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
  39 + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
  40 + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
  41 + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
  42 + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
  43 + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
  44 + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
  45 +/* End PBXFileReference section */
  46 +
  47 +/* Begin PBXFrameworksBuildPhase section */
  48 + 97C146EB1CF9000F007C117D /* Frameworks */ = {
  49 + isa = PBXFrameworksBuildPhase;
  50 + buildActionMask = 2147483647;
  51 + files = (
  52 + );
  53 + runOnlyForDeploymentPostprocessing = 0;
  54 + };
  55 +/* End PBXFrameworksBuildPhase section */
  56 +
  57 +/* Begin PBXGroup section */
  58 + 9740EEB11CF90186004384FC /* Flutter */ = {
  59 + isa = PBXGroup;
  60 + children = (
  61 + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
  62 + 9740EEB21CF90195004384FC /* Debug.xcconfig */,
  63 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
  64 + 9740EEB31CF90195004384FC /* Generated.xcconfig */,
  65 + );
  66 + name = Flutter;
  67 + sourceTree = "<group>";
  68 + };
  69 + 97C146E51CF9000F007C117D = {
  70 + isa = PBXGroup;
  71 + children = (
  72 + 9740EEB11CF90186004384FC /* Flutter */,
  73 + 97C146F01CF9000F007C117D /* Runner */,
  74 + 97C146EF1CF9000F007C117D /* Products */,
  75 + );
  76 + sourceTree = "<group>";
  77 + };
  78 + 97C146EF1CF9000F007C117D /* Products */ = {
  79 + isa = PBXGroup;
  80 + children = (
  81 + 97C146EE1CF9000F007C117D /* Runner.app */,
  82 + );
  83 + name = Products;
  84 + sourceTree = "<group>";
  85 + };
  86 + 97C146F01CF9000F007C117D /* Runner */ = {
  87 + isa = PBXGroup;
  88 + children = (
  89 + 97C146FA1CF9000F007C117D /* Main.storyboard */,
  90 + 97C146FD1CF9000F007C117D /* Assets.xcassets */,
  91 + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
  92 + 97C147021CF9000F007C117D /* Info.plist */,
  93 + 97C146F11CF9000F007C117D /* Supporting Files */,
  94 + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
  95 + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
  96 + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
  97 + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
  98 + );
  99 + path = Runner;
  100 + sourceTree = "<group>";
  101 + };
  102 + 97C146F11CF9000F007C117D /* Supporting Files */ = {
  103 + isa = PBXGroup;
  104 + children = (
  105 + );
  106 + name = "Supporting Files";
  107 + sourceTree = "<group>";
  108 + };
  109 +/* End PBXGroup section */
  110 +
  111 +/* Begin PBXNativeTarget section */
  112 + 97C146ED1CF9000F007C117D /* Runner */ = {
  113 + isa = PBXNativeTarget;
  114 + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
  115 + buildPhases = (
  116 + 9740EEB61CF901F6004384FC /* Run Script */,
  117 + 97C146EA1CF9000F007C117D /* Sources */,
  118 + 97C146EB1CF9000F007C117D /* Frameworks */,
  119 + 97C146EC1CF9000F007C117D /* Resources */,
  120 + 9705A1C41CF9048500538489 /* Embed Frameworks */,
  121 + 3B06AD1E1E4923F5004D2608 /* Thin Binary */,
  122 + );
  123 + buildRules = (
  124 + );
  125 + dependencies = (
  126 + );
  127 + name = Runner;
  128 + productName = Runner;
  129 + productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
  130 + productType = "com.apple.product-type.application";
  131 + };
  132 +/* End PBXNativeTarget section */
  133 +
  134 +/* Begin PBXProject section */
  135 + 97C146E61CF9000F007C117D /* Project object */ = {
  136 + isa = PBXProject;
  137 + attributes = {
  138 + LastUpgradeCheck = 1020;
  139 + ORGANIZATIONNAME = "";
  140 + TargetAttributes = {
  141 + 97C146ED1CF9000F007C117D = {
  142 + CreatedOnToolsVersion = 7.3.1;
  143 + LastSwiftMigration = 1100;
  144 + };
  145 + };
  146 + };
  147 + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
  148 + compatibilityVersion = "Xcode 9.3";
  149 + developmentRegion = en;
  150 + hasScannedForEncodings = 0;
  151 + knownRegions = (
  152 + en,
  153 + Base,
  154 + );
  155 + mainGroup = 97C146E51CF9000F007C117D;
  156 + productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
  157 + projectDirPath = "";
  158 + projectRoot = "";
  159 + targets = (
  160 + 97C146ED1CF9000F007C117D /* Runner */,
  161 + );
  162 + };
  163 +/* End PBXProject section */
  164 +
  165 +/* Begin PBXResourcesBuildPhase section */
  166 + 97C146EC1CF9000F007C117D /* Resources */ = {
  167 + isa = PBXResourcesBuildPhase;
  168 + buildActionMask = 2147483647;
  169 + files = (
  170 + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
  171 + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
  172 + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
  173 + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
  174 + );
  175 + runOnlyForDeploymentPostprocessing = 0;
  176 + };
  177 +/* End PBXResourcesBuildPhase section */
  178 +
  179 +/* Begin PBXShellScriptBuildPhase section */
  180 + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
  181 + isa = PBXShellScriptBuildPhase;
  182 + buildActionMask = 2147483647;
  183 + files = (
  184 + );
  185 + inputPaths = (
  186 + );
  187 + name = "Thin Binary";
  188 + outputPaths = (
  189 + );
  190 + runOnlyForDeploymentPostprocessing = 0;
  191 + shellPath = /bin/sh;
  192 + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
  193 + };
  194 + 9740EEB61CF901F6004384FC /* Run Script */ = {
  195 + isa = PBXShellScriptBuildPhase;
  196 + buildActionMask = 2147483647;
  197 + files = (
  198 + );
  199 + inputPaths = (
  200 + );
  201 + name = "Run Script";
  202 + outputPaths = (
  203 + );
  204 + runOnlyForDeploymentPostprocessing = 0;
  205 + shellPath = /bin/sh;
  206 + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
  207 + };
  208 +/* End PBXShellScriptBuildPhase section */
  209 +
  210 +/* Begin PBXSourcesBuildPhase section */
  211 + 97C146EA1CF9000F007C117D /* Sources */ = {
  212 + isa = PBXSourcesBuildPhase;
  213 + buildActionMask = 2147483647;
  214 + files = (
  215 + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
  216 + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
  217 + );
  218 + runOnlyForDeploymentPostprocessing = 0;
  219 + };
  220 +/* End PBXSourcesBuildPhase section */
  221 +
  222 +/* Begin PBXVariantGroup section */
  223 + 97C146FA1CF9000F007C117D /* Main.storyboard */ = {
  224 + isa = PBXVariantGroup;
  225 + children = (
  226 + 97C146FB1CF9000F007C117D /* Base */,
  227 + );
  228 + name = Main.storyboard;
  229 + sourceTree = "<group>";
  230 + };
  231 + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
  232 + isa = PBXVariantGroup;
  233 + children = (
  234 + 97C147001CF9000F007C117D /* Base */,
  235 + );
  236 + name = LaunchScreen.storyboard;
  237 + sourceTree = "<group>";
  238 + };
  239 +/* End PBXVariantGroup section */
  240 +
  241 +/* Begin XCBuildConfiguration section */
  242 + 249021D3217E4FDB00AE95B9 /* Profile */ = {
  243 + isa = XCBuildConfiguration;
  244 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  245 + buildSettings = {
  246 + ALWAYS_SEARCH_USER_PATHS = NO;
  247 + CLANG_ANALYZER_NONNULL = YES;
  248 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  249 + CLANG_CXX_LIBRARY = "libc++";
  250 + CLANG_ENABLE_MODULES = YES;
  251 + CLANG_ENABLE_OBJC_ARC = YES;
  252 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  253 + CLANG_WARN_BOOL_CONVERSION = YES;
  254 + CLANG_WARN_COMMA = YES;
  255 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  256 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  257 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  258 + CLANG_WARN_EMPTY_BODY = YES;
  259 + CLANG_WARN_ENUM_CONVERSION = YES;
  260 + CLANG_WARN_INFINITE_RECURSION = YES;
  261 + CLANG_WARN_INT_CONVERSION = YES;
  262 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  263 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  264 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  265 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  266 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  267 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  268 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  269 + CLANG_WARN_UNREACHABLE_CODE = YES;
  270 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  271 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
  272 + COPY_PHASE_STRIP = NO;
  273 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  274 + ENABLE_NS_ASSERTIONS = NO;
  275 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  276 + GCC_C_LANGUAGE_STANDARD = gnu99;
  277 + GCC_NO_COMMON_BLOCKS = YES;
  278 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  279 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  280 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  281 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  282 + GCC_WARN_UNUSED_FUNCTION = YES;
  283 + GCC_WARN_UNUSED_VARIABLE = YES;
  284 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  285 + MTL_ENABLE_DEBUG_INFO = NO;
  286 + SDKROOT = iphoneos;
  287 + SUPPORTED_PLATFORMS = iphoneos;
  288 + TARGETED_DEVICE_FAMILY = "1,2";
  289 + VALIDATE_PRODUCT = YES;
  290 + };
  291 + name = Profile;
  292 + };
  293 + 249021D4217E4FDB00AE95B9 /* Profile */ = {
  294 + isa = XCBuildConfiguration;
  295 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  296 + buildSettings = {
  297 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  298 + CLANG_ENABLE_MODULES = YES;
  299 + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
  300 + ENABLE_BITCODE = NO;
  301 + FRAMEWORK_SEARCH_PATHS = (
  302 + "$(inherited)",
  303 + "$(PROJECT_DIR)/Flutter",
  304 + );
  305 + INFOPLIST_FILE = Runner/Info.plist;
  306 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  307 + LIBRARY_SEARCH_PATHS = (
  308 + "$(inherited)",
  309 + "$(PROJECT_DIR)/Flutter",
  310 + );
  311 + PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
  312 + PRODUCT_NAME = "$(TARGET_NAME)";
  313 + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
  314 + SWIFT_VERSION = 5.0;
  315 + VERSIONING_SYSTEM = "apple-generic";
  316 + };
  317 + name = Profile;
  318 + };
  319 + 97C147031CF9000F007C117D /* Debug */ = {
  320 + isa = XCBuildConfiguration;
  321 + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
  322 + buildSettings = {
  323 + ALWAYS_SEARCH_USER_PATHS = NO;
  324 + CLANG_ANALYZER_NONNULL = YES;
  325 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  326 + CLANG_CXX_LIBRARY = "libc++";
  327 + CLANG_ENABLE_MODULES = YES;
  328 + CLANG_ENABLE_OBJC_ARC = YES;
  329 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  330 + CLANG_WARN_BOOL_CONVERSION = YES;
  331 + CLANG_WARN_COMMA = YES;
  332 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  333 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  334 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  335 + CLANG_WARN_EMPTY_BODY = YES;
  336 + CLANG_WARN_ENUM_CONVERSION = YES;
  337 + CLANG_WARN_INFINITE_RECURSION = YES;
  338 + CLANG_WARN_INT_CONVERSION = YES;
  339 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  340 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  341 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  342 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  343 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  344 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  345 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  346 + CLANG_WARN_UNREACHABLE_CODE = YES;
  347 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  348 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
  349 + COPY_PHASE_STRIP = NO;
  350 + DEBUG_INFORMATION_FORMAT = dwarf;
  351 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  352 + ENABLE_TESTABILITY = YES;
  353 + GCC_C_LANGUAGE_STANDARD = gnu99;
  354 + GCC_DYNAMIC_NO_PIC = NO;
  355 + GCC_NO_COMMON_BLOCKS = YES;
  356 + GCC_OPTIMIZATION_LEVEL = 0;
  357 + GCC_PREPROCESSOR_DEFINITIONS = (
  358 + "DEBUG=1",
  359 + "$(inherited)",
  360 + );
  361 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  362 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  363 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  364 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  365 + GCC_WARN_UNUSED_FUNCTION = YES;
  366 + GCC_WARN_UNUSED_VARIABLE = YES;
  367 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  368 + MTL_ENABLE_DEBUG_INFO = YES;
  369 + ONLY_ACTIVE_ARCH = YES;
  370 + SDKROOT = iphoneos;
  371 + TARGETED_DEVICE_FAMILY = "1,2";
  372 + };
  373 + name = Debug;
  374 + };
  375 + 97C147041CF9000F007C117D /* Release */ = {
  376 + isa = XCBuildConfiguration;
  377 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  378 + buildSettings = {
  379 + ALWAYS_SEARCH_USER_PATHS = NO;
  380 + CLANG_ANALYZER_NONNULL = YES;
  381 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  382 + CLANG_CXX_LIBRARY = "libc++";
  383 + CLANG_ENABLE_MODULES = YES;
  384 + CLANG_ENABLE_OBJC_ARC = YES;
  385 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  386 + CLANG_WARN_BOOL_CONVERSION = YES;
  387 + CLANG_WARN_COMMA = YES;
  388 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  389 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  390 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  391 + CLANG_WARN_EMPTY_BODY = YES;
  392 + CLANG_WARN_ENUM_CONVERSION = YES;
  393 + CLANG_WARN_INFINITE_RECURSION = YES;
  394 + CLANG_WARN_INT_CONVERSION = YES;
  395 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  396 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
  397 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  398 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  399 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  400 + CLANG_WARN_STRICT_PROTOTYPES = YES;
  401 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  402 + CLANG_WARN_UNREACHABLE_CODE = YES;
  403 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
  404 + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
  405 + COPY_PHASE_STRIP = NO;
  406 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  407 + ENABLE_NS_ASSERTIONS = NO;
  408 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  409 + GCC_C_LANGUAGE_STANDARD = gnu99;
  410 + GCC_NO_COMMON_BLOCKS = YES;
  411 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  412 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  413 + GCC_WARN_UNDECLARED_SELECTOR = YES;
  414 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  415 + GCC_WARN_UNUSED_FUNCTION = YES;
  416 + GCC_WARN_UNUSED_VARIABLE = YES;
  417 + IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  418 + MTL_ENABLE_DEBUG_INFO = NO;
  419 + SDKROOT = iphoneos;
  420 + SUPPORTED_PLATFORMS = iphoneos;
  421 + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
  422 + TARGETED_DEVICE_FAMILY = "1,2";
  423 + VALIDATE_PRODUCT = YES;
  424 + };
  425 + name = Release;
  426 + };
  427 + 97C147061CF9000F007C117D /* Debug */ = {
  428 + isa = XCBuildConfiguration;
  429 + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
  430 + buildSettings = {
  431 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  432 + CLANG_ENABLE_MODULES = YES;
  433 + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
  434 + ENABLE_BITCODE = NO;
  435 + FRAMEWORK_SEARCH_PATHS = (
  436 + "$(inherited)",
  437 + "$(PROJECT_DIR)/Flutter",
  438 + );
  439 + INFOPLIST_FILE = Runner/Info.plist;
  440 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  441 + LIBRARY_SEARCH_PATHS = (
  442 + "$(inherited)",
  443 + "$(PROJECT_DIR)/Flutter",
  444 + );
  445 + PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
  446 + PRODUCT_NAME = "$(TARGET_NAME)";
  447 + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
  448 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  449 + SWIFT_VERSION = 5.0;
  450 + VERSIONING_SYSTEM = "apple-generic";
  451 + };
  452 + name = Debug;
  453 + };
  454 + 97C147071CF9000F007C117D /* Release */ = {
  455 + isa = XCBuildConfiguration;
  456 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  457 + buildSettings = {
  458 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  459 + CLANG_ENABLE_MODULES = YES;
  460 + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
  461 + ENABLE_BITCODE = NO;
  462 + FRAMEWORK_SEARCH_PATHS = (
  463 + "$(inherited)",
  464 + "$(PROJECT_DIR)/Flutter",
  465 + );
  466 + INFOPLIST_FILE = Runner/Info.plist;
  467 + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
  468 + LIBRARY_SEARCH_PATHS = (
  469 + "$(inherited)",
  470 + "$(PROJECT_DIR)/Flutter",
  471 + );
  472 + PRODUCT_BUNDLE_IDENTIFIER = com.example.example;
  473 + PRODUCT_NAME = "$(TARGET_NAME)";
  474 + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
  475 + SWIFT_VERSION = 5.0;
  476 + VERSIONING_SYSTEM = "apple-generic";
  477 + };
  478 + name = Release;
  479 + };
  480 +/* End XCBuildConfiguration section */
  481 +
  482 +/* Begin XCConfigurationList section */
  483 + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
  484 + isa = XCConfigurationList;
  485 + buildConfigurations = (
  486 + 97C147031CF9000F007C117D /* Debug */,
  487 + 97C147041CF9000F007C117D /* Release */,
  488 + 249021D3217E4FDB00AE95B9 /* Profile */,
  489 + );
  490 + defaultConfigurationIsVisible = 0;
  491 + defaultConfigurationName = Release;
  492 + };
  493 + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
  494 + isa = XCConfigurationList;
  495 + buildConfigurations = (
  496 + 97C147061CF9000F007C117D /* Debug */,
  497 + 97C147071CF9000F007C117D /* Release */,
  498 + 249021D4217E4FDB00AE95B9 /* Profile */,
  499 + );
  500 + defaultConfigurationIsVisible = 0;
  501 + defaultConfigurationName = Release;
  502 + };
  503 +/* End XCConfigurationList section */
  504 + };
  505 + rootObject = 97C146E61CF9000F007C117D /* Project object */;
  506 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "group:Runner.xcodeproj">
  6 + </FileRef>
  7 +</Workspace>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>PreviewsEnabled</key>
  6 + <false/>
  7 +</dict>
  8 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "1020"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForTesting = "YES"
  11 + buildForRunning = "YES"
  12 + buildForProfiling = "YES"
  13 + buildForArchiving = "YES"
  14 + buildForAnalyzing = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "97C146ED1CF9000F007C117D"
  18 + BuildableName = "Runner.app"
  19 + BlueprintName = "Runner"
  20 + ReferencedContainer = "container:Runner.xcodeproj">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + buildConfiguration = "Debug"
  27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  29 + shouldUseLaunchSchemeArgsEnv = "YES">
  30 + <Testables>
  31 + </Testables>
  32 + <MacroExpansion>
  33 + <BuildableReference
  34 + BuildableIdentifier = "primary"
  35 + BlueprintIdentifier = "97C146ED1CF9000F007C117D"
  36 + BuildableName = "Runner.app"
  37 + BlueprintName = "Runner"
  38 + ReferencedContainer = "container:Runner.xcodeproj">
  39 + </BuildableReference>
  40 + </MacroExpansion>
  41 + <AdditionalOptions>
  42 + </AdditionalOptions>
  43 + </TestAction>
  44 + <LaunchAction
  45 + buildConfiguration = "Debug"
  46 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  47 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  48 + launchStyle = "0"
  49 + useCustomWorkingDirectory = "NO"
  50 + ignoresPersistentStateOnLaunch = "NO"
  51 + debugDocumentVersioning = "YES"
  52 + debugServiceExtension = "internal"
  53 + allowLocationSimulation = "YES">
  54 + <BuildableProductRunnable
  55 + runnableDebuggingMode = "0">
  56 + <BuildableReference
  57 + BuildableIdentifier = "primary"
  58 + BlueprintIdentifier = "97C146ED1CF9000F007C117D"
  59 + BuildableName = "Runner.app"
  60 + BlueprintName = "Runner"
  61 + ReferencedContainer = "container:Runner.xcodeproj">
  62 + </BuildableReference>
  63 + </BuildableProductRunnable>
  64 + <AdditionalOptions>
  65 + </AdditionalOptions>
  66 + </LaunchAction>
  67 + <ProfileAction
  68 + buildConfiguration = "Profile"
  69 + shouldUseLaunchSchemeArgsEnv = "YES"
  70 + savedToolIdentifier = ""
  71 + useCustomWorkingDirectory = "NO"
  72 + debugDocumentVersioning = "YES">
  73 + <BuildableProductRunnable
  74 + runnableDebuggingMode = "0">
  75 + <BuildableReference
  76 + BuildableIdentifier = "primary"
  77 + BlueprintIdentifier = "97C146ED1CF9000F007C117D"
  78 + BuildableName = "Runner.app"
  79 + BlueprintName = "Runner"
  80 + ReferencedContainer = "container:Runner.xcodeproj">
  81 + </BuildableReference>
  82 + </BuildableProductRunnable>
  83 + </ProfileAction>
  84 + <AnalyzeAction
  85 + buildConfiguration = "Debug">
  86 + </AnalyzeAction>
  87 + <ArchiveAction
  88 + buildConfiguration = "Release"
  89 + revealArchiveInOrganizer = "YES">
  90 + </ArchiveAction>
  91 +</Scheme>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "group:Runner.xcodeproj">
  6 + </FileRef>
  7 +</Workspace>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>PreviewsEnabled</key>
  6 + <false/>
  7 +</dict>
  8 +</plist>
  1 +import UIKit
  2 +import Flutter
  3 +
  4 +@UIApplicationMain
  5 +@objc class AppDelegate: FlutterAppDelegate {
  6 + override func application(
  7 + _ application: UIApplication,
  8 + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  9 + ) -> Bool {
  10 + GeneratedPluginRegistrant.register(with: self)
  11 + return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  12 + }
  13 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "size" : "20x20",
  5 + "idiom" : "iphone",
  6 + "filename" : "Icon-App-20x20@2x.png",
  7 + "scale" : "2x"
  8 + },
  9 + {
  10 + "size" : "20x20",
  11 + "idiom" : "iphone",
  12 + "filename" : "Icon-App-20x20@3x.png",
  13 + "scale" : "3x"
  14 + },
  15 + {
  16 + "size" : "29x29",
  17 + "idiom" : "iphone",
  18 + "filename" : "Icon-App-29x29@1x.png",
  19 + "scale" : "1x"
  20 + },
  21 + {
  22 + "size" : "29x29",
  23 + "idiom" : "iphone",
  24 + "filename" : "Icon-App-29x29@2x.png",
  25 + "scale" : "2x"
  26 + },
  27 + {
  28 + "size" : "29x29",
  29 + "idiom" : "iphone",
  30 + "filename" : "Icon-App-29x29@3x.png",
  31 + "scale" : "3x"
  32 + },
  33 + {
  34 + "size" : "40x40",
  35 + "idiom" : "iphone",
  36 + "filename" : "Icon-App-40x40@2x.png",
  37 + "scale" : "2x"
  38 + },
  39 + {
  40 + "size" : "40x40",
  41 + "idiom" : "iphone",
  42 + "filename" : "Icon-App-40x40@3x.png",
  43 + "scale" : "3x"
  44 + },
  45 + {
  46 + "size" : "60x60",
  47 + "idiom" : "iphone",
  48 + "filename" : "Icon-App-60x60@2x.png",
  49 + "scale" : "2x"
  50 + },
  51 + {
  52 + "size" : "60x60",
  53 + "idiom" : "iphone",
  54 + "filename" : "Icon-App-60x60@3x.png",
  55 + "scale" : "3x"
  56 + },
  57 + {
  58 + "size" : "20x20",
  59 + "idiom" : "ipad",
  60 + "filename" : "Icon-App-20x20@1x.png",
  61 + "scale" : "1x"
  62 + },
  63 + {
  64 + "size" : "20x20",
  65 + "idiom" : "ipad",
  66 + "filename" : "Icon-App-20x20@2x.png",
  67 + "scale" : "2x"
  68 + },
  69 + {
  70 + "size" : "29x29",
  71 + "idiom" : "ipad",
  72 + "filename" : "Icon-App-29x29@1x.png",
  73 + "scale" : "1x"
  74 + },
  75 + {
  76 + "size" : "29x29",
  77 + "idiom" : "ipad",
  78 + "filename" : "Icon-App-29x29@2x.png",
  79 + "scale" : "2x"
  80 + },
  81 + {
  82 + "size" : "40x40",
  83 + "idiom" : "ipad",
  84 + "filename" : "Icon-App-40x40@1x.png",
  85 + "scale" : "1x"
  86 + },
  87 + {
  88 + "size" : "40x40",
  89 + "idiom" : "ipad",
  90 + "filename" : "Icon-App-40x40@2x.png",
  91 + "scale" : "2x"
  92 + },
  93 + {
  94 + "size" : "76x76",
  95 + "idiom" : "ipad",
  96 + "filename" : "Icon-App-76x76@1x.png",
  97 + "scale" : "1x"
  98 + },
  99 + {
  100 + "size" : "76x76",
  101 + "idiom" : "ipad",
  102 + "filename" : "Icon-App-76x76@2x.png",
  103 + "scale" : "2x"
  104 + },
  105 + {
  106 + "size" : "83.5x83.5",
  107 + "idiom" : "ipad",
  108 + "filename" : "Icon-App-83.5x83.5@2x.png",
  109 + "scale" : "2x"
  110 + },
  111 + {
  112 + "size" : "1024x1024",
  113 + "idiom" : "ios-marketing",
  114 + "filename" : "Icon-App-1024x1024@1x.png",
  115 + "scale" : "1x"
  116 + }
  117 + ],
  118 + "info" : {
  119 + "version" : 1,
  120 + "author" : "xcode"
  121 + }
  122 +}
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "filename" : "LaunchImage.png",
  6 + "scale" : "1x"
  7 + },
  8 + {
  9 + "idiom" : "universal",
  10 + "filename" : "LaunchImage@2x.png",
  11 + "scale" : "2x"
  12 + },
  13 + {
  14 + "idiom" : "universal",
  15 + "filename" : "LaunchImage@3x.png",
  16 + "scale" : "3x"
  17 + }
  18 + ],
  19 + "info" : {
  20 + "version" : 1,
  21 + "author" : "xcode"
  22 + }
  23 +}
  1 +# Launch Screen Assets
  2 +
  3 +You can customize the launch screen with your own desired assets by replacing the image files in this directory.
  4 +
  5 +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
  3 + <dependencies>
  4 + <deployment identifier="iOS"/>
  5 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
  6 + </dependencies>
  7 + <scenes>
  8 + <!--View Controller-->
  9 + <scene sceneID="EHf-IW-A2E">
  10 + <objects>
  11 + <viewController id="01J-lp-oVM" sceneMemberID="viewController">
  12 + <layoutGuides>
  13 + <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
  14 + <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
  15 + </layoutGuides>
  16 + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
  17 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  18 + <subviews>
  19 + <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
  20 + </imageView>
  21 + </subviews>
  22 + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
  23 + <constraints>
  24 + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
  25 + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
  26 + </constraints>
  27 + </view>
  28 + </viewController>
  29 + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
  30 + </objects>
  31 + <point key="canvasLocation" x="53" y="375"/>
  32 + </scene>
  33 + </scenes>
  34 + <resources>
  35 + <image name="LaunchImage" width="168" height="185"/>
  36 + </resources>
  37 +</document>
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
  3 + <dependencies>
  4 + <deployment identifier="iOS"/>
  5 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
  6 + </dependencies>
  7 + <scenes>
  8 + <!--Flutter View Controller-->
  9 + <scene sceneID="tne-QT-ifu">
  10 + <objects>
  11 + <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
  12 + <layoutGuides>
  13 + <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
  14 + <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
  15 + </layoutGuides>
  16 + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
  17 + <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
  18 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  19 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
  20 + </view>
  21 + </viewController>
  22 + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
  23 + </objects>
  24 + </scene>
  25 + </scenes>
  26 +</document>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>CFBundleDevelopmentRegion</key>
  6 + <string>$(DEVELOPMENT_LANGUAGE)</string>
  7 + <key>CFBundleExecutable</key>
  8 + <string>$(EXECUTABLE_NAME)</string>
  9 + <key>CFBundleIdentifier</key>
  10 + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
  11 + <key>CFBundleInfoDictionaryVersion</key>
  12 + <string>6.0</string>
  13 + <key>CFBundleName</key>
  14 + <string>example</string>
  15 + <key>CFBundlePackageType</key>
  16 + <string>APPL</string>
  17 + <key>CFBundleShortVersionString</key>
  18 + <string>$(FLUTTER_BUILD_NAME)</string>
  19 + <key>CFBundleSignature</key>
  20 + <string>????</string>
  21 + <key>CFBundleVersion</key>
  22 + <string>$(FLUTTER_BUILD_NUMBER)</string>
  23 + <key>LSRequiresIPhoneOS</key>
  24 + <true/>
  25 + <key>UILaunchStoryboardName</key>
  26 + <string>LaunchScreen</string>
  27 + <key>UIMainStoryboardFile</key>
  28 + <string>Main</string>
  29 + <key>UISupportedInterfaceOrientations</key>
  30 + <array>
  31 + <string>UIInterfaceOrientationPortrait</string>
  32 + <string>UIInterfaceOrientationLandscapeLeft</string>
  33 + <string>UIInterfaceOrientationLandscapeRight</string>
  34 + </array>
  35 + <key>UISupportedInterfaceOrientations~ipad</key>
  36 + <array>
  37 + <string>UIInterfaceOrientationPortrait</string>
  38 + <string>UIInterfaceOrientationPortraitUpsideDown</string>
  39 + <string>UIInterfaceOrientationLandscapeLeft</string>
  40 + <string>UIInterfaceOrientationLandscapeRight</string>
  41 + </array>
  42 + <key>UIViewControllerBasedStatusBarAppearance</key>
  43 + <false/>
  44 +</dict>
  45 +</plist>
  1 +import 'dart:async';
  2 +
  3 +import 'package:flutter/material.dart';
  4 +import 'package:flutter_sms/flutter_sms.dart';
  5 +
  6 +void main() => runApp(MyApp());
  7 +
  8 +class MyApp extends StatefulWidget {
  9 + @override
  10 + _MyAppState createState() => _MyAppState();
  11 +}
  12 +
  13 +class _MyAppState extends State<MyApp> {
  14 + late TextEditingController _controllerPeople, _controllerMessage;
  15 + String? _message, body;
  16 + String _canSendSMSMessage = 'Check is not run.';
  17 + List<String> people = [];
  18 + bool sendDirect = false;
  19 +
  20 + @override
  21 + void initState() {
  22 + super.initState();
  23 + initPlatformState();
  24 + }
  25 +
  26 + Future<void> initPlatformState() async {
  27 + _controllerPeople = TextEditingController();
  28 + _controllerMessage = TextEditingController();
  29 + }
  30 +
  31 + Future<void> _sendSMS(List<String> recipients) async {
  32 + try {
  33 + String _result = await sendSMS(
  34 + message: _controllerMessage.text,
  35 + recipients: recipients,
  36 + sendDirect: sendDirect,
  37 + );
  38 + setState(() => _message = _result);
  39 + } catch (error) {
  40 + setState(() => _message = error.toString());
  41 + }
  42 + }
  43 +
  44 + Future<bool> _canSendSMS() async {
  45 + bool _result = await canSendSMS();
  46 + setState(() => _canSendSMSMessage =
  47 + _result ? 'This unit can send SMS' : 'This unit cannot send SMS');
  48 + return _result;
  49 + }
  50 +
  51 + Widget _phoneTile(String name) {
  52 + return Padding(
  53 + padding: const EdgeInsets.all(3),
  54 + child: Container(
  55 + decoration: BoxDecoration(
  56 + border: Border(
  57 + bottom: BorderSide(color: Colors.grey.shade300),
  58 + top: BorderSide(color: Colors.grey.shade300),
  59 + left: BorderSide(color: Colors.grey.shade300),
  60 + right: BorderSide(color: Colors.grey.shade300),
  61 + )),
  62 + child: Padding(
  63 + padding: const EdgeInsets.all(4),
  64 + child: Column(
  65 + mainAxisAlignment: MainAxisAlignment.center,
  66 + mainAxisSize: MainAxisSize.min,
  67 + children: <Widget>[
  68 + IconButton(
  69 + icon: const Icon(Icons.close),
  70 + onPressed: () => setState(() => people.remove(name)),
  71 + ),
  72 + Padding(
  73 + padding: const EdgeInsets.all(0),
  74 + child: Text(
  75 + name,
  76 + textScaleFactor: 1,
  77 + style: const TextStyle(fontSize: 12),
  78 + ),
  79 + )
  80 + ],
  81 + ),
  82 + )),
  83 + );
  84 + }
  85 +
  86 + @override
  87 + Widget build(BuildContext context) {
  88 + return MaterialApp(
  89 + debugShowCheckedModeBanner: false,
  90 + home: Scaffold(
  91 + appBar: AppBar(
  92 + title: const Text('SMS/MMS Example'),
  93 + ),
  94 + body: ListView(
  95 + children: <Widget>[
  96 + if (people.isEmpty)
  97 + const SizedBox(height: 0)
  98 + else
  99 + SizedBox(
  100 + height: 90,
  101 + child: Padding(
  102 + padding: const EdgeInsets.all(3),
  103 + child: ListView(
  104 + scrollDirection: Axis.horizontal,
  105 + children: List<Widget>.generate(people.length, (int index) {
  106 + return _phoneTile(people[index]);
  107 + }),
  108 + ),
  109 + ),
  110 + ),
  111 + ListTile(
  112 + leading: const Icon(Icons.people),
  113 + title: TextField(
  114 + controller: _controllerPeople,
  115 + decoration:
  116 + const InputDecoration(labelText: 'Add Phone Number'),
  117 + keyboardType: TextInputType.number,
  118 + onChanged: (String value) => setState(() {}),
  119 + ),
  120 + trailing: IconButton(
  121 + icon: const Icon(Icons.add),
  122 + onPressed: _controllerPeople.text.isEmpty
  123 + ? null
  124 + : () => setState(() {
  125 + people.add(_controllerPeople.text.toString());
  126 + _controllerPeople.clear();
  127 + }),
  128 + ),
  129 + ),
  130 + const Divider(),
  131 + ListTile(
  132 + leading: const Icon(Icons.message),
  133 + title: TextField(
  134 + decoration: const InputDecoration(labelText: 'Add Message'),
  135 + controller: _controllerMessage,
  136 + onChanged: (String value) => setState(() {}),
  137 + ),
  138 + ),
  139 + const Divider(),
  140 + ListTile(
  141 + title: const Text('Can send SMS'),
  142 + subtitle: Text(_canSendSMSMessage),
  143 + trailing: IconButton(
  144 + padding: const EdgeInsets.symmetric(vertical: 16),
  145 + icon: const Icon(Icons.check),
  146 + onPressed: () {
  147 + _canSendSMS();
  148 + },
  149 + ),
  150 + ),
  151 + SwitchListTile(
  152 + title: const Text('Send Direct'),
  153 + subtitle: const Text(
  154 + 'Should we skip the additional dialog? (Android only)'),
  155 + value: sendDirect,
  156 + onChanged: (bool newValue) {
  157 + setState(() {
  158 + sendDirect = newValue;
  159 + });
  160 + }),
  161 + Padding(
  162 + padding: const EdgeInsets.all(8),
  163 + child: ElevatedButton(
  164 + style: ButtonStyle(
  165 + backgroundColor: MaterialStateProperty.resolveWith(
  166 + (states) => Theme.of(context).colorScheme.secondary),
  167 + padding: MaterialStateProperty.resolveWith(
  168 + (states) => const EdgeInsets.symmetric(vertical: 16)),
  169 + ),
  170 + onPressed: () {
  171 + _send();
  172 + },
  173 + child: Text(
  174 + 'SEND',
  175 + style: Theme.of(context).textTheme.displayMedium,
  176 + ),
  177 + ),
  178 + ),
  179 + Visibility(
  180 + visible: _message != null,
  181 + child: Row(
  182 + mainAxisAlignment: MainAxisAlignment.center,
  183 + children: <Widget>[
  184 + Expanded(
  185 + child: Padding(
  186 + padding: const EdgeInsets.all(12),
  187 + child: Text(
  188 + _message ?? 'No Data',
  189 + maxLines: null,
  190 + ),
  191 + ),
  192 + ),
  193 + ],
  194 + ),
  195 + ),
  196 + ],
  197 + ),
  198 + ),
  199 + );
  200 + }
  201 +
  202 + void _send() {
  203 + if (people.isEmpty) {
  204 + setState(() => _message = 'At Least 1 Person or Message Required');
  205 + } else {
  206 + _sendSMS(people);
  207 + }
  208 + }
  209 +}
  1 +# Flutter-related
  2 +**/Flutter/ephemeral/
  3 +**/Pods/
  4 +
  5 +# Xcode-related
  6 +**/xcuserdata/
  1 +platform :osx, '10.11'
  2 +
  3 +# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
  4 +ENV['COCOAPODS_DISABLE_STATS'] = 'true'
  5 +
  6 +project 'Runner', {
  7 + 'Debug' => :debug,
  8 + 'Profile' => :release,
  9 + 'Release' => :release,
  10 +}
  11 +
  12 +def parse_KV_file(file, separator='=')
  13 + file_abs_path = File.expand_path(file)
  14 + if !File.exists? file_abs_path
  15 + return [];
  16 + end
  17 + pods_ary = []
  18 + skip_line_start_symbols = ["#", "/"]
  19 + File.foreach(file_abs_path) { |line|
  20 + next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
  21 + plugin = line.split(pattern=separator)
  22 + if plugin.length == 2
  23 + podname = plugin[0].strip()
  24 + path = plugin[1].strip()
  25 + podpath = File.expand_path("#{path}", file_abs_path)
  26 + pods_ary.push({:name => podname, :path => podpath});
  27 + else
  28 + puts "Invalid plugin specification: #{line}"
  29 + end
  30 + }
  31 + return pods_ary
  32 +end
  33 +
  34 +def pubspec_supports_macos(file)
  35 + file_abs_path = File.expand_path(file)
  36 + if !File.exists? file_abs_path
  37 + return false;
  38 + end
  39 + File.foreach(file_abs_path) { |line|
  40 + return true if line =~ /^\s*macos:/
  41 + }
  42 + return false
  43 +end
  44 +
  45 +target 'Runner' do
  46 + use_frameworks!
  47 + use_modular_headers!
  48 +
  49 + # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
  50 + # referring to absolute paths on developers' machines.
  51 + ephemeral_dir = File.join('Flutter', 'ephemeral')
  52 + symlink_dir = File.join(ephemeral_dir, '.symlinks')
  53 + symlink_plugins_dir = File.join(symlink_dir, 'plugins')
  54 + system("rm -rf #{symlink_dir}")
  55 + system("mkdir -p #{symlink_plugins_dir}")
  56 +
  57 + # Flutter Pods
  58 + generated_xcconfig = parse_KV_file(File.join(ephemeral_dir, 'Flutter-Generated.xcconfig'))
  59 + if generated_xcconfig.empty?
  60 + puts "Flutter-Generated.xcconfig must exist. If you're running pod install manually, make sure flutter packages get is executed first."
  61 + end
  62 + generated_xcconfig.map { |p|
  63 + if p[:name] == 'FLUTTER_FRAMEWORK_DIR'
  64 + symlink = File.join(symlink_dir, 'flutter')
  65 + File.symlink(File.dirname(p[:path]), symlink)
  66 + pod 'FlutterMacOS', :path => File.join(symlink, File.basename(p[:path]))
  67 + end
  68 + }
  69 +
  70 + # Plugin Pods
  71 + plugin_pods = parse_KV_file('../.flutter-plugins')
  72 + plugin_pods.map { |p|
  73 + symlink = File.join(symlink_plugins_dir, p[:name])
  74 + File.symlink(p[:path], symlink)
  75 + if pubspec_supports_macos(File.join(symlink, 'pubspec.yaml'))
  76 + pod p[:name], :path => File.join(symlink, 'macos')
  77 + end
  78 + }
  79 +end
  80 +
  81 +# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
  82 +install! 'cocoapods', :disable_input_output_paths => true
  1 +// !$*UTF8*$!
  2 +{
  3 + archiveVersion = 1;
  4 + classes = {
  5 + };
  6 + objectVersion = 51;
  7 + objects = {
  8 +
  9 +/* Begin PBXAggregateTarget section */
  10 + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = {
  11 + isa = PBXAggregateTarget;
  12 + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */;
  13 + buildPhases = (
  14 + 33CC111E2044C6BF0003C045 /* ShellScript */,
  15 + );
  16 + dependencies = (
  17 + );
  18 + name = "Flutter Assemble";
  19 + productName = FLX;
  20 + };
  21 +/* End PBXAggregateTarget section */
  22 +
  23 +/* Begin PBXBuildFile section */
  24 + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; };
  25 + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; };
  26 + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; };
  27 + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; };
  28 + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
  29 + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; };
  30 + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
  31 + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; };
  32 + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = D73912EF22F37F9E000D13A0 /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
  33 +/* End PBXBuildFile section */
  34 +
  35 +/* Begin PBXContainerItemProxy section */
  36 + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = {
  37 + isa = PBXContainerItemProxy;
  38 + containerPortal = 33CC10E52044A3C60003C045 /* Project object */;
  39 + proxyType = 1;
  40 + remoteGlobalIDString = 33CC111A2044C6BA0003C045;
  41 + remoteInfo = FLX;
  42 + };
  43 +/* End PBXContainerItemProxy section */
  44 +
  45 +/* Begin PBXCopyFilesBuildPhase section */
  46 + 33CC110E2044A8840003C045 /* Bundle Framework */ = {
  47 + isa = PBXCopyFilesBuildPhase;
  48 + buildActionMask = 2147483647;
  49 + dstPath = "";
  50 + dstSubfolderSpec = 10;
  51 + files = (
  52 + D73912F222F3801D000D13A0 /* App.framework in Bundle Framework */,
  53 + 33D1A10522148B93006C7A3E /* FlutterMacOS.framework in Bundle Framework */,
  54 + );
  55 + name = "Bundle Framework";
  56 + runOnlyForDeploymentPostprocessing = 0;
  57 + };
  58 +/* End PBXCopyFilesBuildPhase section */
  59 +
  60 +/* Begin PBXFileReference section */
  61 + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = "<group>"; };
  62 + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = "<group>"; };
  63 + 33CC10ED2044A3C60003C045 /* example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example.app"; sourceTree = BUILT_PRODUCTS_DIR; };
  64 + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
  65 + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = "<group>"; };
  66 + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = "<group>"; };
  67 + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = "<group>"; };
  68 + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = "<group>"; };
  69 + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = "<group>"; };
  70 + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = "<group>"; };
  71 + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = "<group>"; };
  72 + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FlutterMacOS.framework; path = Flutter/ephemeral/FlutterMacOS.framework; sourceTree = SOURCE_ROOT; };
  73 + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = "<group>"; };
  74 + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = "<group>"; };
  75 + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = "<group>"; };
  76 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = "<group>"; };
  77 + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = "<group>"; };
  78 + D73912EF22F37F9E000D13A0 /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/ephemeral/App.framework; sourceTree = SOURCE_ROOT; };
  79 +/* End PBXFileReference section */
  80 +
  81 +/* Begin PBXFrameworksBuildPhase section */
  82 + 33CC10EA2044A3C60003C045 /* Frameworks */ = {
  83 + isa = PBXFrameworksBuildPhase;
  84 + buildActionMask = 2147483647;
  85 + files = (
  86 + D73912F022F37F9E000D13A0 /* App.framework in Frameworks */,
  87 + 33D1A10422148B71006C7A3E /* FlutterMacOS.framework in Frameworks */,
  88 + );
  89 + runOnlyForDeploymentPostprocessing = 0;
  90 + };
  91 +/* End PBXFrameworksBuildPhase section */
  92 +
  93 +/* Begin PBXGroup section */
  94 + 33BA886A226E78AF003329D5 /* Configs */ = {
  95 + isa = PBXGroup;
  96 + children = (
  97 + 33E5194F232828860026EE4D /* AppInfo.xcconfig */,
  98 + 9740EEB21CF90195004384FC /* Debug.xcconfig */,
  99 + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
  100 + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */,
  101 + );
  102 + path = Configs;
  103 + sourceTree = "<group>";
  104 + };
  105 + 33CC10E42044A3C60003C045 = {
  106 + isa = PBXGroup;
  107 + children = (
  108 + 33FAB671232836740065AC1E /* Runner */,
  109 + 33CEB47122A05771004F2AC0 /* Flutter */,
  110 + 33CC10EE2044A3C60003C045 /* Products */,
  111 + D73912EC22F37F3D000D13A0 /* Frameworks */,
  112 + );
  113 + sourceTree = "<group>";
  114 + };
  115 + 33CC10EE2044A3C60003C045 /* Products */ = {
  116 + isa = PBXGroup;
  117 + children = (
  118 + 33CC10ED2044A3C60003C045 /* example.app */,
  119 + );
  120 + name = Products;
  121 + sourceTree = "<group>";
  122 + };
  123 + 33CC11242044D66E0003C045 /* Resources */ = {
  124 + isa = PBXGroup;
  125 + children = (
  126 + 33CC10F22044A3C60003C045 /* Assets.xcassets */,
  127 + 33CC10F42044A3C60003C045 /* MainMenu.xib */,
  128 + 33CC10F72044A3C60003C045 /* Info.plist */,
  129 + );
  130 + name = Resources;
  131 + path = ..;
  132 + sourceTree = "<group>";
  133 + };
  134 + 33CEB47122A05771004F2AC0 /* Flutter */ = {
  135 + isa = PBXGroup;
  136 + children = (
  137 + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */,
  138 + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */,
  139 + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */,
  140 + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */,
  141 + D73912EF22F37F9E000D13A0 /* App.framework */,
  142 + 33D1A10322148B71006C7A3E /* FlutterMacOS.framework */,
  143 + );
  144 + path = Flutter;
  145 + sourceTree = "<group>";
  146 + };
  147 + 33FAB671232836740065AC1E /* Runner */ = {
  148 + isa = PBXGroup;
  149 + children = (
  150 + 33CC10F02044A3C60003C045 /* AppDelegate.swift */,
  151 + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */,
  152 + 33E51913231747F40026EE4D /* DebugProfile.entitlements */,
  153 + 33E51914231749380026EE4D /* Release.entitlements */,
  154 + 33CC11242044D66E0003C045 /* Resources */,
  155 + 33BA886A226E78AF003329D5 /* Configs */,
  156 + );
  157 + path = Runner;
  158 + sourceTree = "<group>";
  159 + };
  160 + D73912EC22F37F3D000D13A0 /* Frameworks */ = {
  161 + isa = PBXGroup;
  162 + children = (
  163 + );
  164 + name = Frameworks;
  165 + sourceTree = "<group>";
  166 + };
  167 +/* End PBXGroup section */
  168 +
  169 +/* Begin PBXNativeTarget section */
  170 + 33CC10EC2044A3C60003C045 /* Runner */ = {
  171 + isa = PBXNativeTarget;
  172 + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */;
  173 + buildPhases = (
  174 + 33CC10E92044A3C60003C045 /* Sources */,
  175 + 33CC10EA2044A3C60003C045 /* Frameworks */,
  176 + 33CC10EB2044A3C60003C045 /* Resources */,
  177 + 33CC110E2044A8840003C045 /* Bundle Framework */,
  178 + 3399D490228B24CF009A79C7 /* ShellScript */,
  179 + );
  180 + buildRules = (
  181 + );
  182 + dependencies = (
  183 + 33CC11202044C79F0003C045 /* PBXTargetDependency */,
  184 + );
  185 + name = Runner;
  186 + productName = Runner;
  187 + productReference = 33CC10ED2044A3C60003C045 /* example.app */;
  188 + productType = "com.apple.product-type.application";
  189 + };
  190 +/* End PBXNativeTarget section */
  191 +
  192 +/* Begin PBXProject section */
  193 + 33CC10E52044A3C60003C045 /* Project object */ = {
  194 + isa = PBXProject;
  195 + attributes = {
  196 + LastSwiftUpdateCheck = 0920;
  197 + LastUpgradeCheck = 0930;
  198 + ORGANIZATIONNAME = "The Flutter Authors";
  199 + TargetAttributes = {
  200 + 33CC10EC2044A3C60003C045 = {
  201 + CreatedOnToolsVersion = 9.2;
  202 + LastSwiftMigration = 1100;
  203 + ProvisioningStyle = Automatic;
  204 + SystemCapabilities = {
  205 + com.apple.Sandbox = {
  206 + enabled = 1;
  207 + };
  208 + };
  209 + };
  210 + 33CC111A2044C6BA0003C045 = {
  211 + CreatedOnToolsVersion = 9.2;
  212 + ProvisioningStyle = Manual;
  213 + };
  214 + };
  215 + };
  216 + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */;
  217 + compatibilityVersion = "Xcode 8.0";
  218 + developmentRegion = en;
  219 + hasScannedForEncodings = 0;
  220 + knownRegions = (
  221 + en,
  222 + Base,
  223 + );
  224 + mainGroup = 33CC10E42044A3C60003C045;
  225 + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */;
  226 + projectDirPath = "";
  227 + projectRoot = "";
  228 + targets = (
  229 + 33CC10EC2044A3C60003C045 /* Runner */,
  230 + 33CC111A2044C6BA0003C045 /* Flutter Assemble */,
  231 + );
  232 + };
  233 +/* End PBXProject section */
  234 +
  235 +/* Begin PBXResourcesBuildPhase section */
  236 + 33CC10EB2044A3C60003C045 /* Resources */ = {
  237 + isa = PBXResourcesBuildPhase;
  238 + buildActionMask = 2147483647;
  239 + files = (
  240 + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */,
  241 + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */,
  242 + );
  243 + runOnlyForDeploymentPostprocessing = 0;
  244 + };
  245 +/* End PBXResourcesBuildPhase section */
  246 +
  247 +/* Begin PBXShellScriptBuildPhase section */
  248 + 3399D490228B24CF009A79C7 /* ShellScript */ = {
  249 + isa = PBXShellScriptBuildPhase;
  250 + buildActionMask = 2147483647;
  251 + files = (
  252 + );
  253 + inputFileListPaths = (
  254 + );
  255 + inputPaths = (
  256 + );
  257 + outputFileListPaths = (
  258 + );
  259 + outputPaths = (
  260 + );
  261 + runOnlyForDeploymentPostprocessing = 0;
  262 + shellPath = /bin/sh;
  263 + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename\n";
  264 + };
  265 + 33CC111E2044C6BF0003C045 /* ShellScript */ = {
  266 + isa = PBXShellScriptBuildPhase;
  267 + buildActionMask = 2147483647;
  268 + files = (
  269 + );
  270 + inputFileListPaths = (
  271 + Flutter/ephemeral/FlutterInputs.xcfilelist,
  272 + );
  273 + inputPaths = (
  274 + Flutter/ephemeral/tripwire,
  275 + );
  276 + outputFileListPaths = (
  277 + Flutter/ephemeral/FlutterOutputs.xcfilelist,
  278 + );
  279 + outputPaths = (
  280 + );
  281 + runOnlyForDeploymentPostprocessing = 0;
  282 + shellPath = /bin/sh;
  283 + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
  284 + };
  285 +/* End PBXShellScriptBuildPhase section */
  286 +
  287 +/* Begin PBXSourcesBuildPhase section */
  288 + 33CC10E92044A3C60003C045 /* Sources */ = {
  289 + isa = PBXSourcesBuildPhase;
  290 + buildActionMask = 2147483647;
  291 + files = (
  292 + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */,
  293 + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */,
  294 + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */,
  295 + );
  296 + runOnlyForDeploymentPostprocessing = 0;
  297 + };
  298 +/* End PBXSourcesBuildPhase section */
  299 +
  300 +/* Begin PBXTargetDependency section */
  301 + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = {
  302 + isa = PBXTargetDependency;
  303 + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */;
  304 + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */;
  305 + };
  306 +/* End PBXTargetDependency section */
  307 +
  308 +/* Begin PBXVariantGroup section */
  309 + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = {
  310 + isa = PBXVariantGroup;
  311 + children = (
  312 + 33CC10F52044A3C60003C045 /* Base */,
  313 + );
  314 + name = MainMenu.xib;
  315 + path = Runner;
  316 + sourceTree = "<group>";
  317 + };
  318 +/* End PBXVariantGroup section */
  319 +
  320 +/* Begin XCBuildConfiguration section */
  321 + 338D0CE9231458BD00FA5F75 /* Profile */ = {
  322 + isa = XCBuildConfiguration;
  323 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  324 + buildSettings = {
  325 + ALWAYS_SEARCH_USER_PATHS = NO;
  326 + CLANG_ANALYZER_NONNULL = YES;
  327 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  328 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  329 + CLANG_CXX_LIBRARY = "libc++";
  330 + CLANG_ENABLE_MODULES = YES;
  331 + CLANG_ENABLE_OBJC_ARC = YES;
  332 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  333 + CLANG_WARN_BOOL_CONVERSION = YES;
  334 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  335 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  336 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  337 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  338 + CLANG_WARN_EMPTY_BODY = YES;
  339 + CLANG_WARN_ENUM_CONVERSION = YES;
  340 + CLANG_WARN_INFINITE_RECURSION = YES;
  341 + CLANG_WARN_INT_CONVERSION = YES;
  342 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  343 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  344 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  345 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  346 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  347 + CODE_SIGN_IDENTITY = "-";
  348 + COPY_PHASE_STRIP = NO;
  349 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  350 + ENABLE_NS_ASSERTIONS = NO;
  351 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  352 + GCC_C_LANGUAGE_STANDARD = gnu11;
  353 + GCC_NO_COMMON_BLOCKS = YES;
  354 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  355 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  356 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  357 + GCC_WARN_UNUSED_FUNCTION = YES;
  358 + GCC_WARN_UNUSED_VARIABLE = YES;
  359 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  360 + MTL_ENABLE_DEBUG_INFO = NO;
  361 + SDKROOT = macosx;
  362 + SWIFT_COMPILATION_MODE = wholemodule;
  363 + SWIFT_OPTIMIZATION_LEVEL = "-O";
  364 + };
  365 + name = Profile;
  366 + };
  367 + 338D0CEA231458BD00FA5F75 /* Profile */ = {
  368 + isa = XCBuildConfiguration;
  369 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  370 + buildSettings = {
  371 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  372 + CLANG_ENABLE_MODULES = YES;
  373 + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
  374 + CODE_SIGN_STYLE = Automatic;
  375 + COMBINE_HIDPI_IMAGES = YES;
  376 + FRAMEWORK_SEARCH_PATHS = (
  377 + "$(inherited)",
  378 + "$(PROJECT_DIR)/Flutter/ephemeral",
  379 + );
  380 + INFOPLIST_FILE = Runner/Info.plist;
  381 + LD_RUNPATH_SEARCH_PATHS = (
  382 + "$(inherited)",
  383 + "@executable_path/../Frameworks",
  384 + );
  385 + PROVISIONING_PROFILE_SPECIFIER = "";
  386 + SWIFT_VERSION = 5.0;
  387 + };
  388 + name = Profile;
  389 + };
  390 + 338D0CEB231458BD00FA5F75 /* Profile */ = {
  391 + isa = XCBuildConfiguration;
  392 + buildSettings = {
  393 + CODE_SIGN_STYLE = Manual;
  394 + PRODUCT_NAME = "$(TARGET_NAME)";
  395 + };
  396 + name = Profile;
  397 + };
  398 + 33CC10F92044A3C60003C045 /* Debug */ = {
  399 + isa = XCBuildConfiguration;
  400 + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
  401 + buildSettings = {
  402 + ALWAYS_SEARCH_USER_PATHS = NO;
  403 + CLANG_ANALYZER_NONNULL = YES;
  404 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  405 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  406 + CLANG_CXX_LIBRARY = "libc++";
  407 + CLANG_ENABLE_MODULES = YES;
  408 + CLANG_ENABLE_OBJC_ARC = YES;
  409 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  410 + CLANG_WARN_BOOL_CONVERSION = YES;
  411 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  412 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  413 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  414 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  415 + CLANG_WARN_EMPTY_BODY = YES;
  416 + CLANG_WARN_ENUM_CONVERSION = YES;
  417 + CLANG_WARN_INFINITE_RECURSION = YES;
  418 + CLANG_WARN_INT_CONVERSION = YES;
  419 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  420 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  421 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  422 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  423 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  424 + CODE_SIGN_IDENTITY = "-";
  425 + COPY_PHASE_STRIP = NO;
  426 + DEBUG_INFORMATION_FORMAT = dwarf;
  427 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  428 + ENABLE_TESTABILITY = YES;
  429 + GCC_C_LANGUAGE_STANDARD = gnu11;
  430 + GCC_DYNAMIC_NO_PIC = NO;
  431 + GCC_NO_COMMON_BLOCKS = YES;
  432 + GCC_OPTIMIZATION_LEVEL = 0;
  433 + GCC_PREPROCESSOR_DEFINITIONS = (
  434 + "DEBUG=1",
  435 + "$(inherited)",
  436 + );
  437 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  438 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  439 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  440 + GCC_WARN_UNUSED_FUNCTION = YES;
  441 + GCC_WARN_UNUSED_VARIABLE = YES;
  442 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  443 + MTL_ENABLE_DEBUG_INFO = YES;
  444 + ONLY_ACTIVE_ARCH = YES;
  445 + SDKROOT = macosx;
  446 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
  447 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  448 + };
  449 + name = Debug;
  450 + };
  451 + 33CC10FA2044A3C60003C045 /* Release */ = {
  452 + isa = XCBuildConfiguration;
  453 + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
  454 + buildSettings = {
  455 + ALWAYS_SEARCH_USER_PATHS = NO;
  456 + CLANG_ANALYZER_NONNULL = YES;
  457 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
  458 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
  459 + CLANG_CXX_LIBRARY = "libc++";
  460 + CLANG_ENABLE_MODULES = YES;
  461 + CLANG_ENABLE_OBJC_ARC = YES;
  462 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
  463 + CLANG_WARN_BOOL_CONVERSION = YES;
  464 + CLANG_WARN_CONSTANT_CONVERSION = YES;
  465 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
  466 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
  467 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
  468 + CLANG_WARN_EMPTY_BODY = YES;
  469 + CLANG_WARN_ENUM_CONVERSION = YES;
  470 + CLANG_WARN_INFINITE_RECURSION = YES;
  471 + CLANG_WARN_INT_CONVERSION = YES;
  472 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
  473 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
  474 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
  475 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
  476 + CLANG_WARN_SUSPICIOUS_MOVE = YES;
  477 + CODE_SIGN_IDENTITY = "-";
  478 + COPY_PHASE_STRIP = NO;
  479 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
  480 + ENABLE_NS_ASSERTIONS = NO;
  481 + ENABLE_STRICT_OBJC_MSGSEND = YES;
  482 + GCC_C_LANGUAGE_STANDARD = gnu11;
  483 + GCC_NO_COMMON_BLOCKS = YES;
  484 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  485 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  486 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  487 + GCC_WARN_UNUSED_FUNCTION = YES;
  488 + GCC_WARN_UNUSED_VARIABLE = YES;
  489 + MACOSX_DEPLOYMENT_TARGET = 10.11;
  490 + MTL_ENABLE_DEBUG_INFO = NO;
  491 + SDKROOT = macosx;
  492 + SWIFT_COMPILATION_MODE = wholemodule;
  493 + SWIFT_OPTIMIZATION_LEVEL = "-O";
  494 + };
  495 + name = Release;
  496 + };
  497 + 33CC10FC2044A3C60003C045 /* Debug */ = {
  498 + isa = XCBuildConfiguration;
  499 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  500 + buildSettings = {
  501 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  502 + CLANG_ENABLE_MODULES = YES;
  503 + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements;
  504 + CODE_SIGN_STYLE = Automatic;
  505 + COMBINE_HIDPI_IMAGES = YES;
  506 + FRAMEWORK_SEARCH_PATHS = (
  507 + "$(inherited)",
  508 + "$(PROJECT_DIR)/Flutter/ephemeral",
  509 + );
  510 + INFOPLIST_FILE = Runner/Info.plist;
  511 + LD_RUNPATH_SEARCH_PATHS = (
  512 + "$(inherited)",
  513 + "@executable_path/../Frameworks",
  514 + );
  515 + PROVISIONING_PROFILE_SPECIFIER = "";
  516 + SWIFT_OPTIMIZATION_LEVEL = "-Onone";
  517 + SWIFT_VERSION = 5.0;
  518 + };
  519 + name = Debug;
  520 + };
  521 + 33CC10FD2044A3C60003C045 /* Release */ = {
  522 + isa = XCBuildConfiguration;
  523 + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */;
  524 + buildSettings = {
  525 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
  526 + CLANG_ENABLE_MODULES = YES;
  527 + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements;
  528 + CODE_SIGN_STYLE = Automatic;
  529 + COMBINE_HIDPI_IMAGES = YES;
  530 + FRAMEWORK_SEARCH_PATHS = (
  531 + "$(inherited)",
  532 + "$(PROJECT_DIR)/Flutter/ephemeral",
  533 + );
  534 + INFOPLIST_FILE = Runner/Info.plist;
  535 + LD_RUNPATH_SEARCH_PATHS = (
  536 + "$(inherited)",
  537 + "@executable_path/../Frameworks",
  538 + );
  539 + PROVISIONING_PROFILE_SPECIFIER = "";
  540 + SWIFT_VERSION = 5.0;
  541 + };
  542 + name = Release;
  543 + };
  544 + 33CC111C2044C6BA0003C045 /* Debug */ = {
  545 + isa = XCBuildConfiguration;
  546 + buildSettings = {
  547 + CODE_SIGN_STYLE = Manual;
  548 + PRODUCT_NAME = "$(TARGET_NAME)";
  549 + };
  550 + name = Debug;
  551 + };
  552 + 33CC111D2044C6BA0003C045 /* Release */ = {
  553 + isa = XCBuildConfiguration;
  554 + buildSettings = {
  555 + CODE_SIGN_STYLE = Automatic;
  556 + PRODUCT_NAME = "$(TARGET_NAME)";
  557 + };
  558 + name = Release;
  559 + };
  560 +/* End XCBuildConfiguration section */
  561 +
  562 +/* Begin XCConfigurationList section */
  563 + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = {
  564 + isa = XCConfigurationList;
  565 + buildConfigurations = (
  566 + 33CC10F92044A3C60003C045 /* Debug */,
  567 + 33CC10FA2044A3C60003C045 /* Release */,
  568 + 338D0CE9231458BD00FA5F75 /* Profile */,
  569 + );
  570 + defaultConfigurationIsVisible = 0;
  571 + defaultConfigurationName = Release;
  572 + };
  573 + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = {
  574 + isa = XCConfigurationList;
  575 + buildConfigurations = (
  576 + 33CC10FC2044A3C60003C045 /* Debug */,
  577 + 33CC10FD2044A3C60003C045 /* Release */,
  578 + 338D0CEA231458BD00FA5F75 /* Profile */,
  579 + );
  580 + defaultConfigurationIsVisible = 0;
  581 + defaultConfigurationName = Release;
  582 + };
  583 + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = {
  584 + isa = XCConfigurationList;
  585 + buildConfigurations = (
  586 + 33CC111C2044C6BA0003C045 /* Debug */,
  587 + 33CC111D2044C6BA0003C045 /* Release */,
  588 + 338D0CEB231458BD00FA5F75 /* Profile */,
  589 + );
  590 + defaultConfigurationIsVisible = 0;
  591 + defaultConfigurationName = Release;
  592 + };
  593 +/* End XCConfigurationList section */
  594 + };
  595 + rootObject = 33CC10E52044A3C60003C045 /* Project object */;
  596 +}
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Scheme
  3 + LastUpgradeVersion = "1000"
  4 + version = "1.3">
  5 + <BuildAction
  6 + parallelizeBuildables = "YES"
  7 + buildImplicitDependencies = "YES">
  8 + <BuildActionEntries>
  9 + <BuildActionEntry
  10 + buildForTesting = "YES"
  11 + buildForRunning = "YES"
  12 + buildForProfiling = "YES"
  13 + buildForArchiving = "YES"
  14 + buildForAnalyzing = "YES">
  15 + <BuildableReference
  16 + BuildableIdentifier = "primary"
  17 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  18 + BuildableName = "example.app"
  19 + BlueprintName = "Runner"
  20 + ReferencedContainer = "container:Runner.xcodeproj">
  21 + </BuildableReference>
  22 + </BuildActionEntry>
  23 + </BuildActionEntries>
  24 + </BuildAction>
  25 + <TestAction
  26 + buildConfiguration = "Debug"
  27 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  28 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  29 + shouldUseLaunchSchemeArgsEnv = "YES">
  30 + <Testables>
  31 + <TestableReference
  32 + skipped = "NO">
  33 + <BuildableReference
  34 + BuildableIdentifier = "primary"
  35 + BlueprintIdentifier = "00380F9121DF178D00097171"
  36 + BuildableName = "RunnerUITests.xctest"
  37 + BlueprintName = "RunnerUITests"
  38 + ReferencedContainer = "container:Runner.xcodeproj">
  39 + </BuildableReference>
  40 + </TestableReference>
  41 + </Testables>
  42 + <MacroExpansion>
  43 + <BuildableReference
  44 + BuildableIdentifier = "primary"
  45 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  46 + BuildableName = "example.app"
  47 + BlueprintName = "Runner"
  48 + ReferencedContainer = "container:Runner.xcodeproj">
  49 + </BuildableReference>
  50 + </MacroExpansion>
  51 + <AdditionalOptions>
  52 + </AdditionalOptions>
  53 + </TestAction>
  54 + <LaunchAction
  55 + buildConfiguration = "Debug"
  56 + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
  57 + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
  58 + launchStyle = "0"
  59 + useCustomWorkingDirectory = "NO"
  60 + ignoresPersistentStateOnLaunch = "NO"
  61 + debugDocumentVersioning = "YES"
  62 + debugServiceExtension = "internal"
  63 + allowLocationSimulation = "YES">
  64 + <BuildableProductRunnable
  65 + runnableDebuggingMode = "0">
  66 + <BuildableReference
  67 + BuildableIdentifier = "primary"
  68 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  69 + BuildableName = "example.app"
  70 + BlueprintName = "Runner"
  71 + ReferencedContainer = "container:Runner.xcodeproj">
  72 + </BuildableReference>
  73 + </BuildableProductRunnable>
  74 + <AdditionalOptions>
  75 + </AdditionalOptions>
  76 + </LaunchAction>
  77 + <ProfileAction
  78 + buildConfiguration = "Release"
  79 + shouldUseLaunchSchemeArgsEnv = "YES"
  80 + savedToolIdentifier = ""
  81 + useCustomWorkingDirectory = "NO"
  82 + debugDocumentVersioning = "YES">
  83 + <BuildableProductRunnable
  84 + runnableDebuggingMode = "0">
  85 + <BuildableReference
  86 + BuildableIdentifier = "primary"
  87 + BlueprintIdentifier = "33CC10EC2044A3C60003C045"
  88 + BuildableName = "example.app"
  89 + BlueprintName = "Runner"
  90 + ReferencedContainer = "container:Runner.xcodeproj">
  91 + </BuildableReference>
  92 + </BuildableProductRunnable>
  93 + </ProfileAction>
  94 + <AnalyzeAction
  95 + buildConfiguration = "Debug">
  96 + </AnalyzeAction>
  97 + <ArchiveAction
  98 + buildConfiguration = "Release"
  99 + revealArchiveInOrganizer = "YES">
  100 + </ArchiveAction>
  101 +</Scheme>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<Workspace
  3 + version = "1.0">
  4 + <FileRef
  5 + location = "group:Runner.xcodeproj">
  6 + </FileRef>
  7 +</Workspace>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3 +<plist version="1.0">
  4 +<dict>
  5 + <key>IDEDidComputeMac32BitWarning</key>
  6 + <true/>
  7 +</dict>
  8 +</plist>