create-turniza-app 1.0.9 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-turniza-app",
3
- "version": "1.0.9",
3
+ "version": "1.1.0",
4
4
  "description": "CLI scaffold for creating new Turniza monorepo apps (Flutter + Astro + Cloudflare Workers)",
5
5
  "type": "module",
6
6
  "bin": {
package/src/prompts.ts CHANGED
@@ -7,6 +7,8 @@ export interface ProjectOptions {
7
7
  projectNameSnake: string;
8
8
  org: string;
9
9
  orgDomain: string;
10
+ bundleId: string;
11
+ androidNamespace: string;
10
12
  githubOrg: string;
11
13
  emoji: string;
12
14
  includeMobile: boolean;
@@ -64,14 +66,21 @@ export async function askProjectOptions(
64
66
  }
65
67
  }
66
68
 
69
+ // Force lowercase for project name to avoid issues
70
+ projectName = projectName!.toLowerCase();
71
+
67
72
  // ── Step 2: Rest of options ───────────────────────────────
68
73
  const answers = await prompts(
69
74
  [
70
75
  {
71
76
  type: 'text',
72
- name: 'org',
73
- message: 'Organization name:',
74
- initial: 'Turniza',
77
+ name: 'orgDomain',
78
+ message: 'Organization domain (e.g. com.turniza, es.turniza):',
79
+ initial: 'com.turniza',
80
+ validate: (value: string) =>
81
+ /^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+$/.test(value)
82
+ ? true
83
+ : 'Must be a valid domain-style identifier (e.g. com.example)',
75
84
  },
76
85
  {
77
86
  type: 'text',
@@ -119,16 +128,30 @@ export async function askProjectOptions(
119
128
  { onCancel },
120
129
  );
121
130
 
122
- const org = answers.org as string;
131
+ const orgDomain = (answers.orgDomain as string).toLowerCase();
123
132
  const today = new Date().toISOString().split('T')[0]!;
133
+ const projectNameSnake = toSnakeCase(projectName);
134
+
135
+ // Derive useful variables
136
+ // e.g. orgDomain = "es.turniza" -> bundleId = "es.turniza.project_name"
137
+ // We also might want a simple "org" name for title usage if needed,
138
+ // lets strip the TLD from domain or just use the second part.
139
+ // For "com.turniza", org is "Turniza". For "es.turniza", org is "Turniza".
140
+ // This is optional but good for headers.
141
+ const parts = orgDomain.split('.');
142
+ const orgName = parts.length > 1 ? toTitleCase(parts[parts.length - 1]) : 'MyApp';
143
+
144
+ const bundleId = `${orgDomain}.${projectNameSnake}`;
124
145
 
125
146
  return {
126
- projectName: projectName!,
127
- projectTitle: toTitleCase(projectName!),
147
+ projectName,
148
+ projectTitle: toTitleCase(projectName),
128
149
  projectDescription: answers.description as string,
129
- projectNameSnake: toSnakeCase(projectName!),
130
- org,
131
- orgDomain: `${org.toLowerCase()}.com`,
150
+ projectNameSnake,
151
+ org: orgName, // For display/docs purposes mostly
152
+ orgDomain,
153
+ bundleId,
154
+ androidNamespace: bundleId, // Usually same as bundleId for Flutter
132
155
  githubOrg: answers.githubOrg as string,
133
156
  emoji: answers.emoji as string,
134
157
  includeMobile: answers.includeMobile as boolean,
@@ -15,6 +15,8 @@ function makeOptions(overrides: Partial<ProjectOptions> = {}): ProjectOptions {
15
15
  projectNameSnake: 'test_project',
16
16
  org: 'TestOrg',
17
17
  orgDomain: 'testorg.com',
18
+ bundleId: 'com.testorg.test_project',
19
+ androidNamespace: 'com.testorg.test_project',
18
20
  githubOrg: 'TestOrg',
19
21
  emoji: '🧪',
20
22
  includeMobile: false,
package/src/scaffold.ts CHANGED
@@ -43,7 +43,10 @@ export async function scaffoldProject(options: ProjectOptions): Promise<void> {
43
43
  ]);
44
44
 
45
45
  // Place Kotlin MainActivity at the correct package path
46
- const orgLower = options.org.toLowerCase();
46
+ // bundleId is typically "com.turniza.project_name" or "es.turniza.project_name"
47
+ // We want to turn dots into path separators: "es/turniza/project_name"
48
+ const packagePath = options.bundleId.replace(/\./g, '/');
49
+
47
50
  const kotlinPackageDir = join(
48
51
  mobileTarget,
49
52
  'android',
@@ -51,9 +54,7 @@ export async function scaffoldProject(options: ProjectOptions): Promise<void> {
51
54
  'src',
52
55
  'main',
53
56
  'kotlin',
54
- 'com',
55
- orgLower,
56
- options.projectNameSnake,
57
+ ...packagePath.split('/'),
57
58
  );
58
59
  await processTemplateDir(
59
60
  join(TEMPLATES_DIR, 'mobile', '_kotlin'),
@@ -26,11 +26,19 @@ app.*.map.json
26
26
  **/ios/Flutter/ephemeral/
27
27
  **/ios/Flutter/flutter_export_environment.sh
28
28
 
29
+ # Flutter auto-generated plugin registrants
30
+ **/android/**/GeneratedPluginRegistrant.java
31
+ **/ios/Runner/GeneratedPluginRegistrant.h
32
+ **/ios/Runner/GeneratedPluginRegistrant.m
33
+
29
34
  # Android Studio build artifacts
30
35
  **/android/app/debug
31
36
  **/android/app/profile
32
37
  **/android/app/release
33
38
 
39
+ # Gradle wrapper (downloaded automatically)
40
+ **/android/gradle/wrapper/gradle-wrapper.jar
41
+
34
42
  # iOS
35
43
  **/ios/Pods/
36
44
  **/ios/.symlinks/
@@ -1,4 +1,4 @@
1
- package com.{{org}}.{{projectNameSnake}}
1
+ package {{androidNamespace}}
2
2
 
3
3
  import io.flutter.embedding.android.FlutterActivity
4
4
 
@@ -0,0 +1,2 @@
1
+ #Sun Feb 15 10:46:50 CET 2026
2
+ gradle.version=8.14
@@ -6,7 +6,7 @@ id("dev.flutter.flutter-gradle-plugin")
6
6
  }
7
7
 
8
8
  android {
9
- namespace = "com.{{org}}.{{projectNameSnake}}"
9
+ namespace = "{{androidNamespace}}"
10
10
  compileSdk = flutter.compileSdkVersion
11
11
  ndkVersion = flutter.ndkVersion
12
12
 
@@ -21,7 +21,7 @@ jvmTarget = JavaVersion.VERSION_17.toString()
21
21
 
22
22
  defaultConfig {
23
23
  // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
24
- applicationId = "com.{{org}}.{{projectNameSnake}}"
24
+ applicationId = "{{androidNamespace}}"
25
25
  // You can update the following values to match your application needs.
26
26
  // For more information, see: https://flutter.dev/to/review-gradle-config.
27
27
  minSdk = flutter.minSdkVersion
@@ -1,12 +1,10 @@
1
- // !$*UTF8*$!
2
- {
1
+ // !$*UTF8*$! {
3
2
  archiveVersion = 1;
4
3
  classes = {
5
4
  };
6
5
  objectVersion = 54;
7
6
  objects = {
8
-
9
- /* Begin PBXBuildFile section */
7
+ /* Begin PBXBuildFile section */
10
8
  1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
11
9
  331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
12
10
  3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
@@ -14,9 +12,8 @@
14
12
  97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
15
13
  97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
16
14
  97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
17
- /* End PBXBuildFile section */
18
-
19
- /* Begin PBXContainerItemProxy section */
15
+ /* End PBXBuildFile section */
16
+ /* Begin PBXContainerItemProxy section */
20
17
  331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = {
21
18
  isa = PBXContainerItemProxy;
22
19
  containerPortal = 97C146E61CF9000F007C117D /* Project object */;
@@ -24,9 +21,8 @@
24
21
  remoteGlobalIDString = 97C146ED1CF9000F007C117D;
25
22
  remoteInfo = Runner;
26
23
  };
27
- /* End PBXContainerItemProxy section */
28
-
29
- /* Begin PBXCopyFilesBuildPhase section */
24
+ /* End PBXContainerItemProxy section */
25
+ /* Begin PBXCopyFilesBuildPhase section */
30
26
  9705A1C41CF9048500538489 /* Embed Frameworks */ = {
31
27
  isa = PBXCopyFilesBuildPhase;
32
28
  buildActionMask = 2147483647;
@@ -37,27 +33,38 @@
37
33
  name = "Embed Frameworks";
38
34
  runOnlyForDeploymentPostprocessing = 0;
39
35
  };
40
- /* End PBXCopyFilesBuildPhase section */
41
-
42
- /* Begin PBXFileReference section */
36
+ /* End PBXCopyFilesBuildPhase section */
37
+ /* Begin PBXFileReference section */
43
38
  1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
44
- 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
39
+ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4;
40
+ lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
45
41
  331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; };
46
42
  331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
47
- 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
43
+ 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4;
44
+ lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist;
45
+ sourceTree = "<group>"; };
48
46
  74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
49
- 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
50
- 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
51
- 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
52
- 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
53
- 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
54
- 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
55
- 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
56
- 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
57
- 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
58
- /* End PBXFileReference section */
59
-
60
- /* Begin PBXFrameworksBuildPhase section */
47
+ 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4;
48
+ lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
49
+ 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>";
50
+ };
51
+ 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4;
52
+ lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig;
53
+ sourceTree = "<group>"; };
54
+ 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference;
55
+ fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
56
+ 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference;
57
+ explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app;
58
+ sourceTree = BUILT_PRODUCTS_DIR; };
59
+ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = " <group>"; };
60
+ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference;
61
+ lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = " <group>"; };
62
+ 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference;
63
+ lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
64
+ 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference;
65
+ lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = " <group>"; };
66
+ /* End PBXFileReference section */
67
+ /* Begin PBXFrameworksBuildPhase section */
61
68
  97C146EB1CF9000F007C117D /* Frameworks */ = {
62
69
  isa = PBXFrameworksBuildPhase;
63
70
  buildActionMask = 2147483647;
@@ -65,9 +72,8 @@
65
72
  );
66
73
  runOnlyForDeploymentPostprocessing = 0;
67
74
  };
68
- /* End PBXFrameworksBuildPhase section */
69
-
70
- /* Begin PBXGroup section */
75
+ /* End PBXFrameworksBuildPhase section */
76
+ /* Begin PBXGroup section */
71
77
  331C8082294A63A400263BE5 /* RunnerTests */ = {
72
78
  isa = PBXGroup;
73
79
  children = (
@@ -121,9 +127,8 @@
121
127
  path = Runner;
122
128
  sourceTree = "<group>";
123
129
  };
124
- /* End PBXGroup section */
125
-
126
- /* Begin PBXNativeTarget section */
130
+ /* End PBXGroup section */
131
+ /* Begin PBXNativeTarget section */
127
132
  331C8080294A63A400263BE5 /* RunnerTests */ = {
128
133
  isa = PBXNativeTarget;
129
134
  buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
@@ -161,9 +166,8 @@
161
166
  productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
162
167
  productType = "com.apple.product-type.application";
163
168
  };
164
- /* End PBXNativeTarget section */
165
-
166
- /* Begin PBXProject section */
169
+ /* End PBXNativeTarget section */
170
+ /* Begin PBXProject section */
167
171
  97C146E61CF9000F007C117D /* Project object */ = {
168
172
  isa = PBXProject;
169
173
  attributes = {
@@ -198,9 +202,8 @@
198
202
  331C8080294A63A400263BE5 /* RunnerTests */,
199
203
  );
200
204
  };
201
- /* End PBXProject section */
202
-
203
- /* Begin PBXResourcesBuildPhase section */
205
+ /* End PBXProject section */
206
+ /* Begin PBXResourcesBuildPhase section */
204
207
  331C807F294A63A400263BE5 /* Resources */ = {
205
208
  isa = PBXResourcesBuildPhase;
206
209
  buildActionMask = 2147483647;
@@ -219,9 +222,8 @@
219
222
  );
220
223
  runOnlyForDeploymentPostprocessing = 0;
221
224
  };
222
- /* End PBXResourcesBuildPhase section */
223
-
224
- /* Begin PBXShellScriptBuildPhase section */
225
+ /* End PBXResourcesBuildPhase section */
226
+ /* Begin PBXShellScriptBuildPhase section */
225
227
  3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
226
228
  isa = PBXShellScriptBuildPhase;
227
229
  alwaysOutOfDate = 1;
@@ -253,9 +255,8 @@
253
255
  shellPath = /bin/sh;
254
256
  shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
255
257
  };
