hello! How do you share the iOS CocoaPods Pods? I ...
# multiplatform
d
hello! How do you share the iOS CocoaPods Pods? I use Artifactory for Android/Java (with maven-publish), so it would be convenient to upload them there as well. I am using cocoapods plugin saw about CocoaPods repositories and cocoapods-art but I cannot find if the setup would require to publish then separate or together for a multiplatform library.
it turns out that it's better to publish to two repositories with two different commands. Sharing code towards Kotlin build is supported but publishing to other build systems is challenging and can lead to problems (e.g. different versions might have runtimes incompatibilities, including GC) so it's only safe to do in a constrained environment. Thanks @Konstantin Tskhovrebov for your help!
👍 1
k
We’re doing a mix with something we’ve been working on for a bit. Essentially publishing a compiled build for dev, so iOS devs can update and run
pod install
to get the latest, but avoid building locally. That supports also being able to debug Kotlin locally in Xcode. Actually publishing for Cocoapods, we’ve been pushing the XCFramework zip to S3 and using
pod repo push
with private repos. Probably what
podPublish
does, but need to look at it.
👍 2
d
I am not familiar with S3, but isn't it more suitable to use Artifactory over a generic storage?
if it works fine, I can check it as an option as well
k
Depends what you need I guess. So far it’s been S3, but it would be kind of client driven, so if we had a client that wanted Artifactory (or anything else) over S3, we’d push it there.
âś… 1
d
ok, I will check it out too. Thanks for sharing!
d
@diego-gomez-olvera You should be able to push to artifactory without a problem. Here are the jfrog docs… https://www.jfrog.com/confluence/display/JFROG/CocoaPods+Repositories
l
I went @kpgalligan’s route as well, having a compiled kotlin (.klib + resources) code so that the ios app can fetch by running
pod install
. It seemed that was the best I could do without any cocoapod publishing structure
But looking at what @David Nedrow said about jfrogs I'm definitelly interested as well.
k
I’ll have to read it, but I don’t understand why on the artifactory. Private podspec repos seem to still need git, and the binary zip needs a url. I would imagine github access controls would be sufficient. Again, though, need to read it.
I guess restated, I’ve only seen internal publishing use private github and a bucket to post the file. Our sample size is not huge, though, so Artifactory for cocoapods may be more common in some orgs.
We are currently doing something “weird” which is building a binary XCFramework zip if the Kotlin code changed, on CI, and pushing that to S3. On each PR merge. Not publishing it like a new version. It gets downloaded and run (basically) like a locally built framework, and you can still debug it, but the iOS dev doesn’t need to install/configure/run Kotlin tools unless they’re editing Kotlin. Some teams wanted to introduce Kotlin without adding a whole bunch of steps the iOS team might object to. Trying it out, anyway. We’re also publishing versioned pods to private repos, but again, not sure what the artifactory is doing in the middle, except hosting the zip?
d
Initially I will try Artifactory because it is what is used for general artefacts like Android/JVM, so I can keep a single configuration/authentication for CI to upload them