Switch iOS build from XcodeGen to Tuist for Apple targets

- Replace XcodeGen project.yml and generated Xcodeproj with Tuist Project.swift - Add Tuist.swift config and mise.toml for version pinning - Add .gitignore rules for Tuist/Xcode-generated files - Add native SwiftUI stubs for tvOS, watchOS, visionOS targets - Document Tuist workflow in README - Add .nvmrc for Node version pinning

Seto Elkahfi committed Mar 7, 2026 at 11:24 UTC d2d36b2c875f8b0ae2e8af9346e98a789218b084
23 files changed +602 -694
examples/tauri-app/.nvmrc new
+1
@@ -0,0 +1 @@
1 +v24.13.1
examples/tauri-app/src-tauri/.gitignore
+51
@@ -2,3 +2,54 @@
2 # will have compiled files and executables
3 /target/
4
5 +# ============================================================
6 +# gen/apple — Tauri scaffolds this directory on `cargo tauri ios init`.
7 +# A nested .gitignore at gen/apple/.gitignore handles the fine-grained
8 +# rules for that subtree. The entries below are a belt-and-suspenders
9 +# safety net at this level.
10 +# ============================================================
11 +
12 +# Rust static libraries produced by the Xcode build phase script
13 +gen/apple/Externals/
14 +
15 +# Xcode project & workspace — regenerated by `tuist generate`
16 +# (Project.swift is the source of truth, not these files)
17 +gen/apple/*.xcodeproj/
18 +gen/apple/*.xcworkspace/
19 +
20 +# Tuist derived sources / plists — regenerated by `tuist generate`
21 +gen/apple/Derived/
22 +
23 +# Xcode per-user settings
24 +gen/apple/xcuserdata/
25 +
26 +# Xcode build artefacts
27 +gen/apple/build/
28 +
29 +# XcodeGen manifest — regenerated by `cargo tauri ios init`.
30 +# We use Project.swift (Tuist) as the Xcode project source of truth.
31 +gen/apple/project.yml
32 +
33 +# ============================================================
34 +# The following gen/apple files ARE intentionally tracked because
35 +# they are either hand-authored or not regenerated by Tauri/Tuist:
36 +#
37 +# Project.swift — Tuist project manifest (our source of truth)
38 +# Tuist.swift — Tuist configuration
39 +# mise.toml — Tuist version pin
40 +# README.md — workflow documentation
41 +# tauri-app_iOS/Info.plist — iOS app Info.plist (Tauri reads this)
42 +# tauri-app_iOS/*.entitlements — iOS entitlements
43 +# tauri-app_tvOS/App.swift — native tvOS app entry point
44 +# tauri-app_tvOS/Info.plist — tvOS Info.plist
45 +# tauri-app_watchOS/App.swift — native watchOS app entry point
46 +# tauri-app_watchOS/Info.plist — watchOS Info.plist
47 +# tauri-app_watchOS/Assets.xcassets/ — watchOS-specific icon asset catalog
48 +# tauri-app_visionOS/App.swift — native visionOS app entry point
49 +# tauri-app_visionOS/Info.plist — visionOS Info.plist
50 +# Sources/ — Obj-C/C++ glue generated once by Tauri
51 +# Assets.xcassets/ — shared app icons & asset catalog (iOS/tvOS/visionOS)
52 +# LaunchScreen.storyboard — iOS launch screen
53 +# ExportOptions.plist — archive export options
54 +# Podfile — CocoaPods manifest
55 +# ============================================================
examples/tauri-app/src-tauri/gen/.keep
examples/tauri-app/src-tauri/gen/apple/.gitignore
+42
@@ -1,3 +1,45 @@
1 +# ============================================================
2 +# gen/apple/.gitignore
3 +#
4 +# Strategy:
5 +# - `cargo tauri ios init` regenerates project.yml (XcodeGen)
6 +# - `tuist generate` regenerates *.xcodeproj, *.xcworkspace, Derived/
7 +# - Everything else is hand-authored source of truth → tracked
8 +# ============================================================
9 +
10 +# ------------------------------------------------------------------
11 +# Tauri-regenerated: XcodeGen manifest
12 +# Re-created by `cargo tauri ios init` from tauri.conf.json.
13 +# We use Project.swift (Tuist) as the Xcode project source of truth,
14 +# so project.yml is a Tauri implementation detail we don't need.
15 +# ------------------------------------------------------------------
16 +project.yml
17 +
18 +# ------------------------------------------------------------------
19 +# Tuist-regenerated: Xcode project & workspace
20 +# Fully described by Project.swift → always regenerate, never edit.
21 +# ------------------------------------------------------------------
22 +*.xcodeproj/
23 +*.xcworkspace/
24 +
25 +# ------------------------------------------------------------------
26 +# Tuist-regenerated: derived sources & info plists
27 +# Auto-synthesised from Project.swift (asset accessors, bundle IDs…).
28 +# ------------------------------------------------------------------
29 +Derived/
30 +
31 +# ------------------------------------------------------------------
32 +# Xcode runtime noise
33 +# ------------------------------------------------------------------
34 xcuserdata/
35 +
36 +# ------------------------------------------------------------------
37 +# Rust / Cargo build output
38 +# (also covered by src-tauri/.gitignore, belt-and-suspenders here)
39 +# ------------------------------------------------------------------
40 build/
41 +
42 +# ------------------------------------------------------------------
43 +# Compiled Rust static libraries injected by xcode-script
44 +# ------------------------------------------------------------------
45 Externals/
examples/tauri-app/src-tauri/gen/apple/.keep
examples/tauri-app/src-tauri/gen/apple/Project.swift new
+191
@@ -0,0 +1,191 @@
1 +import ProjectDescription
2 +
3 +let project = Project(
4 + name: "tauri-app",
5 + settings: .settings(
6 + base: [
7 + "DEVELOPMENT_TEAM": "NADBSNEZWH",
8 + "PRODUCT_NAME": "tauri-app",
9 + "PRODUCT_BUNDLE_IDENTIFIER": "com.tauri.dev",
10 + ]
11 + ),
12 + targets: [
13 + // MARK: - iOS target (mirrors Tauri-generated project.yml)
14 + .target(
15 + name: "tauri-app_iOS",
16 + destinations: .iOS,
17 + product: .app,
18 + bundleId: "com.tauri.dev",
19 + deploymentTargets: .iOS("14.0"),
20 + infoPlist: .file(path: "tauri-app_iOS/Info.plist"),
21 + sources: [
22 + "Sources/**",
23 + "tauri-app_iOS/**",
24 + ],
25 + resources: [
26 + "Assets.xcassets",
27 + "LaunchScreen.storyboard",
28 + .folderReference(path: "assets"),
29 + ],
30 + entitlements: .file(path: "tauri-app_iOS/tauri-app_iOS.entitlements"),
31 + scripts: [
32 + .pre(
33 + script: """
34 + cargo tauri ios xcode-script -v \
35 + --platform ${PLATFORM_DISPLAY_NAME:?} \
36 + --sdk-root ${SDKROOT:?} \
37 + --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" \
38 + --header-search-paths "${HEADER_SEARCH_PATHS:?}" \
39 + --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" \
40 + --configuration ${CONFIGURATION:?} \
41 + ${FORCE_COLOR} ${ARCHS:?}
42 + """,
43 + name: "Build Rust Code",
44 + outputPaths: [
45 + "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a",
46 + "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a",
47 + ],
48 + basedOnDependencyAnalysis: false
49 + )
50 + ],
51 + dependencies: [
52 + .target(name: "tauri-app_watchOS"),
53 + .sdk(name: "CoreGraphics", type: .framework),
54 + .sdk(name: "Metal", type: .framework),
55 + .sdk(name: "MetalKit", type: .framework),
56 + .sdk(name: "QuartzCore", type: .framework),
57 + .sdk(name: "Security", type: .framework),
58 + .sdk(name: "UIKit", type: .framework),
59 + .sdk(name: "WebKit", type: .framework),
60 + ],
61 + settings: .settings(
62 + base: [
63 + "ENABLE_BITCODE": "NO",
64 + "ARCHS": "arm64",
65 + "VALID_ARCHS": "arm64",
66 + "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES": "YES",
67 + "LIBRARY_SEARCH_PATHS[arch=arm64]": [
68 + "$(inherited)",
69 + "$(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION)",
70 + "$(SDKROOT)/usr/lib/swift",
71 + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
72 + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
73 + ],
74 + "LIBRARY_SEARCH_PATHS[arch=x86_64]": [
75 + "$(inherited)",
76 + "$(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION)",
77 + "$(SDKROOT)/usr/lib/swift",
78 + "$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)",
79 + "$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)",
80 + ],
81 + "EXCLUDED_ARCHS[sdk=iphoneos*]": "x86_64",
82 + "OTHER_LDFLAGS": [
83 + "$(inherited)",
84 + "-lapp",
85 + ],
86 + ]
87 + )
88 + ),
89 +
90 + // MARK: - tvOS placeholder target (no WebView on tvOS — native UI only)
91 + .target(
92 + name: "tauri-app_tvOS",
93 + destinations: [.appleTv],
94 + product: .app,
95 + bundleId: "com.tauri.dev.tvos",
96 + deploymentTargets: .tvOS("14.0"),
97 + infoPlist: .file(path: "tauri-app_tvOS/Info.plist"),
98 + sources: [
99 + "tauri-app_tvOS/**"
100 + ],
101 + resources: [
102 + "Assets.xcassets"
103 + ],
104 + dependencies: [
105 + .sdk(name: "UIKit", type: .framework)
106 + ],
107 + settings: .settings(
108 + base: [
109 + "ENABLE_BITCODE": "NO",
110 + "ARCHS": "arm64",
111 + ]
112 + )
113 + ),
114 +
115 + // MARK: - watchOS app (embedded in iOS host, standalone SwiftUI — no WebView)
116 + .target(
117 + name: "tauri-app_watchOS",
118 + destinations: [.appleWatch],
119 + product: .app,
120 + bundleId: "com.tauri.dev.watchos",
121 + deploymentTargets: .watchOS("7.0"),
122 + infoPlist: .file(path: "tauri-app_watchOS/Info.plist"),
123 + sources: [
124 + "tauri-app_watchOS/**"
125 + ],
126 + resources: [
127 + "tauri-app_watchOS/Assets.xcassets"
128 + ],
129 + dependencies: [],
130 + settings: .settings(
131 + base: [
132 + "ENABLE_BITCODE": "NO",
133 + "SKIP_INSTALL": "NO",
134 + "SUPPORTS_MACCATALYST": "NO",
135 + "ASSETCATALOG_COMPILER_APPICON_NAME": "AppIcon",
136 + "SUPPORTED_PLATFORMS": "watchos watchsimulator",
137 + "WATCHOS_DEPLOYMENT_TARGET": "7.0",
138 + ]
139 + )
140 + ),
141 +
142 + // MARK: - visionOS app (standalone, SwiftUI only — no WebView on visionOS)
143 + .target(
144 + name: "tauri-app_visionOS",
145 + destinations: [.appleVision],
146 + product: .app,
147 + bundleId: "com.tauri.dev.visionos",
148 + deploymentTargets: .visionOS("1.0"),
149 + infoPlist: .file(path: "tauri-app_visionOS/Info.plist"),
150 + sources: [
151 + "tauri-app_visionOS/**"
152 + ],
153 + resources: [
154 + "Assets.xcassets"
155 + ],
156 + dependencies: [],
157 + settings: .settings(
158 + base: [
159 + "ENABLE_BITCODE": "NO",
160 + "ARCHS": "arm64",
161 + ]
162 + )
163 + ),
164 + ],
165 + schemes: [
166 + .scheme(
167 + name: "tauri-app_iOS",
168 + buildAction: .buildAction(targets: ["tauri-app_iOS"]),
169 + runAction: .runAction(configuration: .debug),
170 + archiveAction: .archiveAction(configuration: .release),
171 + profileAction: .profileAction(configuration: .release),
172 + analyzeAction: .analyzeAction(configuration: .debug)
173 + ),
174 + .scheme(
175 + name: "tauri-app_tvOS",
176 + buildAction: .buildAction(targets: ["tauri-app_tvOS"]),
177 + runAction: .runAction(configuration: .debug),
178 + archiveAction: .archiveAction(configuration: .release),
179 + profileAction: .profileAction(configuration: .release),
180 + analyzeAction: .analyzeAction(configuration: .debug)
181 + ),
182 + .scheme(
183 + name: "tauri-app_visionOS",
184 + buildAction: .buildAction(targets: ["tauri-app_visionOS"]),
185 + runAction: .runAction(configuration: .debug),
186 + archiveAction: .archiveAction(configuration: .release),
187 + profileAction: .profileAction(configuration: .release),
188 + analyzeAction: .analyzeAction(configuration: .debug)
189 + ),
190 + ]
191 +)
examples/tauri-app/src-tauri/gen/apple/README.md new
+92
@@ -0,0 +1,92 @@
1 +# Tauri + Tuist — iOS / tvOS / watchOS / visionOS project
2 +
3 +`Project.swift` is the single source of truth for the Xcode project.
4 +There is no Makefile. Use Tuist directly.
5 +
6 +## Prerequisites
7 +
8 +Install [mise](https://mise.jdx.dev/) then activate the pinned Tuist version:
9 +
10 +```sh
11 +mise install # reads mise.toml → installs tuist 4.150.0
12 +eval "$(mise activate bash)" # or zsh/fish
13 +```
14 +
15 +## Day-to-day commands
16 +
17 +| What | Command |
18 +|---|---|
19 +| Generate the Xcode project (headless) | `tuist generate --no-open` |
20 +| Generate **and** open Xcode | `tuist generate` |
21 +| Clean generated artifacts | `tuist clean` |
22 +| Edit Project.swift in Xcode | `tuist edit` |
23 +
24 +## Building
25 +
26 +After `tuist generate`, build through Xcode or the command line:
27 +
28 +```sh
29 +# iOS (simulator)
30 +xcodebuild \
31 + -workspace tauri-app.xcworkspace \
32 + -scheme tauri-app_iOS \
33 + -destination "generic/platform=iOS Simulator" \
34 + -configuration Debug \
35 + build
36 +
37 +# tvOS (simulator)
38 +xcodebuild \
39 + -workspace tauri-app.xcworkspace \
40 + -scheme tauri-app_tvOS \
41 + -destination "generic/platform=tvOS Simulator" \
42 + -configuration Debug \
43 + build
44 +
45 +# watchOS (simulator)
46 +xcodebuild \
47 + -workspace tauri-app.xcworkspace \
48 + -scheme tauri-app_watchOS \
49 + -destination "generic/platform=watchOS Simulator" \
50 + -configuration Debug \
51 + build
52 +
53 +# visionOS (simulator)
54 +xcodebuild \
55 + -workspace tauri-app.xcworkspace \
56 + -scheme tauri-app_visionOS \
57 + -destination "generic/platform=visionOS Simulator" \
58 + -configuration Debug \
59 + build
60 +```
61 +
62 +## After `cargo tauri ios init`
63 +
64 +Tauri regenerates `project.yml` (XcodeGen format) but does **not** touch
65 +`Project.swift`. Since Tuist is the source of truth, just re-run:
66 +
67 +```sh
68 +tuist generate --no-open
69 +```
70 +
71 +If Tauri added new source files or frameworks in `project.yml`, port those
72 +changes to `Project.swift` first, then generate.
73 +
74 +## Full reset
75 +
76 +```sh
77 +cd ../../ # back to src-tauri
78 +cargo tauri ios init # re-scaffold project.yml
79 +cd gen/apple
80 +tuist generate --no-open
81 +```
82 +
83 +## What gets generated (git-ignored)
84 +
85 +| Path | Created by |
86 +|---|---|
87 +| `project.yml` | `cargo tauri ios init` |
88 +| `*.xcodeproj/` | `tuist generate` |
89 +| `*.xcworkspace/` | `tuist generate` |
90 +| `Derived/` | `tuist generate` |
91 +| `Externals/` | Rust build (`cargo tauri ios xcode-script`) |
92 +| `build/` | Xcode |
\ No newline at end of file
examples/tauri-app/src-tauri/gen/apple/Tuist.swift new
+9
@@ -0,0 +1,9 @@
1 +import ProjectDescription
2 +
3 +let config = Config(
4 + compatibleXcodeVersions: .all,
5 + generationOptions: .options(
6 + resolveDependenciesWithSystemScm: false,
7 + disablePackageVersionLocking: true
8 + )
9 +)
examples/tauri-app/src-tauri/gen/apple/mise.toml new
+2
@@ -0,0 +1,2 @@
1 +[tools]
2 +tuist = "4.150.0"
examples/tauri-app/src-tauri/gen/apple/project.yml deleted
-89
@@ -1,89 +0,0 @@
1 -name: tauri-app
2 -options:
3 - bundleIdPrefix: com.tauri.dev
4 - deploymentTarget:
5 - iOS: 14.0
6 -fileGroups: [../../src]
7 -configs:
8 - debug: debug
9 - release: release
10 -settingGroups:
11 - app:
12 - base:
13 - PRODUCT_NAME: tauri-app
14 - PRODUCT_BUNDLE_IDENTIFIER: com.tauri.dev
15 - DEVELOPMENT_TEAM: NADBSNEZWH
16 -targetTemplates:
17 - app:
18 - type: application
19 - sources:
20 - - path: Sources
21 - scheme:
22 - environmentVariables:
23 - RUST_BACKTRACE: full
24 - RUST_LOG: info
25 - settings:
26 - groups: [app]
27 -targets:
28 - tauri-app_iOS:
29 - type: application
30 - platform: iOS
31 - sources:
32 - - path: Sources
33 - - path: Assets.xcassets
34 - - path: Externals
35 - - path: tauri-app_iOS
36 - - path: assets
37 - buildPhase: resources
38 - type: folder
39 - - path: LaunchScreen.storyboard
40 - info:
41 - path: tauri-app_iOS/Info.plist
42 - properties:
43 - LSRequiresIPhoneOS: true
44 - UILaunchStoryboardName: LaunchScreen
45 - UIRequiredDeviceCapabilities: [arm64, metal]
46 - UISupportedInterfaceOrientations:
47 - - UIInterfaceOrientationPortrait
48 - - UIInterfaceOrientationLandscapeLeft
49 - - UIInterfaceOrientationLandscapeRight
50 - UISupportedInterfaceOrientations~ipad:
51 - - UIInterfaceOrientationPortrait
52 - - UIInterfaceOrientationPortraitUpsideDown
53 - - UIInterfaceOrientationLandscapeLeft
54 - - UIInterfaceOrientationLandscapeRight
55 - CFBundleShortVersionString: 0.1.0
56 - CFBundleVersion: "0.1.0"
57 - entitlements:
58 - path: tauri-app_iOS/tauri-app_iOS.entitlements
59 - scheme:
60 - environmentVariables:
61 - RUST_BACKTRACE: full
62 - RUST_LOG: info
63 - settings:
64 - base:
65 - ENABLE_BITCODE: false
66 - ARCHS: [arm64]
67 - VALID_ARCHS: arm64
68 - LIBRARY_SEARCH_PATHS[arch=x86_64]: $(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
69 - LIBRARY_SEARCH_PATHS[arch=arm64]: $(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
70 - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES: true
71 - EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64
72 - groups: [app]
73 - dependencies:
74 - - framework: libapp.a
75 - embed: false
76 - - sdk: CoreGraphics.framework
77 - - sdk: Metal.framework
78 - - sdk: MetalKit.framework
79 - - sdk: QuartzCore.framework
80 - - sdk: Security.framework
81 - - sdk: UIKit.framework
82 - - sdk: WebKit.framework
83 - preBuildScripts:
84 - - script: cargo tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths "${FRAMEWORK_SEARCH_PATHS:?}" --header-search-paths "${HEADER_SEARCH_PATHS:?}" --gcc-preprocessor-definitions "${GCC_PREPROCESSOR_DEFINITIONS:-}" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}
85 - name: Build Rust Code
86 - basedOnDependencyAnalysis: false
87 - outputFiles:
88 - - $(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a
89 - - $(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a
\ No newline at end of file
examples/tauri-app/src-tauri/gen/apple/tauri-app.xcodeproj/project.pbxproj deleted
-465
@@ -1,465 +0,0 @@
1 -// !$*UTF8*$!
2 -{
3 - archiveVersion = 1;
4 - classes = {
5 - };
6 - objectVersion = 77;
7 - objects = {
8 -
9 -/* Begin PBXBuildFile section */
10 - 094A1ECD90ECD007825D95B3 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84E625C1ABDB2D39CB77BF29 /* Security.framework */; };
11 - 1524BBF419A24C289873FCE0 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA1A066F7EDD869BC014BB9C /* Metal.framework */; };
12 - 5DCFDCE0989E0655641185BE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */; };
13 - 5DDC8F8949AE56AB4B683F62 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5384EE0C649F19A31B462538 /* QuartzCore.framework */; };
14 - 6495EEEF2DFC12CB82351B2B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C42C09CE350D0304EDF85C59 /* UIKit.framework */; };
15 - 7425A66C523CC66EFF87A16E /* libapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 46600E42EDBD4E2F9CFFB94E /* libapp.a */; };
16 - 74C25A7912AFE30DBE96B590 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 234C7D371C7B526F7E893B15 /* assets */; };
17 - 7A50F9841502955D69915755 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8DBF813DB5FCB214283D94D /* MetalKit.framework */; };
18 - 7E5D9DF6134425B5314935DE /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 75C0A66A4769E0B428DFFE16 /* main.mm */; };
19 - 824033B5A7F94F13A4C63E6E /* WebKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CF0F15D9837DA9743995496A /* WebKit.framework */; };
20 - 8A272DD02B0D36ACBCE73E26 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */; };
21 - CA00951E60FA3594F396EEEC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */; };
22 -/* End PBXBuildFile section */
23 -
24 -/* Begin PBXFileReference section */
25 - 234C7D371C7B526F7E893B15 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = assets; sourceTree = SOURCE_ROOT; };
26 - 415CE9B61EE711FB11882F1B /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = "<group>"; };
27 - 46600E42EDBD4E2F9CFFB94E /* libapp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libapp.a; sourceTree = "<group>"; };
28 - 5384EE0C649F19A31B462538 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
29 - 6B62CCFCDED0CBE851A51E4F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
30 - 75C0A66A4769E0B428DFFE16 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
31 - 7A62F8DA3ACF6DA66CB9785D /* tauri-app_iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "tauri-app_iOS.entitlements"; sourceTree = "<group>"; };
32 - 84E625C1ABDB2D39CB77BF29 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
33 - 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = "tauri-app_iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
34 - AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
35 - B8DBF813DB5FCB214283D94D /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; };
36 - BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
37 - C42C09CE350D0304EDF85C59 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
38 - CA1A066F7EDD869BC014BB9C /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
39 - CF0F15D9837DA9743995496A /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
40 - CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
41 - D96C5A0C6EF1CFC067A1C008 /* main.rs */ = {isa = PBXFileReference; path = main.rs; sourceTree = "<group>"; };
42 - E486419C84C58B66E0FC1383 /* lib.rs */ = {isa = PBXFileReference; path = lib.rs; sourceTree = "<group>"; };
43 -/* End PBXFileReference section */
44 -
45 -/* Begin PBXFrameworksBuildPhase section */
46 - 6EEA0490763EB982F7701E3D /* Frameworks */ = {
47 - isa = PBXFrameworksBuildPhase;
48 - buildActionMask = 2147483647;
49 - files = (
50 - 7425A66C523CC66EFF87A16E /* libapp.a in Frameworks */,
51 - CA00951E60FA3594F396EEEC /* CoreGraphics.framework in Frameworks */,
52 - 1524BBF419A24C289873FCE0 /* Metal.framework in Frameworks */,
53 - 7A50F9841502955D69915755 /* MetalKit.framework in Frameworks */,
54 - 5DDC8F8949AE56AB4B683F62 /* QuartzCore.framework in Frameworks */,
55 - 094A1ECD90ECD007825D95B3 /* Security.framework in Frameworks */,
56 - 6495EEEF2DFC12CB82351B2B /* UIKit.framework in Frameworks */,
57 - 824033B5A7F94F13A4C63E6E /* WebKit.framework in Frameworks */,
58 - );
59 - runOnlyForDeploymentPostprocessing = 0;
60 - };
61 -/* End PBXFrameworksBuildPhase section */
62 -
63 -/* Begin PBXGroup section */
64 - 2ECFA35AFF2D5945783C3B8D /* Externals */ = {
65 - isa = PBXGroup;
66 - children = (
67 - );
68 - path = Externals;
69 - sourceTree = "<group>";
70 - };
71 - 4261FD71066ABB203F1B3741 /* Products */ = {
72 - isa = PBXGroup;
73 - children = (
74 - 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */,
75 - );
76 - name = Products;
77 - sourceTree = "<group>";
78 - };
79 - 48DF3F622809E7EBA4ED342A /* src */ = {
80 - isa = PBXGroup;
81 - children = (
82 - E486419C84C58B66E0FC1383 /* lib.rs */,
83 - D96C5A0C6EF1CFC067A1C008 /* main.rs */,
84 - );
85 - name = src;
86 - path = ../../src;
87 - sourceTree = "<group>";
88 - };
89 - 5FCA5E244F4BE4C93672F978 /* bindings */ = {
90 - isa = PBXGroup;
91 - children = (
92 - 415CE9B61EE711FB11882F1B /* bindings.h */,
93 - );
94 - path = bindings;
95 - sourceTree = "<group>";
96 - };
97 - 86E4D2974D6FC803E43026BD /* Frameworks */ = {
98 - isa = PBXGroup;
99 - children = (
100 - AC56A11F310BBFF30CCFEB63 /* CoreGraphics.framework */,
101 - 46600E42EDBD4E2F9CFFB94E /* libapp.a */,
102 - CA1A066F7EDD869BC014BB9C /* Metal.framework */,
103 - B8DBF813DB5FCB214283D94D /* MetalKit.framework */,
104 - 5384EE0C649F19A31B462538 /* QuartzCore.framework */,
105 - 84E625C1ABDB2D39CB77BF29 /* Security.framework */,
106 - C42C09CE350D0304EDF85C59 /* UIKit.framework */,
107 - CF0F15D9837DA9743995496A /* WebKit.framework */,
108 - );
109 - name = Frameworks;
110 - sourceTree = "<group>";
111 - };
112 - 90B7B06659AD5A7A7EE39662 /* Sources */ = {
113 - isa = PBXGroup;
114 - children = (
115 - 9A6A58EE8A3E239B0E7BDD81 /* tauri-app */,
116 - );
117 - path = Sources;
118 - sourceTree = "<group>";
119 - };
120 - 9A6A58EE8A3E239B0E7BDD81 /* tauri-app */ = {
121 - isa = PBXGroup;
122 - children = (
123 - 75C0A66A4769E0B428DFFE16 /* main.mm */,
124 - 5FCA5E244F4BE4C93672F978 /* bindings */,
125 - );
126 - path = "tauri-app";
127 - sourceTree = "<group>";
128 - };
129 - A17B869C1C261C5F8DF765C9 /* tauri-app_iOS */ = {
130 - isa = PBXGroup;
131 - children = (
132 - 6B62CCFCDED0CBE851A51E4F /* Info.plist */,
133 - 7A62F8DA3ACF6DA66CB9785D /* tauri-app_iOS.entitlements */,
134 - );
135 - path = "tauri-app_iOS";
136 - sourceTree = "<group>";
137 - };
138 - E8C7C60131D2B902F3255A8F = {
139 - isa = PBXGroup;
140 - children = (
141 - 234C7D371C7B526F7E893B15 /* assets */,
142 - CFDCAF660F4CA93110C8FB02 /* Assets.xcassets */,
143 - BA38F7BF7C28E04DBA849965 /* LaunchScreen.storyboard */,
144 - 2ECFA35AFF2D5945783C3B8D /* Externals */,
145 - 90B7B06659AD5A7A7EE39662 /* Sources */,
146 - 48DF3F622809E7EBA4ED342A /* src */,
147 - A17B869C1C261C5F8DF765C9 /* tauri-app_iOS */,
148 - 86E4D2974D6FC803E43026BD /* Frameworks */,
149 - 4261FD71066ABB203F1B3741 /* Products */,
150 - );
151 - sourceTree = "<group>";
152 - };
153 -/* End PBXGroup section */
154 -
155 -/* Begin PBXNativeTarget section */
156 - 067C19C8047A2326EE93616E /* tauri-app_iOS */ = {
157 - isa = PBXNativeTarget;
158 - buildConfigurationList = 492FB4942D220065AF299C12 /* Build configuration list for PBXNativeTarget "tauri-app_iOS" */;
159 - buildPhases = (
160 - 4CFF21EFA1FFE4D2AB9D6998 /* Build Rust Code */,
161 - D8D571D7BDCA1ABF2E0CB9D6 /* Sources */,
162 - A4D85C1726744E26D8F01FD3 /* Resources */,
163 - 6EEA0490763EB982F7701E3D /* Frameworks */,
164 - );
165 - buildRules = (
166 - );
167 - dependencies = (
168 - );
169 - name = "tauri-app_iOS";
170 - packageProductDependencies = (
171 - );
172 - productName = "tauri-app_iOS";
173 - productReference = 9B11C2C873FB5A7B97B0605A /* tauri-app_iOS.app */;
174 - productType = "com.apple.product-type.application";
175 - };
176 -/* End PBXNativeTarget section */
177 -
178 -/* Begin PBXProject section */
179 - 90D4CFD39CFBBAA5E9883AD5 /* Project object */ = {
180 - isa = PBXProject;
181 - attributes = {
182 - BuildIndependentTargetsInParallel = YES;
183 - LastUpgradeCheck = 1430;
184 - TargetAttributes = {
185 - 067C19C8047A2326EE93616E = {
186 - DevelopmentTeam = NADBSNEZWH;
187 - };
188 - };
189 - };
190 - buildConfigurationList = 15AD1887792B155C6905ADD6 /* Build configuration list for PBXProject "tauri-app" */;
191 - compatibilityVersion = "Xcode 14.0";
192 - developmentRegion = en;
193 - hasScannedForEncodings = 0;
194 - knownRegions = (
195 - Base,
196 - en,
197 - );
198 - mainGroup = E8C7C60131D2B902F3255A8F;
199 - minimizedProjectReferenceProxies = 1;
200 - preferredProjectObjectVersion = 77;
201 - projectDirPath = "";
202 - projectRoot = "";
203 - targets = (
204 - 067C19C8047A2326EE93616E /* tauri-app_iOS */,
205 - );
206 - };
207 -/* End PBXProject section */
208 -
209 -/* Begin PBXResourcesBuildPhase section */
210 - A4D85C1726744E26D8F01FD3 /* Resources */ = {
211 - isa = PBXResourcesBuildPhase;
212 - buildActionMask = 2147483647;
213 - files = (
214 - 8A272DD02B0D36ACBCE73E26 /* Assets.xcassets in Resources */,
215 - 5DCFDCE0989E0655641185BE /* LaunchScreen.storyboard in Resources */,
216 - 74C25A7912AFE30DBE96B590 /* assets in Resources */,
217 - );
218 - runOnlyForDeploymentPostprocessing = 0;
219 - };
220 -/* End PBXResourcesBuildPhase section */
221 -
222 -/* Begin PBXShellScriptBuildPhase section */
223 - 4CFF21EFA1FFE4D2AB9D6998 /* Build Rust Code */ = {
224 - isa = PBXShellScriptBuildPhase;
225 - alwaysOutOfDate = 1;
226 - buildActionMask = 2147483647;
227 - files = (
228 - );
229 - inputFileListPaths = (
230 - );
231 - inputPaths = (
232 - );
233 - name = "Build Rust Code";
234 - outputFileListPaths = (
235 - );
236 - outputPaths = (
237 - "$(SRCROOT)/Externals/x86_64/${CONFIGURATION}/libapp.a",
238 - "$(SRCROOT)/Externals/arm64/${CONFIGURATION}/libapp.a",
239 - );
240 - runOnlyForDeploymentPostprocessing = 0;
241 - shellPath = /bin/sh;
242 - shellScript = "cargo tauri ios xcode-script -v --platform ${PLATFORM_DISPLAY_NAME:?} --sdk-root ${SDKROOT:?} --framework-search-paths \"${FRAMEWORK_SEARCH_PATHS:?}\" --header-search-paths \"${HEADER_SEARCH_PATHS:?}\" --gcc-preprocessor-definitions \"${GCC_PREPROCESSOR_DEFINITIONS:-}\" --configuration ${CONFIGURATION:?} ${FORCE_COLOR} ${ARCHS:?}";
243 - };
244 -/* End PBXShellScriptBuildPhase section */
245 -
246 -/* Begin PBXSourcesBuildPhase section */
247 - D8D571D7BDCA1ABF2E0CB9D6 /* Sources */ = {
248 - isa = PBXSourcesBuildPhase;
249 - buildActionMask = 2147483647;
250 - files = (
251 - 7E5D9DF6134425B5314935DE /* main.mm in Sources */,
252 - );
253 - runOnlyForDeploymentPostprocessing = 0;
254 - };
255 -/* End PBXSourcesBuildPhase section */
256 -
257 -/* Begin XCBuildConfiguration section */
258 - 421E0640619ED5B0C0B13B4E /* debug */ = {
259 - isa = XCBuildConfiguration;
260 - buildSettings = {
261 - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
262 - ARCHS = (
263 - arm64,
264 - );
265 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
266 - CODE_SIGN_ENTITLEMENTS = "tauri-app_iOS/tauri-app_iOS.entitlements";
267 - CODE_SIGN_IDENTITY = "iPhone Developer";
268 - DEVELOPMENT_TEAM = "NADBSNEZWH";
269 - ENABLE_BITCODE = NO;
270 - "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64;
271 - FRAMEWORK_SEARCH_PATHS = (
272 - "$(inherited)",
273 - "\".\"",
274 - );
275 - INFOPLIST_FILE = "tauri-app_iOS/Info.plist";
276 - LD_RUNPATH_SEARCH_PATHS = (
277 - "$(inherited)",
278 - "@executable_path/Frameworks",
279 - );
280 - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
281 - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
282 - PRODUCT_BUNDLE_IDENTIFIER = com.tauri.dev;
283 - PRODUCT_NAME = "tauri-app";
284 - SDKROOT = iphoneos;
285 - TARGETED_DEVICE_FAMILY = "1,2";
286 - VALID_ARCHS = arm64;
287 - };
288 - name = debug;
289 - };
290 - 62330632B84ED41E941EFCF6 /* release */ = {
291 - isa = XCBuildConfiguration;
292 - buildSettings = {
293 - ALWAYS_SEARCH_USER_PATHS = NO;
294 - CLANG_ANALYZER_NONNULL = YES;
295 - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
296 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
297 - CLANG_CXX_LIBRARY = "libc++";
298 - CLANG_ENABLE_MODULES = YES;
299 - CLANG_ENABLE_OBJC_ARC = YES;
300 - CLANG_ENABLE_OBJC_WEAK = YES;
301 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
302 - CLANG_WARN_BOOL_CONVERSION = YES;
303 - CLANG_WARN_COMMA = YES;
304 - CLANG_WARN_CONSTANT_CONVERSION = YES;
305 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
306 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
307 - CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
308 - CLANG_WARN_EMPTY_BODY = YES;
309 - CLANG_WARN_ENUM_CONVERSION = YES;
310 - CLANG_WARN_INFINITE_RECURSION = YES;
311 - CLANG_WARN_INT_CONVERSION = YES;
312 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
313 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
314 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
315 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
316 - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
317 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
318 - CLANG_WARN_STRICT_PROTOTYPES = YES;
319 - CLANG_WARN_SUSPICIOUS_MOVE = YES;
320 - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
321 - CLANG_WARN_UNREACHABLE_CODE = YES;
322 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
323 - COPY_PHASE_STRIP = NO;
324 - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
325 - ENABLE_NS_ASSERTIONS = NO;
326 - ENABLE_STRICT_OBJC_MSGSEND = YES;
327 - GCC_C_LANGUAGE_STANDARD = gnu11;
328 - GCC_NO_COMMON_BLOCKS = YES;
329 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
330 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
331 - GCC_WARN_UNDECLARED_SELECTOR = YES;
332 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
333 - GCC_WARN_UNUSED_FUNCTION = YES;
334 - GCC_WARN_UNUSED_VARIABLE = YES;
335 - IPHONEOS_DEPLOYMENT_TARGET = 14.0;
336 - MTL_ENABLE_DEBUG_INFO = NO;
337 - MTL_FAST_MATH = YES;
338 - PRODUCT_NAME = "$(TARGET_NAME)";
339 - SDKROOT = iphoneos;
340 - SWIFT_COMPILATION_MODE = wholemodule;
341 - SWIFT_OPTIMIZATION_LEVEL = "-O";
342 - SWIFT_VERSION = 5.0;
343 - };
344 - name = release;
345 - };
346 - 62D98D8CE88586901FBBF6C0 /* debug */ = {
347 - isa = XCBuildConfiguration;
348 - buildSettings = {
349 - ALWAYS_SEARCH_USER_PATHS = NO;
350 - CLANG_ANALYZER_NONNULL = YES;
351 - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
352 - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
353 - CLANG_CXX_LIBRARY = "libc++";
354 - CLANG_ENABLE_MODULES = YES;
355 - CLANG_ENABLE_OBJC_ARC = YES;
356 - CLANG_ENABLE_OBJC_WEAK = YES;
357 - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
358 - CLANG_WARN_BOOL_CONVERSION = YES;
359 - CLANG_WARN_COMMA = YES;
360 - CLANG_WARN_CONSTANT_CONVERSION = YES;
361 - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
362 - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
363 - CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
364 - CLANG_WARN_EMPTY_BODY = YES;
365 - CLANG_WARN_ENUM_CONVERSION = YES;
366 - CLANG_WARN_INFINITE_RECURSION = YES;
367 - CLANG_WARN_INT_CONVERSION = YES;
368 - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
369 - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
370 - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
371 - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
372 - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
373 - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
374 - CLANG_WARN_STRICT_PROTOTYPES = YES;
375 - CLANG_WARN_SUSPICIOUS_MOVE = YES;
376 - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
377 - CLANG_WARN_UNREACHABLE_CODE = YES;
378 - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
379 - COPY_PHASE_STRIP = NO;
380 - DEBUG_INFORMATION_FORMAT = dwarf;
381 - ENABLE_STRICT_OBJC_MSGSEND = YES;
382 - ENABLE_TESTABILITY = YES;
383 - GCC_C_LANGUAGE_STANDARD = gnu11;
384 - GCC_DYNAMIC_NO_PIC = NO;
385 - GCC_NO_COMMON_BLOCKS = YES;
386 - GCC_OPTIMIZATION_LEVEL = 0;
387 - GCC_PREPROCESSOR_DEFINITIONS = (
388 - "$(inherited)",
389 - "DEBUG=1",
390 - );
391 - GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
392 - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
393 - GCC_WARN_UNDECLARED_SELECTOR = YES;
394 - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
395 - GCC_WARN_UNUSED_FUNCTION = YES;
396 - GCC_WARN_UNUSED_VARIABLE = YES;
397 - IPHONEOS_DEPLOYMENT_TARGET = 14.0;
398 - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
399 - MTL_FAST_MATH = YES;
400 - ONLY_ACTIVE_ARCH = YES;
401 - PRODUCT_NAME = "$(TARGET_NAME)";
402 - SDKROOT = iphoneos;
403 - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
404 - SWIFT_OPTIMIZATION_LEVEL = "-Onone";
405 - SWIFT_VERSION = 5.0;
406 - };
407 - name = debug;
408 - };
409 - D2A4FF1B078298AC78D0EBD3 /* release */ = {
410 - isa = XCBuildConfiguration;
411 - buildSettings = {
412 - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
413 - ARCHS = (
414 - arm64,
415 - );
416 - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
417 - CODE_SIGN_ENTITLEMENTS = "tauri-app_iOS/tauri-app_iOS.entitlements";
418 - CODE_SIGN_IDENTITY = "iPhone Developer";
419 - DEVELOPMENT_TEAM = "NADBSNEZWH";
420 - ENABLE_BITCODE = NO;
421 - "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64;
422 - FRAMEWORK_SEARCH_PATHS = (
423 - "$(inherited)",
424 - "\".\"",
425 - );
426 - INFOPLIST_FILE = "tauri-app_iOS/Info.plist";
427 - LD_RUNPATH_SEARCH_PATHS = (
428 - "$(inherited)",
429 - "@executable_path/Frameworks",
430 - );
431 - "LIBRARY_SEARCH_PATHS[arch=arm64]" = "$(inherited) $(PROJECT_DIR)/Externals/arm64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
432 - "LIBRARY_SEARCH_PATHS[arch=x86_64]" = "$(inherited) $(PROJECT_DIR)/Externals/x86_64/$(CONFIGURATION) $(SDKROOT)/usr/lib/swift $(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME) $(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)";
433 - PRODUCT_BUNDLE_IDENTIFIER = com.tauri.dev;
434 - PRODUCT_NAME = "tauri-app";
435 - SDKROOT = iphoneos;
436 - TARGETED_DEVICE_FAMILY = "1,2";
437 - VALID_ARCHS = arm64;
438 - };
439 - name = release;
440 - };
441 -/* End XCBuildConfiguration section */
442 -
443 -/* Begin XCConfigurationList section */
444 - 15AD1887792B155C6905ADD6 /* Build configuration list for PBXProject "tauri-app" */ = {
445 - isa = XCConfigurationList;
446 - buildConfigurations = (
447 - 62D98D8CE88586901FBBF6C0 /* debug */,
448 - 62330632B84ED41E941EFCF6 /* release */,
449 - );
450 - defaultConfigurationIsVisible = 0;
451 - defaultConfigurationName = debug;
452 - };
453 - 492FB4942D220065AF299C12 /* Build configuration list for PBXNativeTarget "tauri-app_iOS" */ = {
454 - isa = XCConfigurationList;
455 - buildConfigurations = (
456 - 421E0640619ED5B0C0B13B4E /* debug */,
457 - D2A4FF1B078298AC78D0EBD3 /* release */,
458 - );
459 - defaultConfigurationIsVisible = 0;
460 - defaultConfigurationName = debug;
461 - };
462 -/* End XCConfigurationList section */
463 - };
464 - rootObject = 90D4CFD39CFBBAA5E9883AD5 /* Project object */;
465 -}
examples/tauri-app/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted
-7
@@ -1,7 +0,0 @@
1 -<?xml version="1.0" encoding="UTF-8"?>
2 -<Workspace
3 - version = "1.0">
4 - <FileRef
5 - location = "self:">
6 - </FileRef>
7 -</Workspace>
examples/tauri-app/src-tauri/gen/apple/tauri-app.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted
-10
@@ -1,10 +0,0 @@
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>BuildSystemType</key>
6 - <string>Original</string>
7 - <key>DisableBuildSystemDeprecationDiagnostic</key>
8 - <true/>
9 -</dict>
10 -</plist>
examples/tauri-app/src-tauri/gen/apple/tauri-app.xcodeproj/xcshareddata/xcschemes/tauri-app_iOS.xcscheme deleted
-123
@@ -1,123 +0,0 @@
1 -<?xml version="1.0" encoding="UTF-8"?>
2 -<Scheme
3 - LastUpgradeVersion = "1430"
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 = "067C19C8047A2326EE93616E"
18 - BuildableName = "tauri-app.app"
19 - BlueprintName = "tauri-app_iOS"
20 - ReferencedContainer = "container:tauri-app.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 = "NO">
30 - <MacroExpansion>
31 - <BuildableReference
32 - BuildableIdentifier = "primary"
33 - BlueprintIdentifier = "067C19C8047A2326EE93616E"
34 - BuildableName = "tauri-app.app"
35 - BlueprintName = "tauri-app_iOS"
36 - ReferencedContainer = "container:tauri-app.xcodeproj">
37 - </BuildableReference>
38 - </MacroExpansion>
39 - <EnvironmentVariables>
40 - <EnvironmentVariable
41 - key = "RUST_BACKTRACE"
42 - value = "full"
43 - isEnabled = "YES">
44 - </EnvironmentVariable>
45 - <EnvironmentVariable
46 - key = "RUST_LOG"
47 - value = "info"
48 - isEnabled = "YES">
49 - </EnvironmentVariable>
50 - </EnvironmentVariables>
51 - <Testables>
52 - </Testables>
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 = "067C19C8047A2326EE93616E"
69 - BuildableName = "tauri-app.app"
70 - BlueprintName = "tauri-app_iOS"
71 - ReferencedContainer = "container:tauri-app.xcodeproj">
72 - </BuildableReference>
73 - </BuildableProductRunnable>
74 - <EnvironmentVariables>
75 - <EnvironmentVariable
76 - key = "RUST_BACKTRACE"
77 - value = "full"
78 - isEnabled = "YES">
79 - </EnvironmentVariable>
80 - <EnvironmentVariable
81 - key = "RUST_LOG"
82 - value = "info"
83 - isEnabled = "YES">
84 - </EnvironmentVariable>
85 - </EnvironmentVariables>
86 - </LaunchAction>
87 - <ProfileAction
88 - buildConfiguration = "release"
89 - shouldUseLaunchSchemeArgsEnv = "NO"
90 - savedToolIdentifier = ""
91 - useCustomWorkingDirectory = "NO"
92 - debugDocumentVersioning = "YES">
93 - <BuildableProductRunnable
94 - runnableDebuggingMode = "0">
95 - <BuildableReference
96 - BuildableIdentifier = "primary"
97 - BlueprintIdentifier = "067C19C8047A2326EE93616E"
98 - BuildableName = "tauri-app.app"
99 - BlueprintName = "tauri-app_iOS"
100 - ReferencedContainer = "container:tauri-app.xcodeproj">
101 - </BuildableReference>
102 - </BuildableProductRunnable>
103 - <EnvironmentVariables>
104 - <EnvironmentVariable
105 - key = "RUST_BACKTRACE"
106 - value = "full"
107 - isEnabled = "YES">
108 - </EnvironmentVariable>
109 - <EnvironmentVariable
110 - key = "RUST_LOG"
111 - value = "info"
112 - isEnabled = "YES">
113 - </EnvironmentVariable>
114 - </EnvironmentVariables>
115 - </ProfileAction>
116 - <AnalyzeAction
117 - buildConfiguration = "debug">
118 - </AnalyzeAction>
119 - <ArchiveAction
120 - buildConfiguration = "release"
121 - revealArchiveInOrganizer = "YES">
122 - </ArchiveAction>
123 -</Scheme>
examples/tauri-app/src-tauri/gen/apple/tauri-app_tvOS/App.swift new
+27
@@ -0,0 +1,27 @@
1 +import SwiftUI
2 +
3 +@main
4 +struct TauriTvOSApp: App {
5 + var body: some Scene {
6 + WindowGroup {
7 + ContentView()
8 + }
9 + }
10 +}
11 +
12 +struct ContentView: View {
13 + var body: some View {
14 + VStack(spacing: 24) {
15 + Image(systemName: "tv")
16 + .font(.system(size: 80))
17 + .foregroundColor(.accentColor)
18 + Text("tauri-app")
19 + .font(.headline)
20 + Text("tvOS target placeholder — no WebView available on this platform.")
21 + .font(.subheadline)
22 + .foregroundColor(.secondary)
23 + .multilineTextAlignment(.center)
24 + }
25 + .padding(48)
26 + }
27 +}
examples/tauri-app/src-tauri/gen/apple/tauri-app_tvOS/Info.plist new
+30
@@ -0,0 +1,30 @@
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>$(PRODUCT_NAME)</string>
15 + <key>CFBundlePackageType</key>
16 + <string>APPL</string>
17 + <key>CFBundleShortVersionString</key>
18 + <string>0.1.0</string>
19 + <key>CFBundleVersion</key>
20 + <string>0.1.0</string>
21 + <key>UIRequiredDeviceCapabilities</key>
22 + <array>
23 + <string>arm64</string>
24 + </array>
25 + <key>UIUserInterfaceStyle</key>
26 + <string>Automatic</string>
27 + <key>UIApplicationSupportsIndirectInputEvents</key>
28 + <true/>
29 +</dict>
30 +</plist>
examples/tauri-app/src-tauri/gen/apple/tauri-app_visionOS/App.swift new
+35
@@ -0,0 +1,35 @@
1 +//
2 +// App.swift
3 +// tauri-app
4 +//
5 +// Created by Seto Elkahfi on 2026-03-06.
6 +// Copyright © 2026 Onde Inference. All rights reserved.
7 +//
8 +
9 +import SwiftUI
10 +
11 +@main
12 +struct TauriVisionOSApp: App {
13 + var body: some Scene {
14 + WindowGroup {
15 + ContentView()
16 + }
17 + }
18 +}
19 +
20 +struct ContentView: View {
21 + var body: some View {
22 + VStack(spacing: 24) {
23 + Image(systemName: "visionpro")
24 + .font(.system(size: 80))
25 + .foregroundColor(.accentColor)
26 + Text("tauri-app")
27 + .font(.headline)
28 + Text("visionOS target placeholder — native UI only.")
29 + .font(.subheadline)
30 + .foregroundColor(.secondary)
31 + .multilineTextAlignment(.center)
32 + }
33 + .padding(48)
34 + }
35 +}
examples/tauri-app/src-tauri/gen/apple/tauri-app_visionOS/Info.plist new
+35
@@ -0,0 +1,35 @@
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>$(PRODUCT_NAME)</string>
15 + <key>CFBundlePackageType</key>
16 + <string>APPL</string>
17 + <key>CFBundleShortVersionString</key>
18 + <string>0.1.0</string>
19 + <key>CFBundleVersion</key>
20 + <string>0.1.0</string>
21 + <key>UIRequiredDeviceCapabilities</key>
22 + <array>
23 + <string>arm64</string>
24 + </array>
25 + <key>UIApplicationSceneManifest</key>
26 + <dict>
27 + <key>UIApplicationSupportsMultipleScenes</key>
28 + <true/>
29 + <key>UISceneConfigurations</key>
30 + <dict/>
31 + </dict>
32 + <key>UIApplicationSupportsIndirectInputEvents</key>
33 + <true/>
34 +</dict>
35 +</plist>
examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/App.swift new
+37
@@ -0,0 +1,37 @@
1 +//
2 +// App.swift
3 +// tauri-app
4 +//
5 +// Created by Seto Elkahfi on 2026-03-06.
6 +// Copyright © 2026 Onde Inference. All rights reserved.
7 +//
8 +
9 +import SwiftUI
10 +
11 +@main
12 +struct TauriWatchOSApp: App {
13 + var body: some Scene {
14 + WindowGroup {
15 + ContentView()
16 + }
17 + }
18 +}
19 +
20 +struct ContentView: View {
21 + var body: some View {
22 + ScrollView {
23 + VStack(spacing: 16) {
24 + Image(systemName: "applewatch")
25 + .font(.system(size: 40))
26 + .foregroundColor(.accentColor)
27 + Text("tauri-app")
28 + .font(.headline)
29 + Text("watchOS target — native UI only.")
30 + .font(.caption)
31 + .foregroundColor(.secondary)
32 + .multilineTextAlignment(.center)
33 + }
34 + .padding()
35 + }
36 + }
37 +}
examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024x1024.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/Assets.xcassets/AppIcon.appiconset/AppIcon-1024x1024.png differ
examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/Assets.xcassets/AppIcon.appiconset/Contents.json new
+14
@@ -0,0 +1,14 @@
1 +{
2 + "images" : [
3 + {
4 + "filename" : "AppIcon-1024x1024.png",
5 + "idiom" : "universal",
6 + "platform" : "watchOS",
7 + "size" : "1024x1024"
8 + }
9 + ],
10 + "info" : {
11 + "author" : "xcode",
12 + "version" : 1
13 + }
14 +}
examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/Assets.xcassets/Contents.json new
+6
@@ -0,0 +1,6 @@
1 +{
2 + "info" : {
3 + "version" : 1,
4 + "author" : "xcode"
5 + }
6 +}
examples/tauri-app/src-tauri/gen/apple/tauri-app_watchOS/Info.plist new
+30
@@ -0,0 +1,30 @@
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>$(PRODUCT_NAME)</string>
15 + <key>CFBundlePackageType</key>
16 + <string>APPL</string>
17 + <key>CFBundleShortVersionString</key>
18 + <string>0.1.0</string>
19 + <key>CFBundleVersion</key>
20 + <string>0.1.0</string>
21 + <key>WKApplication</key>
22 + <true/>
23 + <key>WKCompanionAppBundleIdentifier</key>
24 + <string>com.tauri.dev</string>
25 + <key>UISupportedInterfaceOrientations</key>
26 + <array>
27 + <string>UIInterfaceOrientationPortrait</string>
28 + </array>
29 +</dict>
30 +</plist>