256
- /* End PBXShellScriptBuildPhase section */
257
-
258
- /* Begin PBXSourcesBuildPhase section */
258
+ /* End PBXShellScriptBuildPhase section */
259
+ /* Begin PBXSourcesBuildPhase section */
259
260
  331C807D294A63A400263BE5 /* Sources */ = {
260
261
  isa = PBXSourcesBuildPhase;
261
262
  buildActionMask = 2147483647;
@@ -273,17 +274,15 @@
273
274
  );
274
275
  runOnlyForDeploymentPostprocessing = 0;
275
276
  };
276
- /* End PBXSourcesBuildPhase section */
277
-
278
- /* Begin PBXTargetDependency section */
277
+ /* End PBXSourcesBuildPhase section */
278
+ /* Begin PBXTargetDependency section */
279
279
  331C8086294A63A400263BE5 /* PBXTargetDependency */ = {
280
280
  isa = PBXTargetDependency;
281
281
  target = 97C146ED1CF9000F007C117D /* Runner */;
282
282
  targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */;
283
283
  };
284
- /* End PBXTargetDependency section */
285
-
286
- /* Begin PBXVariantGroup section */
284
+ /* End PBXTargetDependency section */
285
+ /* Begin PBXVariantGroup section */
287
286
  97C146FA1CF9000F007C117D /* Main.storyboard */ = {
288
287
  isa = PBXVariantGroup;
289
288
  children = (
@@ -300,9 +299,8 @@
300
299
  name = LaunchScreen.storyboard;
301
300
  sourceTree = "<group>";
302
301
  };
303
- /* End PBXVariantGroup section */
304
-
305
- /* Begin XCBuildConfiguration section */
302
+ /* End PBXVariantGroup section */
303
+ /* Begin XCBuildConfiguration section */
306
304
  249021D3217E4FDB00AE95B9 /* Profile */ = {
307
305
  isa = XCBuildConfiguration;
308
306
  buildSettings = {
@@ -368,7 +366,7 @@
368
366
  "$(inherited)",
369
367
  "@executable_path/Frameworks",
370
368
  );
371
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}};
369
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}};
372
370
  PRODUCT_NAME = "$(TARGET_NAME)";
