turbo-native-initializer 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +5 -0
- data/CODE_OF_CONDUCT.md +84 -0
- data/LICENSE.txt +21 -0
- data/README.md +53 -0
- data/Rakefile +2 -0
- data/exe/turbo-native-initializer +3 -0
- data/lib/turbo-native-initializer.rb +1 -0
- data/lib/turbo_native_initializer/generator.rb +79 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/.gitignore +1 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/build.gradle.kts.tt +44 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/proguard-rules.pro +21 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/debug/AndroidManifest.xml.tt +4 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/AndroidManifest.xml.tt +29 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/assets/json/configuration.json +11 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/base/NavDestination.kt.tt +69 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt +37 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebHomeFragment.kt.tt +15 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebModalFragment.kt.tt +17 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/MainActivity.kt.tt +18 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/MainSessionNavHostFragment.kt.tt +37 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/java/dev/hotwire/turbo/turbonativeproject/util/Constants.kt.tt +8 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/anim/nav_slide_enter.xml +10 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/anim/nav_slide_exit.xml +7 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/anim/nav_slide_pop_enter.xml +15 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/anim/nav_slide_pop_exit.xml +15 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/anim/overshoot_interpolator.xml +4 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/drawable/ic_close.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/drawable/ic_launcher_foreground.xml +17 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/layout/activity_main.xml.tt +17 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/layout/fragment_web_home.xml +36 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/layout/toolbar_progress.xml +13 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/menu/web.xml +14 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/values/colors.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/app/src/main/res/values/themes.xml.tt +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/build.gradle.kts +5 -0
- data/lib/turbo_native_initializer/templates/android_stack/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/turbo_native_initializer/templates/android_stack/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/lib/turbo_native_initializer/templates/android_stack/gradle.properties +23 -0
- data/lib/turbo_native_initializer/templates/android_stack/gradlew +185 -0
- data/lib/turbo_native_initializer/templates/android_stack/gradlew.bat +89 -0
- data/lib/turbo_native_initializer/templates/android_stack/local.properties +10 -0
- data/lib/turbo_native_initializer/templates/android_stack/settings.gradle.kts.tt +17 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/.gitignore +1 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/build.gradle.kts.tt +44 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/proguard-rules.pro +21 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/debug/AndroidManifest.xml.tt +4 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/AndroidManifest.xml.tt +29 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/assets/json/configuration.json +11 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/base/NavDestination.kt.tt +69 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebFragment.kt.tt +29 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebHomeFragment.kt.tt +15 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/features/web/WebModalFragment.kt.tt +17 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/MainActivity.kt.tt +47 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/TabOneSessionNavHostFragment.kt.tt +37 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/main/TabTwoSessionNavHostFragment.kt.tt +37 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/java/dev/hotwire/turbo/turbonativeproject/util/Constants.kt.tt +8 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/anim/nav_slide_enter.xml +10 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/anim/nav_slide_exit.xml +7 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/anim/nav_slide_pop_enter.xml +15 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/anim/nav_slide_pop_exit.xml +15 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/anim/overshoot_interpolator.xml +4 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/drawable/ic_close.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/drawable/ic_home.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/drawable/ic_launcher_foreground.xml +17 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/drawable/ic_settings.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/layout/activity_main.xml.tt +34 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/layout/fragment_web_home.xml +36 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/layout/toolbar_progress.xml +13 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/menu/bottom_navigation_menu.xml +12 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/menu/web.xml +14 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/values/colors.xml +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/app/src/main/res/values/themes.xml.tt +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/build.gradle.kts +5 -0
- data/lib/turbo_native_initializer/templates/android_tabs/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/lib/turbo_native_initializer/templates/android_tabs/gradle/wrapper/gradle-wrapper.properties +6 -0
- data/lib/turbo_native_initializer/templates/android_tabs/gradle.properties +23 -0
- data/lib/turbo_native_initializer/templates/android_tabs/gradlew +185 -0
- data/lib/turbo_native_initializer/templates/android_tabs/gradlew.bat +89 -0
- data/lib/turbo_native_initializer/templates/android_tabs/local.properties +10 -0
- data/lib/turbo_native_initializer/templates/android_tabs/settings.gradle.kts.tt +17 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Configuration/Info.plist +29 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Configuration/path-configuration.json +10 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/ErrorPresenter.swift +74 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/TurboNavigationController.swift +123 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Controllers/ViewController.swift +20 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/AppDelegate.swift +8 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Delegates/SceneDelegate.swift.tt +139 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/turbo.png +0 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/Contents.json +6 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/Contents.json +21 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/turbo.png +0 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Base.lproj/LaunchScreen.storyboard +39 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/Resources/Base.lproj/Main.storyboard.tt +32 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject/TurboNativeProject.swift.tt +10 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.pbxproj.tt +436 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/lib/turbo_native_initializer/templates/ios_stack/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +14 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Configuration/Info.plist +29 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Configuration/path-configuration.json +10 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/ErrorPresenter.swift +74 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/TurboNavigationController.swift +123 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Controllers/ViewController.swift +20 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/AppDelegate.swift +8 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Delegates/SceneDelegate.swift.tt +156 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AccentColor.colorset/Contents.json +11 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/AppIcon.appiconset/turbo.png +0 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/Contents.json +6 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/Contents.json +21 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Assets.xcassets/SplashIcon.imageset/turbo.png +0 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Base.lproj/LaunchScreen.storyboard +39 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Resources/Base.lproj/Main.storyboard +69 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/TurboNativeProject.swift.tt +10 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.pbxproj.tt +436 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
- data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +14 -0
- data/lib/turbo_native_initializer/version.rb +3 -0
- data/lib/turbo_native_initializer.rb +5 -0
- metadata +199 -0
@@ -0,0 +1,436 @@
|
|
1
|
+
// !$*UTF8*$!
|
2
|
+
{
|
3
|
+
archiveVersion = 1;
|
4
|
+
classes = {
|
5
|
+
};
|
6
|
+
objectVersion = 56;
|
7
|
+
objects = {
|
8
|
+
|
9
|
+
/* Begin PBXBuildFile section */
|
10
|
+
5D0D861F2A9AA70500A525E9 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D0D86212A9AA70500A525E9 /* Main.storyboard */; };
|
11
|
+
5DCC50D42A959DF900B529A0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50D32A959DF900B529A0 /* AppDelegate.swift */; };
|
12
|
+
5DCC50D62A959DF900B529A0 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50D52A959DF900B529A0 /* SceneDelegate.swift */; };
|
13
|
+
5DCC50D82A959DF900B529A0 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50D72A959DF900B529A0 /* ViewController.swift */; };
|
14
|
+
5DCC50DD2A959DFA00B529A0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5DCC50DC2A959DFA00B529A0 /* Assets.xcassets */; };
|
15
|
+
5DCC50E02A959DFA00B529A0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5DCC50DE2A959DFA00B529A0 /* LaunchScreen.storyboard */; };
|
16
|
+
5DCC50E82A95A0D900B529A0 /* TurboNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50E72A95A0D900B529A0 /* TurboNavigationController.swift */; };
|
17
|
+
5DCC50EA2A95A19600B529A0 /* path-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = 5DCC50E92A95A19600B529A0 /* path-configuration.json */; };
|
18
|
+
5DCC50EE2A95A27600B529A0 /* ErrorPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50ED2A95A27600B529A0 /* ErrorPresenter.swift */; };
|
19
|
+
5DCC50F12A95A66700B529A0 /* Turbo in Frameworks */ = {isa = PBXBuildFile; productRef = 5DCC50F02A95A66700B529A0 /* Turbo */; };
|
20
|
+
5DCC50F32A95A7E600B529A0 /* <%= name %>.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DCC50F22A95A7E600B529A0 /* <%= name %>.swift */; };
|
21
|
+
/* End PBXBuildFile section */
|
22
|
+
|
23
|
+
/* Begin PBXFileReference section */
|
24
|
+
5D0D86202A9AA70500A525E9 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
25
|
+
5DCC50D02A959DF900B529A0 /* <%= name %>.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = <%= name %>.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
26
|
+
5DCC50D32A959DF900B529A0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
27
|
+
5DCC50D52A959DF900B529A0 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
28
|
+
5DCC50D72A959DF900B529A0 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
|
29
|
+
5DCC50DC2A959DFA00B529A0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
30
|
+
5DCC50DF2A959DFA00B529A0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
31
|
+
5DCC50E12A959DFA00B529A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
32
|
+
5DCC50E72A95A0D900B529A0 /* TurboNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TurboNavigationController.swift; sourceTree = "<group>"; };
|
33
|
+
5DCC50E92A95A19600B529A0 /* path-configuration.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "path-configuration.json"; sourceTree = "<group>"; };
|
34
|
+
5DCC50ED2A95A27600B529A0 /* ErrorPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorPresenter.swift; sourceTree = "<group>"; };
|
35
|
+
5DCC50F22A95A7E600B529A0 /* <%= name %>.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = <%= name %>.swift; sourceTree = "<group>"; };
|
36
|
+
/* End PBXFileReference section */
|
37
|
+
|
38
|
+
/* Begin PBXFrameworksBuildPhase section */
|
39
|
+
5DCC50CD2A959DF900B529A0 /* Frameworks */ = {
|
40
|
+
isa = PBXFrameworksBuildPhase;
|
41
|
+
buildActionMask = 2147483647;
|
42
|
+
files = (
|
43
|
+
5DCC50F12A95A66700B529A0 /* Turbo in Frameworks */,
|
44
|
+
);
|
45
|
+
runOnlyForDeploymentPostprocessing = 0;
|
46
|
+
};
|
47
|
+
/* End PBXFrameworksBuildPhase section */
|
48
|
+
|
49
|
+
/* Begin PBXGroup section */
|
50
|
+
5D2FA5CD2A9DB1AB001AF2F1 /* Configuration */ = {
|
51
|
+
isa = PBXGroup;
|
52
|
+
children = (
|
53
|
+
5DCC50E12A959DFA00B529A0 /* Info.plist */,
|
54
|
+
5DCC50E92A95A19600B529A0 /* path-configuration.json */,
|
55
|
+
);
|
56
|
+
path = Configuration;
|
57
|
+
sourceTree = "<group>";
|
58
|
+
};
|
59
|
+
5DCC50C72A959DF800B529A0 = {
|
60
|
+
isa = PBXGroup;
|
61
|
+
children = (
|
62
|
+
5DCC50D22A959DF900B529A0 /* <%= name %> */,
|
63
|
+
5DCC50D12A959DF900B529A0 /* Products */,
|
64
|
+
);
|
65
|
+
sourceTree = "<group>";
|
66
|
+
};
|
67
|
+
5DCC50D12A959DF900B529A0 /* Products */ = {
|
68
|
+
isa = PBXGroup;
|
69
|
+
children = (
|
70
|
+
5DCC50D02A959DF900B529A0 /* <%= name %>.app */,
|
71
|
+
);
|
72
|
+
name = Products;
|
73
|
+
sourceTree = "<group>";
|
74
|
+
};
|
75
|
+
5DCC50D22A959DF900B529A0 /* <%= name %> */ = {
|
76
|
+
isa = PBXGroup;
|
77
|
+
children = (
|
78
|
+
5D2FA5CD2A9DB1AB001AF2F1 /* Configuration */,
|
79
|
+
5DCC50F42A95AC4E00B529A0 /* Controllers */,
|
80
|
+
5DCC50FB2A95B55200B529A0 /* Delegates */,
|
81
|
+
5DCC51072A95CCEE00B529A0 /* Resources */,
|
82
|
+
5DCC50F22A95A7E600B529A0 /* <%= name %>.swift */,
|
83
|
+
);
|
84
|
+
path = <%= name %>;
|
85
|
+
sourceTree = "<group>";
|
86
|
+
};
|
87
|
+
5DCC50F42A95AC4E00B529A0 /* Controllers */ = {
|
88
|
+
isa = PBXGroup;
|
89
|
+
children = (
|
90
|
+
5DCC50ED2A95A27600B529A0 /* ErrorPresenter.swift */,
|
91
|
+
5DCC50E72A95A0D900B529A0 /* TurboNavigationController.swift */,
|
92
|
+
5DCC50D72A959DF900B529A0 /* ViewController.swift */,
|
93
|
+
);
|
94
|
+
path = Controllers;
|
95
|
+
sourceTree = "<group>";
|
96
|
+
};
|
97
|
+
5DCC50FB2A95B55200B529A0 /* Delegates */ = {
|
98
|
+
isa = PBXGroup;
|
99
|
+
children = (
|
100
|
+
5DCC50D32A959DF900B529A0 /* AppDelegate.swift */,
|
101
|
+
5DCC50D52A959DF900B529A0 /* SceneDelegate.swift */,
|
102
|
+
);
|
103
|
+
path = Delegates;
|
104
|
+
sourceTree = "<group>";
|
105
|
+
};
|
106
|
+
5DCC51072A95CCEE00B529A0 /* Resources */ = {
|
107
|
+
isa = PBXGroup;
|
108
|
+
children = (
|
109
|
+
5DCC50DC2A959DFA00B529A0 /* Assets.xcassets */,
|
110
|
+
5DCC50DE2A959DFA00B529A0 /* LaunchScreen.storyboard */,
|
111
|
+
5D0D86212A9AA70500A525E9 /* Main.storyboard */,
|
112
|
+
);
|
113
|
+
path = Resources;
|
114
|
+
sourceTree = "<group>";
|
115
|
+
};
|
116
|
+
/* End PBXGroup section */
|
117
|
+
|
118
|
+
/* Begin PBXNativeTarget section */
|
119
|
+
5DCC50CF2A959DF900B529A0 /* <%= name %> */ = {
|
120
|
+
isa = PBXNativeTarget;
|
121
|
+
buildConfigurationList = 5DCC50E42A959DFA00B529A0 /* Build configuration list for PBXNativeTarget "<%= name %>" */;
|
122
|
+
buildPhases = (
|
123
|
+
5DCC50CC2A959DF900B529A0 /* Sources */,
|
124
|
+
5DCC50CD2A959DF900B529A0 /* Frameworks */,
|
125
|
+
5DCC50CE2A959DF900B529A0 /* Resources */,
|
126
|
+
);
|
127
|
+
buildRules = (
|
128
|
+
);
|
129
|
+
dependencies = (
|
130
|
+
);
|
131
|
+
name = <%= name %>;
|
132
|
+
packageProductDependencies = (
|
133
|
+
5DCC50F02A95A66700B529A0 /* Turbo */,
|
134
|
+
);
|
135
|
+
productName = <%= name %>;
|
136
|
+
productReference = 5DCC50D02A959DF900B529A0 /* <%= name %>.app */;
|
137
|
+
productType = "com.apple.product-type.application";
|
138
|
+
};
|
139
|
+
/* End PBXNativeTarget section */
|
140
|
+
|
141
|
+
/* Begin PBXProject section */
|
142
|
+
5DCC50C82A959DF800B529A0 /* Project object */ = {
|
143
|
+
isa = PBXProject;
|
144
|
+
attributes = {
|
145
|
+
BuildIndependentTargetsInParallel = 1;
|
146
|
+
LastSwiftUpdateCheck = 1430;
|
147
|
+
LastUpgradeCheck = 1430;
|
148
|
+
TargetAttributes = {
|
149
|
+
5DCC50CF2A959DF900B529A0 = {
|
150
|
+
CreatedOnToolsVersion = 14.3.1;
|
151
|
+
};
|
152
|
+
};
|
153
|
+
};
|
154
|
+
buildConfigurationList = 5DCC50CB2A959DF800B529A0 /* Build configuration list for PBXProject "<%= name %>" */;
|
155
|
+
compatibilityVersion = "Xcode 14.0";
|
156
|
+
developmentRegion = en;
|
157
|
+
hasScannedForEncodings = 0;
|
158
|
+
knownRegions = (
|
159
|
+
en,
|
160
|
+
Base,
|
161
|
+
);
|
162
|
+
mainGroup = 5DCC50C72A959DF800B529A0;
|
163
|
+
packageReferences = (
|
164
|
+
5DCC50EF2A95A66700B529A0 /* XCRemoteSwiftPackageReference "turbo-ios" */,
|
165
|
+
);
|
166
|
+
productRefGroup = 5DCC50D12A959DF900B529A0 /* Products */;
|
167
|
+
projectDirPath = "";
|
168
|
+
projectRoot = "";
|
169
|
+
targets = (
|
170
|
+
5DCC50CF2A959DF900B529A0 /* <%= name %> */,
|
171
|
+
);
|
172
|
+
};
|
173
|
+
/* End PBXProject section */
|
174
|
+
|
175
|
+
/* Begin PBXResourcesBuildPhase section */
|
176
|
+
5DCC50CE2A959DF900B529A0 /* Resources */ = {
|
177
|
+
isa = PBXResourcesBuildPhase;
|
178
|
+
buildActionMask = 2147483647;
|
179
|
+
files = (
|
180
|
+
5DCC50E02A959DFA00B529A0 /* LaunchScreen.storyboard in Resources */,
|
181
|
+
5DCC50EA2A95A19600B529A0 /* path-configuration.json in Resources */,
|
182
|
+
5DCC50DD2A959DFA00B529A0 /* Assets.xcassets in Resources */,
|
183
|
+
5D0D861F2A9AA70500A525E9 /* Main.storyboard in Resources */,
|
184
|
+
);
|
185
|
+
runOnlyForDeploymentPostprocessing = 0;
|
186
|
+
};
|
187
|
+
/* End PBXResourcesBuildPhase section */
|
188
|
+
|
189
|
+
/* Begin PBXSourcesBuildPhase section */
|
190
|
+
5DCC50CC2A959DF900B529A0 /* Sources */ = {
|
191
|
+
isa = PBXSourcesBuildPhase;
|
192
|
+
buildActionMask = 2147483647;
|
193
|
+
files = (
|
194
|
+
5DCC50D82A959DF900B529A0 /* ViewController.swift in Sources */,
|
195
|
+
5DCC50D42A959DF900B529A0 /* AppDelegate.swift in Sources */,
|
196
|
+
5DCC50E82A95A0D900B529A0 /* TurboNavigationController.swift in Sources */,
|
197
|
+
5DCC50D62A959DF900B529A0 /* SceneDelegate.swift in Sources */,
|
198
|
+
5DCC50F32A95A7E600B529A0 /* <%= name %>.swift in Sources */,
|
199
|
+
5DCC50EE2A95A27600B529A0 /* ErrorPresenter.swift in Sources */,
|
200
|
+
);
|
201
|
+
runOnlyForDeploymentPostprocessing = 0;
|
202
|
+
};
|
203
|
+
/* End PBXSourcesBuildPhase section */
|
204
|
+
|
205
|
+
/* Begin PBXVariantGroup section */
|
206
|
+
5D0D86212A9AA70500A525E9 /* Main.storyboard */ = {
|
207
|
+
isa = PBXVariantGroup;
|
208
|
+
children = (
|
209
|
+
5D0D86202A9AA70500A525E9 /* Base */,
|
210
|
+
);
|
211
|
+
name = Main.storyboard;
|
212
|
+
sourceTree = "<group>";
|
213
|
+
};
|
214
|
+
5DCC50DE2A959DFA00B529A0 /* LaunchScreen.storyboard */ = {
|
215
|
+
isa = PBXVariantGroup;
|
216
|
+
children = (
|
217
|
+
5DCC50DF2A959DFA00B529A0 /* Base */,
|
218
|
+
);
|
219
|
+
name = LaunchScreen.storyboard;
|
220
|
+
sourceTree = "<group>";
|
221
|
+
};
|
222
|
+
/* End PBXVariantGroup section */
|
223
|
+
|
224
|
+
/* Begin XCBuildConfiguration section */
|
225
|
+
5DCC50E22A959DFA00B529A0 /* Debug */ = {
|
226
|
+
isa = XCBuildConfiguration;
|
227
|
+
buildSettings = {
|
228
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
229
|
+
CLANG_ANALYZER_NONNULL = YES;
|
230
|
+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
231
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
232
|
+
CLANG_ENABLE_MODULES = YES;
|
233
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
234
|
+
CLANG_ENABLE_OBJC_WEAK = YES;
|
235
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
236
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
237
|
+
CLANG_WARN_COMMA = YES;
|
238
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
239
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
240
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
241
|
+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
242
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
243
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
244
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
245
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
246
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
247
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
248
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
249
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
250
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
251
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
252
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
253
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
254
|
+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
255
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
256
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
257
|
+
COPY_PHASE_STRIP = NO;
|
258
|
+
DEBUG_INFORMATION_FORMAT = dwarf;
|
259
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
260
|
+
ENABLE_TESTABILITY = YES;
|
261
|
+
GCC_C_LANGUAGE_STANDARD = gnu11;
|
262
|
+
GCC_DYNAMIC_NO_PIC = NO;
|
263
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
264
|
+
GCC_OPTIMIZATION_LEVEL = 0;
|
265
|
+
GCC_PREPROCESSOR_DEFINITIONS = (
|
266
|
+
"DEBUG=1",
|
267
|
+
"$(inherited)",
|
268
|
+
);
|
269
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
270
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
271
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
272
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
273
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
274
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
275
|
+
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
276
|
+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
277
|
+
MTL_FAST_MATH = YES;
|
278
|
+
ONLY_ACTIVE_ARCH = YES;
|
279
|
+
SDKROOT = iphoneos;
|
280
|
+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
281
|
+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
282
|
+
};
|
283
|
+
name = Debug;
|
284
|
+
};
|
285
|
+
5DCC50E32A959DFA00B529A0 /* Release */ = {
|
286
|
+
isa = XCBuildConfiguration;
|
287
|
+
buildSettings = {
|
288
|
+
ALWAYS_SEARCH_USER_PATHS = NO;
|
289
|
+
CLANG_ANALYZER_NONNULL = YES;
|
290
|
+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
291
|
+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
|
292
|
+
CLANG_ENABLE_MODULES = YES;
|
293
|
+
CLANG_ENABLE_OBJC_ARC = YES;
|
294
|
+
CLANG_ENABLE_OBJC_WEAK = YES;
|
295
|
+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
296
|
+
CLANG_WARN_BOOL_CONVERSION = YES;
|
297
|
+
CLANG_WARN_COMMA = YES;
|
298
|
+
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
299
|
+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
300
|
+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
301
|
+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
302
|
+
CLANG_WARN_EMPTY_BODY = YES;
|
303
|
+
CLANG_WARN_ENUM_CONVERSION = YES;
|
304
|
+
CLANG_WARN_INFINITE_RECURSION = YES;
|
305
|
+
CLANG_WARN_INT_CONVERSION = YES;
|
306
|
+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
307
|
+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
308
|
+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
309
|
+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
310
|
+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
311
|
+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
312
|
+
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
313
|
+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
314
|
+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
315
|
+
CLANG_WARN_UNREACHABLE_CODE = YES;
|
316
|
+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
317
|
+
COPY_PHASE_STRIP = NO;
|
318
|
+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
319
|
+
ENABLE_NS_ASSERTIONS = NO;
|
320
|
+
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
321
|
+
GCC_C_LANGUAGE_STANDARD = gnu11;
|
322
|
+
GCC_NO_COMMON_BLOCKS = YES;
|
323
|
+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
324
|
+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
325
|
+
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
326
|
+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
327
|
+
GCC_WARN_UNUSED_FUNCTION = YES;
|
328
|
+
GCC_WARN_UNUSED_VARIABLE = YES;
|
329
|
+
IPHONEOS_DEPLOYMENT_TARGET = 16.4;
|
330
|
+
MTL_ENABLE_DEBUG_INFO = NO;
|
331
|
+
MTL_FAST_MATH = YES;
|
332
|
+
SDKROOT = iphoneos;
|
333
|
+
SWIFT_COMPILATION_MODE = wholemodule;
|
334
|
+
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
335
|
+
VALIDATE_PRODUCT = YES;
|
336
|
+
};
|
337
|
+
name = Release;
|
338
|
+
};
|
339
|
+
5DCC50E52A959DFA00B529A0 /* Debug */ = {
|
340
|
+
isa = XCBuildConfiguration;
|
341
|
+
buildSettings = {
|
342
|
+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
343
|
+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
344
|
+
CODE_SIGN_STYLE = Automatic;
|
345
|
+
CURRENT_PROJECT_VERSION = 1;
|
346
|
+
GENERATE_INFOPLIST_FILE = YES;
|
347
|
+
INFOPLIST_FILE = <%= name %>/Configuration/Info.plist;
|
348
|
+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
349
|
+
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
350
|
+
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
351
|
+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
352
|
+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
353
|
+
LD_RUNPATH_SEARCH_PATHS = (
|
354
|
+
"$(inherited)",
|
355
|
+
"@executable_path/Frameworks",
|
356
|
+
);
|
357
|
+
MARKETING_VERSION = 1.0;
|
358
|
+
PRODUCT_BUNDLE_IDENTIFIER = <%= bundle_identifier %>;
|
359
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
360
|
+
SWIFT_EMIT_LOC_STRINGS = YES;
|
361
|
+
SWIFT_VERSION = 5.0;
|
362
|
+
TARGETED_DEVICE_FAMILY = "1,2";
|
363
|
+
};
|
364
|
+
name = Debug;
|
365
|
+
};
|
366
|
+
5DCC50E62A959DFA00B529A0 /* Release */ = {
|
367
|
+
isa = XCBuildConfiguration;
|
368
|
+
buildSettings = {
|
369
|
+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
370
|
+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
371
|
+
CODE_SIGN_STYLE = Automatic;
|
372
|
+
CURRENT_PROJECT_VERSION = 1;
|
373
|
+
GENERATE_INFOPLIST_FILE = YES;
|
374
|
+
INFOPLIST_FILE = <%= name %>/Configuration/Info.plist;
|
375
|
+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
|
376
|
+
INFOPLIST_KEY_UILaunchStoryboardName = LaunchScreen;
|
377
|
+
INFOPLIST_KEY_UIMainStoryboardFile = Main;
|
378
|
+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
379
|
+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
|
380
|
+
LD_RUNPATH_SEARCH_PATHS = (
|
381
|
+
"$(inherited)",
|
382
|
+
"@executable_path/Frameworks",
|
383
|
+
);
|
384
|
+
MARKETING_VERSION = 1.0;
|
385
|
+
PRODUCT_BUNDLE_IDENTIFIER = <%= bundle_identifier %>;
|
386
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
387
|
+
SWIFT_EMIT_LOC_STRINGS = YES;
|
388
|
+
SWIFT_VERSION = 5.0;
|
389
|
+
TARGETED_DEVICE_FAMILY = "1,2";
|
390
|
+
};
|
391
|
+
name = Release;
|
392
|
+
};
|
393
|
+
/* End XCBuildConfiguration section */
|
394
|
+
|
395
|
+
/* Begin XCConfigurationList section */
|
396
|
+
5DCC50CB2A959DF800B529A0 /* Build configuration list for PBXProject "<%= name %>" */ = {
|
397
|
+
isa = XCConfigurationList;
|
398
|
+
buildConfigurations = (
|
399
|
+
5DCC50E22A959DFA00B529A0 /* Debug */,
|
400
|
+
5DCC50E32A959DFA00B529A0 /* Release */,
|
401
|
+
);
|
402
|
+
defaultConfigurationIsVisible = 0;
|
403
|
+
defaultConfigurationName = Release;
|
404
|
+
};
|
405
|
+
5DCC50E42A959DFA00B529A0 /* Build configuration list for PBXNativeTarget "<%= name %>" */ = {
|
406
|
+
isa = XCConfigurationList;
|
407
|
+
buildConfigurations = (
|
408
|
+
5DCC50E52A959DFA00B529A0 /* Debug */,
|
409
|
+
5DCC50E62A959DFA00B529A0 /* Release */,
|
410
|
+
);
|
411
|
+
defaultConfigurationIsVisible = 0;
|
412
|
+
defaultConfigurationName = Release;
|
413
|
+
};
|
414
|
+
/* End XCConfigurationList section */
|
415
|
+
|
416
|
+
/* Begin XCRemoteSwiftPackageReference section */
|
417
|
+
5DCC50EF2A95A66700B529A0 /* XCRemoteSwiftPackageReference "turbo-ios" */ = {
|
418
|
+
isa = XCRemoteSwiftPackageReference;
|
419
|
+
repositoryURL = "https://github.com/hotwired/turbo-ios";
|
420
|
+
requirement = {
|
421
|
+
kind = upToNextMajorVersion;
|
422
|
+
minimumVersion = 7.0.0;
|
423
|
+
};
|
424
|
+
};
|
425
|
+
/* End XCRemoteSwiftPackageReference section */
|
426
|
+
|
427
|
+
/* Begin XCSwiftPackageProductDependency section */
|
428
|
+
5DCC50F02A95A66700B529A0 /* Turbo */ = {
|
429
|
+
isa = XCSwiftPackageProductDependency;
|
430
|
+
package = 5DCC50EF2A95A66700B529A0 /* XCRemoteSwiftPackageReference "turbo-ios" */;
|
431
|
+
productName = Turbo;
|
432
|
+
};
|
433
|
+
/* End XCSwiftPackageProductDependency section */
|
434
|
+
};
|
435
|
+
rootObject = 5DCC50C82A959DF800B529A0 /* Project object */;
|
436
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
{
|
2
|
+
"pins" : [
|
3
|
+
{
|
4
|
+
"identity" : "turbo-ios",
|
5
|
+
"kind" : "remoteSourceControl",
|
6
|
+
"location" : "https://github.com/hotwired/turbo-ios",
|
7
|
+
"state" : {
|
8
|
+
"revision" : "69ec24c1b132da467da9c388c2ac595ee9e624f6",
|
9
|
+
"version" : "7.0.0"
|
10
|
+
}
|
11
|
+
}
|
12
|
+
],
|
13
|
+
"version" : 2
|
14
|
+
}
|
data/lib/turbo_native_initializer/templates/ios_tabs/TurboNativeProject/Configuration/Info.plist
ADDED
@@ -0,0 +1,29 @@
|
|
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>UIApplicationSceneManifest</key>
|
6
|
+
<dict>
|
7
|
+
<key>UIApplicationSupportsMultipleScenes</key>
|
8
|
+
<false/>
|
9
|
+
<key>UISceneConfigurations</key>
|
10
|
+
<dict>
|
11
|
+
<key>UIWindowSceneSessionRoleApplication</key>
|
12
|
+
<array>
|
13
|
+
<dict>
|
14
|
+
<key>UISceneConfigurationName</key>
|
15
|
+
<string>Default Configuration</string>
|
16
|
+
<key>UISceneDelegateClassName</key>
|
17
|
+
<string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
|
18
|
+
<key>UISceneStoryboardFile</key>
|
19
|
+
<string>Main</string>
|
20
|
+
</dict>
|
21
|
+
</array>
|
22
|
+
</dict>
|
23
|
+
</dict>
|
24
|
+
<key>NSPhotoLibraryUsageDescription</key>
|
25
|
+
<string>We use your photo library to upload images.</string>
|
26
|
+
<key>NSCameraUsageDescription</key>
|
27
|
+
<string>We use your camera to upload images.</string>
|
28
|
+
</dict>
|
29
|
+
</plist>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
{
|
2
|
+
"settings": {},
|
3
|
+
"rules": [
|
4
|
+
{ "patterns": ["/refresh_historical_location"], "properties": { "presentation": "refresh", "visitable": false } },
|
5
|
+
{ "patterns": ["/recede_historical_location"], "properties": { "presentation": "pop", "visitable": false } },
|
6
|
+
{ "patterns": ["/resume_historical_location"], "properties": { "presentation": "none", "visitable": false } },
|
7
|
+
{ "patterns": ["^/$"], "properties": { "presentation": "replace-all" } },
|
8
|
+
{ "patterns": ["/new$", "/edit$"], "properties": { "presentation": "modal" } }
|
9
|
+
]
|
10
|
+
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import SwiftUI
|
2
|
+
import UIKit
|
3
|
+
|
4
|
+
public protocol ErrorPresenter: UIViewController {
|
5
|
+
func presentError(_ error: Error, handler: @escaping () -> Void)
|
6
|
+
}
|
7
|
+
|
8
|
+
public extension ErrorPresenter {
|
9
|
+
func presentError(_ error: Error, handler: @escaping () -> Void) {
|
10
|
+
let errorView = ErrorView(error: error) { [unowned self] in
|
11
|
+
handler(); self.removeErrorViewController()
|
12
|
+
}
|
13
|
+
|
14
|
+
let controller = UIHostingController(rootView: errorView)
|
15
|
+
addChild(controller)
|
16
|
+
addFullScreenSubview(controller.view)
|
17
|
+
controller.didMove(toParent: self)
|
18
|
+
}
|
19
|
+
|
20
|
+
private func removeErrorViewController() {
|
21
|
+
if let child = children.first(where: { $0 is UIHostingController<ErrorView> }) {
|
22
|
+
child.willMove(toParent: nil)
|
23
|
+
child.view.removeFromSuperview()
|
24
|
+
child.removeFromParent()
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
private func addFullScreenSubview(_ subview: UIView) {
|
29
|
+
view.addSubview(subview)
|
30
|
+
subview.translatesAutoresizingMaskIntoConstraints = false
|
31
|
+
NSLayoutConstraint.activate([
|
32
|
+
subview.leadingAnchor.constraint(equalTo: view.leadingAnchor),
|
33
|
+
subview.trailingAnchor.constraint(equalTo: view.trailingAnchor),
|
34
|
+
subview.topAnchor.constraint(equalTo: view.topAnchor),
|
35
|
+
subview.bottomAnchor.constraint(equalTo: view.bottomAnchor)
|
36
|
+
])
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
struct ErrorView: View {
|
41
|
+
let error: Error
|
42
|
+
let handler: (() -> Void)?
|
43
|
+
|
44
|
+
var body: some View {
|
45
|
+
VStack(spacing: 16) {
|
46
|
+
Image(systemName: "exclamationmark.triangle")
|
47
|
+
.font(.system(size: 38, weight: .semibold))
|
48
|
+
.foregroundColor(.accentColor)
|
49
|
+
|
50
|
+
Text("Error loading page")
|
51
|
+
.font(.largeTitle)
|
52
|
+
|
53
|
+
Text(error.localizedDescription)
|
54
|
+
.font(.body)
|
55
|
+
.multilineTextAlignment(.center)
|
56
|
+
|
57
|
+
Button("Retry") {
|
58
|
+
handler?()
|
59
|
+
}
|
60
|
+
.font(.system(size: 17, weight: .bold))
|
61
|
+
}
|
62
|
+
.padding(32)
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
struct ErrorView_Previews: PreviewProvider {
|
67
|
+
static var previews: some View {
|
68
|
+
return ErrorView(error: NSError(
|
69
|
+
domain: "com.example.error",
|
70
|
+
code: 1001,
|
71
|
+
userInfo: [NSLocalizedDescriptionKey: "Could not connect to the server."]
|
72
|
+
)) {}
|
73
|
+
}
|
74
|
+
}
|