build shared offline app experience

This commit is contained in:
pj committed 2026-09-09 23:45:39 +05:30
1 parent e21a2f39e0
commit c7259ea645
45 files changed
+4584 -40

No files matched your search

+38
View File
@@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
09FED4B446BD58DF150C455A /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = C6D2DD7FE2E0BF5DB2A96B4B /* PrivacyInfo.xcprivacy */; };
307C2654CD5972A25FB7FD87 /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 668CECA83ACC03A83C85A623 /* iOSApp.swift */; };
8799EE5CA40A935F0C1BF0B6 /* ComposeApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE64B79D6154E4181215B83C /* ComposeApp.framework */; };
/* End PBXBuildFile section */
@@ -15,6 +16,7 @@
668CECA83ACC03A83C85A623 /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = "<group>"; };
86038AE1032E284E79B32AD6 /* iosApp.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = iosApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
C117AD187833E2513BD2F553 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
C6D2DD7FE2E0BF5DB2A96B4B /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
CE64B79D6154E4181215B83C /* ComposeApp.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ComposeApp.framework; path = ../composeApp/build/bin/iosSimulatorArm64/debugFramework/ComposeApp.framework; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -35,6 +37,7 @@
children = (
C117AD187833E2513BD2F553 /* Info.plist */,
668CECA83ACC03A83C85A623 /* iOSApp.swift */,
C6D2DD7FE2E0BF5DB2A96B4B /* PrivacyInfo.xcprivacy */,
);
path = iosApp;
sourceTree = "<group>";
@@ -71,7 +74,9 @@
isa = PBXNativeTarget;
buildConfigurationList = 29DCA9F0B3A40325067EB163 /* Build configuration list for PBXNativeTarget "iosApp" */;
buildPhases = (
63B596C0F42DA54670428EA8 /* Sync Compose resources */,
297B59D9CE634556D6007C40 /* Sources */,
1623B02D10928C8101C1F806 /* Resources */,
EF8A6E9BFD470986D9D5C9B5 /* Frameworks */,
);
buildRules = (
@@ -115,6 +120,39 @@
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
1623B02D10928C8101C1F806 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
09FED4B446BD58DF150C455A /* PrivacyInfo.xcprivacy in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
63B596C0F42DA54670428EA8 /* Sync Compose resources */ = {
isa = PBXShellScriptBuildPhase;
alwaysOutOfDate = 1;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
name = "Sync Compose resources";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "cd \"$SRCROOT/..\"\n./gradlew :composeApp:syncComposeResourcesForIos\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
297B59D9CE634556D6007C40 /* Sources */ = {
isa = PBXSourcesBuildPhase;
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyCollectedDataTypes</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array/>
</dict>
</plist>
+9
View File
@@ -3,11 +3,20 @@ import SwiftUI
@main
struct BertAtlasApp: App {
@Environment(\.scenePhase) private var scenePhase
var body: some Scene {
WindowGroup {
ComposeView()
.ignoresSafeArea(.keyboard)
}
.onChange(of: scenePhase) { phase in
if phase == .active {
MainViewControllerKt.resumeApp()
} else {
MainViewControllerKt.pauseApp()
}
}
}
}
+6
View File
@@ -12,6 +12,12 @@ targets:
dependencies:
- framework: ../composeApp/build/bin/iosSimulatorArm64/debugFramework/ComposeApp.framework
embed: false
preBuildScripts:
- name: Sync Compose resources
script: |
cd "$SRCROOT/.."
./gradlew :composeApp:syncComposeResourcesForIos
basedOnDependencyAnalysis: false
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: app.bertsatlas