373
371
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
374
372
  SWIFT_VERSION = 5.0;
@@ -384,7 +382,7 @@
384
382
  CURRENT_PROJECT_VERSION = 1;
385
383
  GENERATE_INFOPLIST_FILE = YES;
386
384
  MARKETING_VERSION = 1.0;
387
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}}.RunnerTests;
385
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}}.RunnerTests;
388
386
  PRODUCT_NAME = "$(TARGET_NAME)";
389
387
  SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
390
388
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -401,7 +399,7 @@
401
399
  CURRENT_PROJECT_VERSION = 1;
402
400
  GENERATE_INFOPLIST_FILE = YES;
403
401
  MARKETING_VERSION = 1.0;
404
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}}.RunnerTests;
402
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}}.RunnerTests;
405
403
  PRODUCT_NAME = "$(TARGET_NAME)";
406
404
  SWIFT_VERSION = 5.0;
407
405
  TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -416,7 +414,7 @@
416
414
  CURRENT_PROJECT_VERSION = 1;
417
415
  GENERATE_INFOPLIST_FILE = YES;
418
416
  MARKETING_VERSION = 1.0;
419
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}}.RunnerTests;
417
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}}.RunnerTests;
420
418
  PRODUCT_NAME = "$(TARGET_NAME)";
421
419
  SWIFT_VERSION = 5.0;
