Hello, we are trying to use remote cache for XCFra...
# multiplatform
m
Hello, we are trying to use remote cache for XCFrameworks. From the gradle build scans we notice that
linkLibNameDebugFrameworkIosSimulatorArm64
(similar for other ios targets) is not cacheable out of the box. What is the reason behind it? Thanks!
a
Hi, frameworks heavily rely on symlinks and gradle builld cache doesn’t work well with them: https://github.com/gradle/gradle/issues/3525
m
Thanks a lot! Considering that we want to optimize the building time in the case in which there are no source changes between two builds in two different dev machines, do you advice to create a task that caches the xcframework as a whole?
a
What do you mean by “as a whole”? XCFramework is basically a directory that has some symlinks inside
m
maybe I’m lacking the knowledge 🙂 , what would you suggest to improve build times when currently the only thing taking this time is the linking phase? is there any workaround for this symlink issue as the one suggested in the issue for npm? Our idea was create a gradle task with: • input 1: md5 of the zipped multiplatform sources • input 2: target • output: xcframework and cache it (similar to publishing a prebuilt xcframework to an artifact manager)
a
for build speed improvement , try checking this (remote build is mentioned ) https://kotlinlang.org/docs/native-improving-compilation-time.html • Increase the Gradle heap size • Add gradle parallel and cache for me this speed up the build