Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 12 additions & 10 deletions MultipazCodelab/Holder/iosApp/iosApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -298,11 +298,11 @@
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
DEVELOPMENT_TEAM = 4G3ATA5MLV;
ENABLE_PREVIEWS = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
"$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
"$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_NSFaceIDUsageDescription = "This app uses FaceID to unlock key material";
Expand All @@ -311,6 +311,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand All @@ -337,11 +338,11 @@
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
DEVELOPMENT_TEAM = 4G3ATA5MLV;
ENABLE_PREVIEWS = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
"$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
"$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = iosApp/Info.plist;
INFOPLIST_KEY_NSFaceIDUsageDescription = "This app uses FaceID to unlock key material";
Expand All @@ -350,6 +351,7 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down
20 changes: 20 additions & 0 deletions MultipazGettingStartedSample/Podfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
project 'iosApp/iosApp.xcodeproj'

platform :ios, '16.0'

target 'iosApp' do
use_frameworks!
pod 'composeApp', :path => 'composeApp'
pod 'GoogleMLKit/BarcodeScanning', '8.0.0'
pod 'GoogleMLKit/FaceDetection', '8.0.0'
pod 'TensorFlowLiteObjC', :subspecs => ['CoreML', 'Metal']

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
end
end

137 changes: 137 additions & 0 deletions MultipazGettingStartedSample/Podfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
PODS:
- composeApp (1.0):
- GoogleMLKit/BarcodeScanning
- GoogleMLKit/FaceDetection
- GoogleMLKit/Vision
- TensorFlowLiteSwift
- GoogleDataTransport (10.1.0):
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
- GoogleMLKit/BarcodeScanning (8.0.0):
- GoogleMLKit/MLKitCore
- MLKitBarcodeScanning (~> 7.0.0)
- GoogleMLKit/FaceDetection (8.0.0):
- GoogleMLKit/MLKitCore
- MLKitFaceDetection (~> 7.0.0)
- GoogleMLKit/MLKitCore (8.0.0):
- MLKitCommon (~> 13.0.0)
- GoogleMLKit/Vision (8.0.0):
- GoogleMLKit/MLKitCore
- MLKitVision (~> 9.0.0)
- GoogleToolboxForMac/Defines (4.2.1)
- GoogleToolboxForMac/Logger (4.2.1):
- GoogleToolboxForMac/Defines (= 4.2.1)
- "GoogleToolboxForMac/NSData+zlib (4.2.1)":
- GoogleToolboxForMac/Defines (= 4.2.1)
- GoogleUtilities/Environment (8.1.0):
- GoogleUtilities/Privacy
- GoogleUtilities/Logger (8.1.0):
- GoogleUtilities/Environment
- GoogleUtilities/Privacy
- GoogleUtilities/Privacy (8.1.0)
- GoogleUtilities/UserDefaults (8.1.0):
- GoogleUtilities/Logger
- GoogleUtilities/Privacy
- GTMSessionFetcher/Core (3.5.0)
- MLImage (1.0.0-beta7)
- MLKitBarcodeScanning (7.0.0):
- MLKitCommon (~> 13.0)
- MLKitVision (~> 9.0)
- MLKitCommon (13.0.0):
- GoogleDataTransport (~> 10.0)
- GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1)
- "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)"
- GoogleUtilities/Logger (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- GTMSessionFetcher/Core (< 4.0, >= 3.3.2)
- MLKitFaceDetection (7.0.0):
- MLKitCommon (~> 13.0)
- MLKitVision (~> 9.0)
- MLKitVision (9.0.0):
- GoogleToolboxForMac/Logger (< 5.0, >= 4.2.1)
- "GoogleToolboxForMac/NSData+zlib (< 5.0, >= 4.2.1)"
- GTMSessionFetcher/Core (< 4.0, >= 3.3.2)
- MLImage (= 1.0.0-beta7)
- MLKitCommon (~> 13.0)
- nanopb (3.30910.0):
- nanopb/decode (= 3.30910.0)
- nanopb/encode (= 3.30910.0)
- nanopb/decode (3.30910.0)
- nanopb/encode (3.30910.0)
- PromisesObjC (2.4.0)
- TensorFlowLiteC (2.17.0):
- TensorFlowLiteC/Core (= 2.17.0)
- TensorFlowLiteC/Core (2.17.0)
- TensorFlowLiteC/CoreML (2.17.0):
- TensorFlowLiteC/Core
- TensorFlowLiteC/Metal (2.17.0):
- TensorFlowLiteC/Core
- TensorFlowLiteObjC/Core (2.17.0):
- TensorFlowLiteC (= 2.17.0)
- TensorFlowLiteObjC/Privacy (= 2.17.0)
- TensorFlowLiteObjC/CoreML (2.17.0):
- TensorFlowLiteC/CoreML (= 2.17.0)
- TensorFlowLiteObjC/Core (= 2.17.0)
- TensorFlowLiteObjC/Privacy (= 2.17.0)
- TensorFlowLiteObjC/Metal (2.17.0):
- TensorFlowLiteC/Metal (= 2.17.0)
- TensorFlowLiteObjC/Core (= 2.17.0)
- TensorFlowLiteObjC/Privacy (= 2.17.0)
- TensorFlowLiteObjC/Privacy (2.17.0)
- TensorFlowLiteSwift (2.17.0):
- TensorFlowLiteSwift/Core (= 2.17.0)
- TensorFlowLiteSwift/Core (2.17.0):
- TensorFlowLiteC (= 2.17.0)
- TensorFlowLiteSwift/Privacy (= 2.17.0)
- TensorFlowLiteSwift/Privacy (2.17.0)

DEPENDENCIES:
- composeApp (from `composeApp`)
- GoogleMLKit/BarcodeScanning (= 8.0.0)
- GoogleMLKit/FaceDetection (= 8.0.0)
- TensorFlowLiteObjC/CoreML
- TensorFlowLiteObjC/Metal

SPEC REPOS:
trunk:
- GoogleDataTransport
- GoogleMLKit
- GoogleToolboxForMac
- GoogleUtilities
- GTMSessionFetcher
- MLImage
- MLKitBarcodeScanning
- MLKitCommon
- MLKitFaceDetection
- MLKitVision
- nanopb
- PromisesObjC
- TensorFlowLiteC
- TensorFlowLiteObjC
- TensorFlowLiteSwift

EXTERNAL SOURCES:
composeApp:
:path: composeApp

SPEC CHECKSUMS:
composeApp: b7e9039a0bdb255a9eef8dc2000287a6dfa8e84e
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleMLKit: ddd51d7dff36ff28defa69afedd9cdce684fd857
GoogleToolboxForMac: d1a2cbf009c453f4d6ded37c105e2f67a32206d8
GoogleUtilities: 00c88b9a86066ef77f0da2fab05f65d7768ed8e1
GTMSessionFetcher: 5aea5ba6bd522a239e236100971f10cb71b96ab6
MLImage: 2ab9c968e75f57911c16f4c9d9e8a8e9604a86a1
MLKitBarcodeScanning: 72c6437f13a900833b400136be53a8a5d86f42fa
MLKitCommon: 26b779f072a182c1603d4c88a101c350cac837b1
MLKitFaceDetection: d50aff1a44aa9a4e95f7e208298a3ce40b68f9f8
MLKitVision: fa8dea9012ac59497c79ddbe9ebf32051047ac4c
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
TensorFlowLiteC: eac6d689a8d391d1b202dc59e3d9165ba64aaf73
TensorFlowLiteObjC: 72e1fa903465cd6a8d3d614c1474c5aad7635bb7
TensorFlowLiteSwift: 723fe42222815e72490c79feeff05305530de393

PODFILE CHECKSUM: 5c4eaf6900655dd723bf82112deaf7713a85d353

COCOAPODS: 1.16.2
46 changes: 45 additions & 1 deletion MultipazGettingStartedSample/composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.gradle.api.tasks.Copy

plugins {
alias(libs.plugins.kotlinMultiplatform)
Expand All @@ -26,7 +28,9 @@ kotlin {
isStatic = true
}
}

// Create unified iOS source set hierarchy so 'iosMain' exists
applyDefaultHierarchyTemplate()

sourceSets {

androidMain.dependencies {
Expand Down Expand Up @@ -60,6 +64,8 @@ kotlin {
}
iosMain.dependencies {
implementation(libs.ktor.client.darwin)
implementation(libs.androidx.sqlite)
implementation(libs.androidx.sqlite.framework)
}
commonTest.dependencies {
implementation(libs.kotlin.test)
Expand Down Expand Up @@ -98,3 +104,41 @@ dependencies {
debugImplementation(compose.uiTooling)
}

// Task to copy framework to CocoaPods expected location
tasks.register<Copy>("prepareCocoaPodsFramework") {
description = "Prepares the framework for CocoaPods by copying it to the expected location"
group = "cocoapods"

// Depend on all iOS framework linking tasks
dependsOn(
"linkDebugFrameworkIosArm64",
"linkDebugFrameworkIosSimulatorArm64",
"linkDebugFrameworkIosX64"
)

val frameworkDir = layout.buildDirectory.dir("cocoapods/framework")
val sourceFrameworkDir = layout.buildDirectory.dir("bin/iosArm64/debugFramework")

// Copy the framework directory itself, preserving the directory structure
from(sourceFrameworkDir) {
include("ComposeApp.framework/**")
}
into(frameworkDir)

doLast {
println("✓ Framework copied to ${frameworkDir.get().asFile.absolutePath}/ComposeApp.framework")
}
}

// Make the prepareCocoaPodsFramework task run automatically after framework linking
tasks.named("linkDebugFrameworkIosArm64") {
finalizedBy("prepareCocoaPodsFramework")
}

// Alias task for compatibility with podspec error message
tasks.register("generateDummyFramework") {
description = "Generates dummy framework for CocoaPods (alias for prepareCocoaPodsFramework)"
group = "cocoapods"
dependsOn("prepareCocoaPodsFramework")
}

Loading