422
420
  TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner";
@@ -547,7 +545,7 @@
547
545
  "$(inherited)",
548
546
  "@executable_path/Frameworks",
549
547
  );
550
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}};
548
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}};
551
549
  PRODUCT_NAME = "$(TARGET_NAME)";
552
550
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
553
551
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -569,7 +567,7 @@
569
567
  "$(inherited)",
570
568
  "@executable_path/Frameworks",
571
569
  );
572
- PRODUCT_BUNDLE_IDENTIFIER = com.{{org}}.{{projectNameSnake}};
570
+ PRODUCT_BUNDLE_IDENTIFIER = {{bundleId}};
573
571
  PRODUCT_NAME = "$(TARGET_NAME)";
574
572
  SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
575
573
  SWIFT_VERSION = 5.0;
@@ -577,9 +575,8 @@
577
575
  };
578
576
  name = Release;
579
577
  };
580
- /* End XCBuildConfiguration section */
581
-
582
- /* Begin XCConfigurationList section */
578
+ /* End XCBuildConfiguration section */
579
+ /* Begin XCConfigurationList section */
583
580
  331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = {
584
581
  isa = XCConfigurationList;
585
582
  buildConfigurations = (
@@ -610,7 +607,7 @@
610
607
  defaultConfigurationIsVisible = 0;
611
608
  defaultConfigurationName = Release;
612
609
  };
613
- /* End XCConfigurationList section */
610
+ /* End XCConfigurationList section */
614
611
  };
