https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
multiplatform
  • a

    An Tran

    02/22/2022, 6:58 AM
    is anyway to use web speech api for web browser using kotlin guys? I want to have speech to text function
    b
    • 2
    • 5
  • m

    Marc Reichelt

    02/22/2022, 10:45 AM
    Hi there! Did anyone manage to import
    KotlinMultiplatformExtension
    into their
    buildSrc
    folder? I’m trying to write some logic to make it easier for multiple targets to configure ios targets + tests…
    ✅ 1
    g
    • 2
    • 14
  • m

    Marc Reichelt

    02/22/2022, 12:17 PM
    Another question: in our project, we want to have multiple KMM / Gradle modules, which then get bundled by one root Gradle project (which will build the JAR / Swift Package). So far, this is what I try to use:
    kotlin {
        jvm()
        ios()
        
        sourceSets {
            commonMain {
                dependencies {
                    api(project(":ModuleOne"))
                    api(project(":ModuleTwo"))
                }
            }
        }
        
        // ...
    }
    But: the generated lib only has 261 bytes, it only contains the
    META-INF/MANIFEST.MF
    and that’s it. No classes compiled. What should I be doing instead?
    e
    a
    • 3
    • 39
  • s

    Stylianos Gakis

    02/22/2022, 12:30 PM
    Anyone experienced the error:
    :shared:iosSimulatorArm64Test: java.lang.IllegalStateException: command '/usr/bin/xcrun' exited with errors (exit code: 86)
    when running
    ./gradlew shared:allTests
    ? And as a side-note running
    ./gradlew shared:check
    seems to run just fine, I would guess these should do the same-ish thing? Not sure what the difference is or why one may be failing like that and the other runs just fine 🤔
    m
    • 2
    • 1
  • p

    Prateek Sharma

    02/22/2022, 1:07 PM
    Anyone has experienced this error? Selected scheme "iosApp" does not support "iphonesimulator". I am using Android Studio BumbleBee, Gradle distribution 7.2 Gradle tooling 7.1.0 Openjdk 11.0.11 The build is successful while I run the app using "Continue anyway" button, but app doesn't get installed in simulator.
    p
    t
    • 3
    • 9
  • m

    Marco

    02/22/2022, 2:00 PM
    Hi everyone, did anyone have experience about how create a function like this that could work in the same way on swift?
    class GenericClass<T> {
        fun <A> clone(block: (GenericClass<T>) -> GenericClass<A>): GenericClass<A>{
            return block(this)
        }
    }
    Because currently the compiler generates this implementation that not fill my requirements because the return type is GenericClass<`AnyObject`> instead of be generic
    <A>
    public class GenericClass<T> : KotlinBase where T : AnyObject {
        public init()
    
        open func clone(block: @escaping (GenericClass<T>) -> GenericClass<AnyObject>) -> GenericClass<AnyObject>
    }
    Is this implementation wrong? There is a proper way to do that? Thank you!
    r
    • 2
    • 2
  • a

    Andrew O Hart

    02/22/2022, 3:08 PM
    Hey all could anybody help me with something, I have implemented SQLDelight into my KMM project. It builds fine on Android, however when I try run on iOS I get this issue: ld: symbol(s) not found for architecture x86_64 There is a lot of other stuff such as: "_sqlite3_step", referenced from: _co_touchlab_sqliter_sqlite3_sqlite3_step_wrapper97 in TestLib(result.o) (maybe you meant: _co_touchlab_sqliter_sqlite3_sqlite3_step_wrapper97, knifunptr_co_touchlab_sqliter_sqlite3101_sqlite3_step ) any ideas on what causes this?
    a
    • 2
    • 3
  • m

    Marc Dietrichstein

    02/22/2022, 5:06 PM
    Hello, I am having some problems with Gradle + Android Studio on Mac OSX. It looks like Android Studio does not mark most of the source folders of one of my submodules as source roots which breaks code-completion. You can see in the first screenshot that only
    androidMain/kotlin
    is marked as source folder. The strange thing is that this only occurs on Mac OSX. On Ubuntu everything works fine (second screenshot). The versions of Android Studio, Kotlin, Plugins etc are the same on both machines. The command line build also works on both machines. Does anyone here know how to fix this? I would also like to know why some source folders are marked with a blue square and others with three vertical bars. Does this have any deeper meaning?
    s
    • 2
    • 4
  • s

    Skolson5903

    02/22/2022, 7:41 PM
    Anyone have a project using Apple's Compression framework, or for that matter any Apple framework that isn't "platform.Foundation"? I'm specifically looking for how to add a dependency on an Apple framework so that an
    import platform.Compression
    statement can work, not a third-party cocoapod, so I can import it and use it in KMP code. I'm still searching around but so far not having much luck. Thanks in advance for any info...
    m
    • 2
    • 4
  • s

    Sunny

    02/23/2022, 9:07 AM
    [Resolved] Trying to get Js support in our app with sqldelight. Following the guide https://cashapp.github.io/sqldelight/js_sqlite/ Driver creation for jS from docs
    // in src/jsMain/kotlin
    actual suspend fun provideDbDriver(schema: SqlDriver.Schema): SqlDriver {
    return initSqlDriver(schema).await()
    }
    While replicating in our project running into. Anyone ran into something similar?
    Unresolved reference: initSqlDriver
    ✅ 1
    g
    • 2
    • 4
  • m

    Marco Righini

    02/23/2022, 1:20 PM
    Hello everyone, we are trying to run jvmTest based on Category
    tasks {
        named<Test>("jvmTest") {
            useJUnit {
                includeCategories("category_package_and_category_name")
            }
        }
    }
    but the filter is not taken into account and all the jvm tests are run.
    r
    • 2
    • 1
  • a

    Andrew O Hart

    02/23/2022, 3:31 PM
    Hey all, could somebody assist me with running my Multiplatform app on an actual iPad? It seems to run using the simulator, but I keep getting this: ld: framework not found Pods_iosApp clang: error: linker command failed with exit code 1 (use -v to see invocation) When I try to build in xcode
    k
    • 2
    • 76
  • t

    Travis Reitter

    02/23/2022, 5:18 PM
    Is there any way I can further debug this issue? All the static libraries I'm including via
    cinterops
    seem to be built with bitcode (well, marker) as well as my KMM library and the app works as a release build but if I try to create the archive in Xcode, I hit this error:
    ld: bitcode bundle could not be generated because '/Users/treitter/doublestrain/DoubleStrain/SharedCode/build/xcode-frameworks/Release/iphoneos15.2/SharedCode.framework/SharedCode' was built without full bitcode. All frameworks and dylibs for bitcode must be generated from Xcode Archive or Install build file '/Users/treitter/doublestrain/DoubleStrain/SharedCode/build/xcode-frameworks/Release/iphoneos15.2/SharedCode.framework/SharedCode' for architecture arm64
    I get the same error whether or not I include
    embedBitcode("bitcode")
    in my
    framework
    block. This is with Kotlin 1.6.10 on an M1 Mac. This is the only thing blocking me from my first KMM-based release so any help is greatly appreciated! 🙂
    ✅ 1
    w
    • 2
    • 6
  • m

    Matthias Geisler

    02/23/2022, 7:56 PM
    Hey lovely people - just a question - what are capabilities of a mocking lib in KMP you would expect/like to have?
    i
    n
    k
    • 4
    • 23
  • j

    JOSEPH FISHER

    02/23/2022, 10:02 PM
    Does the functionality of "launch" not work the same on JS clients as JVM clients? When I run the following code snippet in JS, "isActive" will never return false and thus the code in GlobalScope.launch is never run "first" or never as an asynchronous job. How are we suppose to write asynchronous code that will compile down for java and javascript?
    fun doLaunchOperation() {
            println("START: doLaunchOperation()")
            var i = 0;
            val launchJob = GlobalScope.launch {
                println("START: launch")
                while (i<100){
                    println(i)
                    i++
                }
                println("END: launch")
            }
    
            while(launchJob.isActive){
                println("launchJob.isActive")
            }
    
            println("done")
            println("END: doLaunchOperation()")
        }
    e
    • 2
    • 17
  • r

    Rohan Maity

    02/24/2022, 1:34 AM
    Hello, Earlier I was having one shared module in the project for sharing between iOS and Android But when I created another shared module. The iOS Header and Protocol files started to have ModuleName appended as Prefix to each class and protocol for iOS Does any one know what's the reasoning behind prefix and how to get rid of it?
    m
    a
    p
    • 4
    • 32
  • a

    Andrew O Hart

    02/24/2022, 3:29 PM
    Hey small question, I am looking at KampKit currently for examples of how to do the build.gradle file in a cleaner way. So far its working great, the only issue I'm having is with tests. I see in Kamp Kit they are making use of import kotlin.test.Test in testing classes, however, when I build, this test package is not found. I'm wondering what its geting included as from the libs file If I include
    implementation(kotlin("test"))
    In the commonTest in build.gradle, it works, but I don't see something like this being declared in kampkit
    m
    m
    • 3
    • 7
  • l

    Landry Norris

    02/24/2022, 4:36 PM
    I’m planning on starting a project soon that will require server, desktop, cli, and maybe mobile or web, and I’d like to make it entirely in Kotlin Multiplatform. The current plan is to make a monorepo, but I’m wondering if it would be better to set it up as separate projects inside of a folder or use several modules in one project, with a module for shared code, and a module for each platform. My primary concern is that I’ll need to be able to deploy each platform (desktop, server, mobile) separately once I get that far. What is the suggested setup for something like this?
    m
    e
    • 3
    • 25
  • t

    Travis Reitter

    02/24/2022, 4:56 PM
    Just published the first KMP-based releases of my Android and iOS apps after a many-month conversion from j2objc 🙂. Thanks to everyone who patiently helped me with some of the issues I hit in the process!
    💪 1
    :kotlin: 1
    🎉 1
    k
    • 2
    • 6
  • a

    Andrew O Hart

    02/24/2022, 5:42 PM
    Trying to get my iosTests working. When I run allTests, many tests fail, and these are all related to server stuff For example, we have this test:
    @Test
    fun testDownloadCompletedSuccessfully() {
        runBlocking {
            launch(Dispatchers.Main) {
                val result = retriever.fetchData()
                assertEquals(RemoteResultType.SUCCESS, result.type)
            }
        }
    }
    which does this:
    override suspend fun fetchData(): RemoteDataResult {
        val responseContent: String
        return try {
            responseContent = httpClient.get { url(hostURL + serviceURL) }.body()
            RemoteDataResult(responseContent, RemoteResultType.SUCCESS)
        } catch (e: ClientRequestException) {
            return RemoteDataResult(e.message, RemoteResultType.CLIENT_ERROR)
        } catch (e: ServerResponseException) {
            return RemoteDataResult(e.message, RemoteResultType.SERVER_ERROR)
        } catch (e: Exception) {
            return RemoteDataResult(e.message, RemoteResultType.GENERAL_ERROR)
        }
    }
    But it always returns as GENERAL_ERROR. I tried debugging and it says this: Exception in http request: Error Domain=NSURLErrorDomain Code=-1202 "The certificate for this server is invalid. You might be connecting to a server that is pretending to be “run.mocky.io” which could put your confidential information at risk." We do have some test endpoints on mocky to simulate stuff like 500 errors etc. How can I work around this?
    n
    • 2
    • 1
  • a

    Alen Kirm

    02/24/2022, 8:28 PM
    Hey. I have an interesting Kotlin-Swift related issue 😄 Let’s say you have an enum in Kotlin:
    enum class SomeEnum(val id: String) { VALUE1("value1"), VALUE2("value2") }
    which you can instantiate in your Kotlin code via
    valueOf
    method. How can I instantiate it in Swift code? Swift doesn’t see
    valueOf
    method. I’ve tried to add a compation object into an enum, to “fake”
    valueOf
    method but its not visible on Swift side either. I guess workaround is to pattern match on Swift side, and just return an instance of
    SomeEnum
    case:
    switch valueInstance {
        case "value1": return .value1
        case "value2": return .value2
    }
    Are there any other solutions ? 😄
    p
    • 2
    • 1
  • b

    brabo-hi

    02/24/2022, 11:42 PM
    hi all, i was wondering why
    room
    is not moving to kmm ?
    c
    j
    b
    • 4
    • 17
  • s

    Slackbot

    02/25/2022, 12:08 AM
    This message was deleted.
    l
    v
    • 3
    • 2
  • a

    ade

    02/25/2022, 9:27 AM
    I have a custom result-like class that has served me well in kotlin/android;
    sealed class Resolved<out T> {
        data class Success<out T>(val data: T) : Resolved<T>()
        data class Error(val exception: Exception) : Resolved<Nothing>()
    But in case of Error, how can I extract the exception on the iOS side? If Resolved.Error has a type parameter (Error<T>) i can do in swift:
    if
    *let* val = response *as*? ResolvedError { ...
    But when it doesnt and is typed as Resolved<Nothing> I cannot. Or at least I don't know how. Any tips?
    • 1
    • 1
  • a

    Andrew O Hart

    02/25/2022, 10:01 AM
    Running into issues with KTOR testing server requests, all on iOS only. For example: <Exception in http request: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={_kCFStreamErrorCodeKey=61, NSUnderlyingError=0x7f953310c290 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <13662024-E644-4814-A382-E43A0FEF94C2>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <13662024-E644-4814-A382-E43A0FEF94C2>.<1>" Any ideas on how to fix this? I also have a failing android test to do with failing to connect to the local host. Don't think it was an issue until I updated KTOR to use the new memory model. Anybody experienced anything similar?
    r
    • 2
    • 1
  • s

    Stylianos Gakis

    02/25/2022, 10:19 AM
    Is it not possible to get access to Swift's Result type inside iosMain? I'm still not 100% how this works where we have access to some of Swift's types inside there but maybe not all of them?
    j
    a
    • 3
    • 6
  • a

    Ahmet Özcan

    02/25/2022, 2:32 PM
    Hi everyone, Since i upgraded to Bumblebee and change gradle plugin version to 7.1.1 im not able to run common tests for ios. Im getting “Test events were not received”
    m
    • 2
    • 2
  • s

    shaktiman_droid

    02/25/2022, 7:32 PM
    New CVE mentioning Kotlin Multiplatform! CVE-2022-24329 In JetBrains Kotlin before 1.6.0, it was not possible to lock dependencies for Multiplatform Gradle Projects. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24329
    b
    • 2
    • 5
  • m

    mike.holler

    02/25/2022, 9:09 PM
    If I want a list of methods in a KClass on Kotlin JS, am I out of luck? It feels like I am but just checking.
    c
    b
    • 3
    • 3
  • r

    r

    02/25/2022, 10:49 PM
    Hello everyone! I've been banging my head for hours trying to make this work with no luck. I have a Kotlin (plugin v1.6.10) multiplatform shared (ios/android for the moment) library project with the following cocoapods config:
    cocoapods {
        framework {
            baseName = "MyAppSharedLib"
            //Dynamic framework support
            isStatic = false
        }
        summary = "Multiplatform shared functionality"
        homepage = "<https://myapp.com>"
        podfile = project.file("../../app/MyApp/Podfile")
        ios.deploymentTarget = "13.5"
        osx.deploymentTarget = "10.15"
        watchos.deploymentTarget = "6.2"
    
        // Maps custom Xcode configuration to NativeBuildType
        xcodeConfigurationToNativeBuildType["CUSTOM_DEBUG"] = NativeBuildType.DEBUG
        xcodeConfigurationToNativeBuildType["CUSTOM_RELEASE"] = NativeBuildType.RELEASE
    }
    I'm using a Macbook Pro MX. The project seems to build correctly (I can see a
    build
    folder with generated code for different platforms) but when I do a
    podInstall
    the installed pod just contains a skeleton of the library with an empty
    placeholder.h
    file in it. My current targets are
    android()
    ,
    jvm()
    , and
    ios()
    . I tried with
    iosSimulatorArm64()
    as well with no luck. Any ideas?
    s
    • 2
    • 6
Powered by Linen
Title
r

r

02/25/2022, 10:49 PM
Hello everyone! I've been banging my head for hours trying to make this work with no luck. I have a Kotlin (plugin v1.6.10) multiplatform shared (ios/android for the moment) library project with the following cocoapods config:
cocoapods {
    framework {
        baseName = "MyAppSharedLib"
        //Dynamic framework support
        isStatic = false
    }
    summary = "Multiplatform shared functionality"
    homepage = "<https://myapp.com>"
    podfile = project.file("../../app/MyApp/Podfile")
    ios.deploymentTarget = "13.5"
    osx.deploymentTarget = "10.15"
    watchos.deploymentTarget = "6.2"

    // Maps custom Xcode configuration to NativeBuildType
    xcodeConfigurationToNativeBuildType["CUSTOM_DEBUG"] = NativeBuildType.DEBUG
    xcodeConfigurationToNativeBuildType["CUSTOM_RELEASE"] = NativeBuildType.RELEASE
}
I'm using a Macbook Pro MX. The project seems to build correctly (I can see a
build
folder with generated code for different platforms) but when I do a
podInstall
the installed pod just contains a skeleton of the library with an empty
placeholder.h
file in it. My current targets are
android()
,
jvm()
, and
ios()
. I tried with
iosSimulatorArm64()
as well with no luck. Any ideas?
s

Skolson5903

02/26/2022, 12:33 AM
It took me a while to get used to this too, but that's how the cocoapods plugin works. The placeholder and related stuff are dummys until the first Xcode build using the pod happens. The build uses the extra scripting provided by the cocoapod plugin to replace the dummy stuff with the real stuff after that first build.
✅ 1
r

r

02/26/2022, 12:44 AM
my goodness... you're entirely right!
THANK YOU!
I spend the whole day trying to figure it out with no luck
I was about to give up for the day
I can't believe it was just like that
View count: 22