Mario
07/08/2025, 8:09 AMAVCaptureVideoDataOutputSampleBufferDelegateProtocol because both its method definitions are the same, just with different names:
public expect interface AVCaptureVideoDataOutputSampleBufferDelegateProtocol : platform.darwin.NSObjectProtocol {
@kotlin.commonizer.ObjCCallable @kotlinx.cinterop.ObjCMethod public open expect fun captureOutput(output: platform.AVFoundation.AVCaptureOutput, didOutputSampleBuffer: kotlinx.cinterop.CPointer<cnames.structs.opaqueCMSampleBuffer>? /* from: platform.CoreMedia.CMSampleBufferRef? */, fromConnection: platform.AVFoundation.AVCaptureConnection): kotlin.Unit { /* compiled code */ }
@kotlin.commonizer.ObjCCallable @kotlinx.cinterop.ObjCMethod public open expect fun captureOutput(output: platform.AVFoundation.AVCaptureOutput, didDropSampleBuffer: kotlinx.cinterop.CPointer<cnames.structs.opaqueCMSampleBuffer>? /* from: platform.CoreMedia.CMSampleBufferRef? */, fromConnection: platform.AVFoundation.AVCaptureConnection): kotlin.Unit { /* compiled code */ }
}
When I try to implement it, I get the following error:
object : NSObject(), AVCaptureVideoDataOutputSampleBufferDelegateProtocol {
override fun captureOutput(
output: AVCaptureOutput,
didOutputSampleBuffer: CMSampleBufferRef?,
fromConnection: AVCaptureConnection
) {
super.captureOutput(output, didOutputSampleBuffer, fromConnection)
}
}
The corresponding parameter in the supertype 'AVCaptureVideoDataOutputSampleBufferDelegateProtocol' is named 'didDropSampleBuffer'. This may cause problems when calling this function with named arguments.Anmol Verma
07/17/2025, 5:21 PMGNKumar
07/22/2025, 4:11 AMKashismails
07/29/2025, 8:52 AMxxfast
08/06/2025, 1:19 AMExecution failed for task ':connect:compileKotlinIosArm64'.
> Error while evaluating property 'kotlinNativeProvider$kotlin_gradle_plugin_common.kotlinNativeBundleVersion$kotlin_gradle_plugin_common' of task ':connect:compileKotlinIosArm64'.
Showing All Messages
> java.nio.file.FileAlreadyExistsException: /Users/User/.konan/kotlin-native-prebuilt-macos-x86_64-2.2.0/tools/konan_lldb.pyFernando
08/11/2025, 6:18 PMiosApp into an apps directory. I was able to move everything else but the iOS project, for some reason, it won't work. I've tried moving it with the Terminal, but it will not allow me to run the iOS project from the IDE (trough the Kotlin Multiplatform Project)
Does anybody knows how can I move it while being able to run it from the IDE?Excellence kawej
08/13/2025, 10:48 AMExcellence kawej
08/13/2025, 10:55 AM/Users/ctrltech/StudioProjects/Tmaterials/iosApp/iosApp/FirebaseBridge.swift:37:69 Trailing closure passed to parameter of type 'String' that does not accept a closure
Here is my implementation:
import Foundation
import FirebaseCore
import Firebase
import FirebaseAuth
import GoogleSignInSwift
import GoogleSignIn
@objc class FirebaseBridge: NSObject {
@objc static func configureFirebase() {
if <http://FirebaseApp.app|FirebaseApp.app>() == nil {
FirebaseApp.configure()
}
}
@objc static func isUserSignedIn() -> Bool {
return Auth.auth().currentUser != nil
}
@objc static func signOut() {
try? Auth.auth().signOut()
}
@objc static func signInWithGoogle(presenting: UIViewController, completion: @escaping (FirebaseUserWrapper?, Error?) -> Void) {
guard let clientID = <http://FirebaseApp.app|FirebaseApp.app>()?.options.clientID else {
completion(nil, NSError(domain: "NoClientID", code: 0))
return
}
let config = GIDConfiguration(clientID: clientID)
GIDSignIn.sharedInstance.signIn(withPresenting: presenting) { result in //error happens here
switch result {
case .success(let signInResult):
let user = result.user
guard let idToken = user.idToken?.tokenString else {
completion(nil, NSError(domain: "MissingIdToken", code: 1))
return
}
let accessToken = user.accessToken.tokenString
guard let idToken = idToken else {
completion(nil, NSError(domain: "MissingIdToken", code: 1))
return
}
let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: accessToken)
Auth.auth().signIn(with: credential) { authResult, error in
if let error = error {
completion(nil, NSError(domain: error.localizedDescription, code: 1))
} else if let firebaseUser = authResult?.user {
completion(FirebaseUserWrapper(user: firebaseUser), nil)
} else {
completion(authResult?.user.uid, nil)
}
}
case .failure(let error):
if let error = error {
completion(nil, error)
return
}
guard let result = result else {
completion(nil, NSError(domain: "GoogleSignInError", code: 1))
return
}
}
}
}
}
@objc class FirebaseUserWrapper: NSObject {
let uid: String
let email: String?
let displayName: String?
init(user: User) {
self.uid = user.uid
self.email = user.email
self.displayName = user.displayName
}
}Mirzamehdi
08/28/2025, 5:38 PMMirzamehdi
08/31/2025, 3:46 PMVadim Briliantov
09/01/2025, 11:03 AMiOS support now!
The most advanced JVM framework for building AI agents is now also the first AI framework in the world that brings full-scale agentic flows to backend, browser, WebAssembly, Android — and iOS 🔥Alexis
09/02/2025, 12:54 PMExited with status code 127 , and when looking at the report's details, I see this: /var/folders/ms/rzc7s4cj287gp9gvj1cs_ng00000gn/T/SchemeScriptAction-bjyy1r.sh: line 3: ./gradlew: No such file or directory .
My folder structure is the following:
• my_app_kmp
◦ shared (kmp modules)
◦ umbrella (umbrella module for ios)
◦ androidApp
◦ iosApp
▪︎ App
▪︎ Packages
• feature_package
Here's the script I've put in Edit Scheme > Build > Pre-Actions > New Run Script Action *cd* ..
./gradlew :umbrella:embedAndSignAppleFrameworkForXcode
My umbrella's module build.gradle.kts contains this:
kotlin {
...
val xcfName = "Shared"
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach { target ->
target.binaries.framework {
export(projects.shared.data)
export(projects.shared.di)
export(projects.shared.domain)
export(projects.shared.presentation)
baseName = xcfName
isStatic = true
}
}
...
}
And when trying to build from Android Studio I simply get this error: Build failed with 0 errors and 1 warning in 196 ms
Anyone has an idea what I might be missing?
EDIT: Looks like $SRCROOT is not available in pre actions, so I had to use something like that: *cd* "$(dirname "$PROJECT_FILE_PATH")/.."darkmoon_uk
09/09/2025, 7:38 AMEdgars Malahovskis
09/17/2025, 6:54 AMThierry Kh
09/18/2025, 1:47 PMval settingsUrl = NSURL.URLWithString(UIApplicationOpenSettingsURLString)
settingsUrl?.let {
UIApplication.sharedApplication.openURL(it, emptyMap<Any?, Any?>(), null)
}MarkRS
09/19/2025, 2:24 PMPearce Keesling
09/19/2025, 3:13 PMColton Idle
09/26/2025, 3:33 PMThierry Kh
09/26/2025, 5:25 PMxxfast
09/29/2025, 1:23 AMFailed to build module; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 6.1 effective-5.10 (swiftlang-6.1.0.110.21 clang-1700.0.13.3)', while this compiler is 'Apple Swift version 6.1.2 effective-5.10 (swiftlang-6.1.2.1.2 clang-1700.0.13.5)'). Please select a toolchain which matches the SDK.Mateus Bauer
10/02/2025, 1:03 AMFernando
10/08/2025, 9:19 AMplatform package, and how does it gets autogenerated? 🤔
I wanted to do some experiments to use the new FoundationModels directly from Kotlin, but I don't seem to have access to that package. Does it auto generate, do I need to wait for a new kotlin release that comes with that interop?
I'm using kotlin 2.3.0-Beta1 (just for test)Alex Styl
10/13/2025, 12:47 PMColton Idle
10/15/2025, 2:45 PMGrigory Panko
10/21/2025, 4:30 PMUnicodeScalarView type, which I can't figure out how to use in Kotlin. Perhaps this type simply doesn't exist in the native Kotlin/iOS API, or am I doing something wrong? The code I'm trying to port is in 🧵and-out
10/24/2025, 1:45 PMvtool, I get the following output:
vtool -show-build shared/build/xcode-frameworks/Debug/iphoneos18.5/shared.framework/shared
Load command 10
cmd LC_BUILD_VERSION
cmdsize 40
platform IOS
minos 14.0
sdk 14.0
ntools 2
tool LD
version 954.16
tool LD
version 955.13
→ As you can see, both minos and sdk are set to 14.0.
However, in the corresponding Info.plist, the MinimumOSVersion is 13.0.
This mismatch between the framework and the Info.plist causes Apple to reject the build with the following error:
90208: Invalid Bundle. The bundle <http://iosApp.app/Frameworks/shared.framework|iosApp.app/Frameworks/shared.framework> does not support the minimum OS Version specified in the Info.plist.
Without including the JWT library, I get this instead:
vtool -show-build shared/build/xcode-frameworks/Debug/iphoneos18.5/shared.framework/shared
Load command 9
cmd LC_BUILD_VERSION
cmdsize 40
platform IOS
minos 13.0
sdk 18.0
ntools 2
tool LD
version 954.16
tool LD
version 955.13
→ Here, minos is 13.0, matching the Info.plist, and the build is accepted by Apple.
My questions are
- Why is the minos value out of sync with the Info.plist?
- Who (or what) determines which minos and sdk are used when building the framework?
I also read the info.plist customizing section in the [documentation](https://www.jetbrains.com/help/kotlin-multiplatform-dev/multiplatform-build-native-binaries.html#customize-the-info-plist-file) and my question here is, why i cant override the MinimumOSVersion there?
On a sidenote, when i try to override the info.plist MinimumOSVersion with
freeCompilerArgs += listOf("-Xoverride-konan-properties=osVersionMin.ios_simulator_arm64=15.6;osVersionMin.ios_arm64=15.6;osVersionMin.ios_x64=15.6")
I run into linker issues with CrashKiOS (https://github.com/touchlab/CrashKiOS). Without CrashKiOS, the info.plist is updated as expected. But the shared.framework is nevertheless build with minos 14 and sdk 14.
I use kotlin 2.2.10,
my gradle looks like this
kotlin {
jvmToolchain(BuildConstants.JAVA_VERSION)
androidLibrary {
namespace = "${BuildConstants.APP_NAMESPACE}.shared"
compileSdk = BuildConstants.SDK_COMPILE_VERSION
minSdk = BuildConstants.SDK_MIN_VERSION
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64(),
).forEach { iosTarget ->
iosTarget.binaries.framework {
baseName = "shared"
// for each exported library, add an `api` dependency in commonMain
export(projects.sharedLibs.core)
export(projects.sharedLibs.domain)
export(projects.sharedLibs.data)
export(projects.sharedLibs.resources)
linkerOpts("-ld_classic", "-lsqlite3")
}
}
sourceSets {
commonMain.dependencies {
// see ios framework export above
api(projects.sharedLibs.core)
api(projects.sharedLibs.data)
api(projects.sharedLibs.domain)
api(projects.sharedLibs.resources)
implementation(kotlinLibs.skie)
implementation(projects.sharedLibs.ui)
}
}
}Yu-Hsuan Lin
10/26/2025, 11:10 PMRafael Costa
10/28/2025, 10:47 AMsubscribe(listener: SomeListenerType) .
Apparently, when called from iOS, only one of these parameters gets to be called "listener", the others are adding _ suffixes.
I don't understand why having the same name would be an issue? Or if it isn't how can I keep "listener"? I tried ObjcName but it doesn't work, it still adds the underscore suffixes.Gabriel Messias De Moura Ilha
10/28/2025, 4:45 PMdyld[56606]: Symbol not found: __ZNSt3__117bad_function_callD1Ev
Referenced from: /Users/silvatf1/Library/Developer/CoreSimulator/Devices/E3823A73-6312-44D2-BB5E-8423F234210E/data/Containers/Bundle/Application/873EB1C5-B653-46DF-B9EF-12487CD9203F/Digital-UAT.app/Frameworks/DigitalKMP.framework/DigitalKMP
Expected in: /Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 15.2.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libc++.1.dylib
From what I've researched, this error is caused by the C++ code generated, it's generating a symbol that doesn't exist in these older versions of iOS. Has anyone else had a similar problem?
cocoapods {
version = libVersion
summary = "Some description for a Kotlin/Native module"
homepage = "Link to a Kotlin/Native module homepage"
ios.deploymentTarget = "14.1"
name = frameworkName
podfile = project.file("../iosApp/Podfile")
publishDir = rootProject.file("./")
framework {
baseName = frameworkName
homepage = repositoryUrl
isStatic = false
source = "{ :git => '${repositoryUrl}.git', :tag => spec.version.to_s }"
binaryOptions["bundleId"] = bundleId
binaryOptions["bundleVersion"] = libVersion
freeCompilerArgs += listOf(
"-Xexport-kdoc",
"-Xexpect-actual-classes",
"-Xoverride-konan-properties=osVersionMin.ios_arm64=14.1",
"-Xoverride-konan-properties=osVersionMin.ios_x64=14.1",
"-Xoverride-konan-properties=osVersionMin.ios_simulator_arm64=14.1"
)
export(project(":networking-kmp"))
export(project(":suitability-kmp"))
}
}Ehab Al
10/31/2025, 10:30 AM