615
612
  rootObject = 97C146E61CF9000F007C117D /* Project object */;
616
613
  }
@@ -1,24 +0,0 @@
1
- package io.flutter.plugins;
2
-
3
- import androidx.annotation.Keep;
4
- import androidx.annotation.NonNull;
5
- import io.flutter.Log;
6
-
7
- import io.flutter.embedding.engine.FlutterEngine;
8
-
9
- /**
10
- * Generated file. Do not edit.
11
- * This file is generated by the Flutter tool based on the
12
- * plugins that support the Android platform.
13
- */
14
- @Keep
15
- public final class GeneratedPluginRegistrant {
16
- private static final String TAG = "GeneratedPluginRegistrant";
17
- public static void registerWith(@NonNull FlutterEngine flutterEngine) {
18
- try {
19
- flutterEngine.getPlugins().add(new dev.flutter.plugins.integration_test.IntegrationTestPlugin());
20
- } catch (Exception e) {
21
- Log.e(TAG, "Error registering plugin integration_test, dev.flutter.plugins.integration_test.IntegrationTestPlugin", e);
22
- }
23
- }
24
- }
@@ -1,19 +0,0 @@
1
- //
2
- // Generated file. Do not edit.
3
- //
4
-
5
- // clang-format off
6
-
7
- #ifndef GeneratedPluginRegistrant_h
8
- #define GeneratedPluginRegistrant_h
9
-
10
- #import <Flutter/Flutter.h>
11
-
12
- NS_ASSUME_NONNULL_BEGIN
13
-
14
- @interface GeneratedPluginRegistrant : NSObject
15
- + (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;
16
- @end
17
-
18
- NS_ASSUME_NONNULL_END
19
- #endif /* GeneratedPluginRegistrant_h */
@@ -1,21 +0,0 @@
1
- //
2
- // Generated file. Do not edit.
3
- //
4
-
5
- // clang-format off
6
-
7
- #import "GeneratedPluginRegistrant.h"
8
-
9
- #if __has_include(<integration_test/IntegrationTestPlugin.h>)
10
- #import <integration_test/IntegrationTestPlugin.h>
11
- #else
12
- @import integration_test;
13
- #endif
14
-
15
- @implementation GeneratedPluginRegistrant
16
-
17
- + (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {
18
- [IntegrationTestPlugin registerWithRegistrar:[registry registrarForPlugin:@"IntegrationTestPlugin"]];
19
- }
20
-
21
- @end