Closed fenglh closed 9 months ago
Hello, we have the same issue. We have a KMP project which builds an XCFramework with DSYMs. To build the XCFramework we first do a normal build, which generates arm64 and x64 .framework, then we use a task to generate the XCFramework:
tasks.register<Exec>("Make Release xcframework") {
group = "iOS frameworks"
// due to a bug of xcodebuild command, the dsym must be passed as an ABSOLUTE PATH, and not as relative path
// see https://developer.apple.com/forums/thread/655768?answerId=632625022#632625022
val dsymArm64 = File("build/bin/iosArm64/releaseFramework/IMC.framework.dSYM").absolutePath
val dsymX64 = File("build/bin/iosX64/releaseFramework/IMC.framework.dSYM").absolutePath
dependsOn("Delete release xcframework")
dependsOn("linkReleaseFrameworkIosArm64")
dependsOn("linkReleaseFrameworkIosX64")
executable("xcodebuild")
args(
"-create-xcframework",
"-framework",
"build/bin/iosArm64/releaseFramework/IMC.framework",
"-debug-symbols",
dsymArm64,
"-framework",
"build/bin/iosX64/releaseFramework/IMC.framework",
"-debug-symbols",
dsymX64,
"-output",
"build/xcode-frameworks/release/IMC.xcframework"
)
}
Then, via CI, we publish it on CocoaPods and upload DSYMs on Crashlytics. We integrate the cocoapod on our app (with no bitcode enabled), upload the app on AppDistribution and let it crash with a method called in KMP. Crashlytics shows no stacktrace, even though it doesn't say anything about missing DSYMs. We followed the CrashKiOS readme, but we still can't see crashes in release mode. We tried using a .framework instead of an XCFramework, but nothing. Is there something we might be missing?
Thanks.
@MovementSpeed Your framework should be static to get symbolicated crash reports: https://kotlinlang.org/docs/native-ios-symbolication.html#make-frameworks-static-when-using-rebuild-from-bitcode
@MovementSpeed Your framework should be static to get symbolicated crash reports: https://kotlinlang.org/docs/native-ios-symbolication.html#make-frameworks-static-when-using-rebuild-from-bitcode
He didn't enable bitcode, So there is no need to set framework to static I think
This is a general concern we're going to dig more into soon. We generally use static frameworks internally, so we don't run into problems much. We'll see if we can repro and provide instructions.
Most of our ongoing work in crash reporting is in Kermit, so that gets the bulk of the attention, but the problems are the same.
Closing an old issue. Feel free to re-create one with the latest version if the problem still exists.
In the release mode, the shared module has only 2 stack information, why ????
in debug mode, we can get complete stack frame info :