Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
![GitHub License](https://img.shields.io/github/license/lexilabs-app/basic-ads)
![GitHub Release Date](https://img.shields.io/github/release-date/lexilabs-app/basic-ads)
[![Latest Release](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-ads?color=blue&label=latest)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-ads)
[![Kotlin](https://img.shields.io/badge/Kotlin-2.2.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org)
[![Kotlin](https://img.shields.io/badge/Kotlin-2.3.0-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org)

A Kotlin Multiplatform library to rapidly get Google AdMob running on Android and iOS

Expand Down Expand Up @@ -39,7 +39,7 @@ For **iOS**, complete the steps in AdMob's instructions:
[![Kotlin](https://img.shields.io/badge/Kotlin-2.1.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org)

* [![Latest Release](https://img.shields.io/maven-central/v/app.lexilabs.basic/basic-ads?color=yellow&label=latest)](https://central.sonatype.com/artifact/app.lexilabs.basic/basic-ads)
[![Kotlin](https://img.shields.io/badge/Kotlin-2.2.21-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org)
[![Kotlin](https://img.shields.io/badge/Kotlin-2.3.0-7f52ff.svg?style=flat&logo=kotlin)](https://kotlinlang.org)

> [!IMPORTANT]
> Don't forget to [check the list of transitive dependencies and versions](VERSIONS.md) to ensure compatibility.
Expand All @@ -60,16 +60,16 @@ google-play-services-ads = { module = "com.google.android.gms:play-services-ads"
android-ump = { module = "com.google.android.ump:user-messaging-platform", version.ref = "android-ump" }

[plugins] # make sure you're using the JetBrains plugin to import your composables
jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
jetbrains-compose = { id = "org.jetbrains.compose", version.ref = "compose" }
jetbrains-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
```

then include the library in your gradle build
```kotlin
// in your 'composeApp/build.gradle.kts' file
plugins {
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrains.compose)
alias(libs.plugins.jetbrains.compose.compiler)
}

sourceSets {
Expand All @@ -78,7 +78,7 @@ sourceSets {
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
implementation(libs.lexilabs.basic.ads)
implementation(libs.basic.ads)
}
androidMain.dependencies {
implementation(libs.google.play.services.ads)
Expand Down
4 changes: 3 additions & 1 deletion VERSIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,6 @@ Here's a list of the Basic-Ads dependency versions for each release after 0.2.0:
| 1.0.0-beta05 | 2.2.20 | 1.9.0 | 1.9.1 | 24.6.0 / 12.12.0 | 3.2.0 / 3.0.0 |
| 1.0.0-beta06 | 2.2.21 | 1.9.3 | 1.9.1 | 24.8.0 / 12.14.0 | 4.0.0 / 3.1.0 |
| 1.0.0 | 2.2.21 | 1.9.3 | 1.9.1 | 24.8.0 / 12.14.0 | 4.0.0 / 3.1.0 |
| 1.1.0-beta01 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 |
| 1.1.0-beta01 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 |
| 1.1.0-beta02 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 |
| 1.1.0-beta03 | 2.3.0 | 1.9.3 | 1.9.1 | 24.9.0 / 12.14.0 | 4.0.0 / 3.1.0 |
54 changes: 39 additions & 15 deletions basic-ads/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,45 @@ plugins {
alias(libs.plugins.kover)
}

/** REMEDIATION **/
dependencies {
/** This patches all transitive dependencies that have vulnerabilities **/
constraints {
androidMainImplementation(libs.remediate.okhttp) {
version { strictly(libs.versions.remediate.okhttp.get()) }
because("CVE-2021-0341")
}
androidMainImplementation(libs.remediate.bitbucket) {
version { strictly(libs.versions.remediate.bitbucket.get())}
because("CVE-2024-29371")
}
androidMainImplementation(libs.remediate.netty.codec.http){
version { strictly(libs.versions.remediate.netty.get())}
because("CVE-2025-67735")
}
androidMainImplementation(libs.remediate.netty.codec.http2){
version { strictly(libs.versions.remediate.netty.get())}
because("CVE-2025-55163")
}
androidMainImplementation(libs.remediate.google.protobuf.kotlin){
version { strictly(libs.versions.remediate.google.protobuf.get())}
because("CVE-2024-7254")
}
androidMainImplementation(libs.remediate.google.protobuf.java){
version { strictly(libs.versions.remediate.google.protobuf.get())}
because("CVE-2024-7254")
}
androidMainImplementation(libs.remediate.jdom){
version { strictly(libs.versions.remediate.jdom.get())}
because("CVE-2021-33813")
}
androidMainImplementation(libs.remediate.apache.compress){
version { strictly(libs.versions.remediate.apache.compress.get())}
because("CVE-2024-26308")
}
}
}

kotlin {

// FORCES CHECK OF PUBLIC API DECLARATIONS
Expand Down Expand Up @@ -56,21 +95,6 @@ kotlin {
compileOnly(libs.android.core)
compileOnly(libs.android.ump)
api(libs.android.ump)
/** REMEDIATION **/
// CVE-2021-0341
compileOnly(libs.remediate.okhttp)
// CVE-2024-29371
compileOnly(libs.remediate.bitbucket)
// CVE-2025-67735
compileOnly(libs.remediate.netty.codec.http)
// CVE-2025-55163
compileOnly(libs.remediate.netty.codec.http2)
// CVE-2024-7254
compileOnly(libs.remediate.google.protobuf.kotlin)
// CVE-2024-7254
compileOnly(libs.remediate.google.protobuf.java)
// CVE-2021-33813
compileOnly(libs.remediate.jdom)
}
iosMain.dependencies {}
}
Expand Down
24 changes: 16 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[versions]
# BUILD INFO
ads = "1.1.0-beta02"
ads = "1.1.0-beta03"
build-sdk-compile = "36"
build-sdk-min = "24"
build-sdk-target = "36"
Expand All @@ -21,6 +21,13 @@ kover = "0.9.4"
logging = "0.2.6"
android-ump = "4.0.0"
maven-publish = "0.35.0"
# REMEDIATION
remediate-okhttp = "5.3.2"
remediate-bitbucket = "0.9.6"
remediate-netty = "4.2.9.Final"
remediate-google-protobuf = "4.33.3"
remediate-jdom = "2.0.6.1"
remediate-apache-compress = "1.28.0"

[libraries]
compose-foundation = { module = "org.jetbrains.compose.foundation:foundation", version.ref = "compose" }
Expand All @@ -31,13 +38,14 @@ annotations = { module = "androidx.annotation:annotation", version.ref = "annota
lexilabs-basic-logging = { module = "app.lexilabs.basic:basic-logging", version.ref = "logging" }
android-ump = { module = "com.google.android.ump:user-messaging-platform", version.ref = "android-ump"}
# REMEDIATION
remediate-okhttp = { module = "com.squareup.okhttp3:okhttp", version = { strictly = "5.3.2" } }
remediate-bitbucket = { module = "org.bitbucket.b_c:jose4j", version = { strictly = "0.9.6" } }
remediate-netty-codec-http = { module = "io.netty:netty-codec-http", version = { strictly = "4.2.9.Final" } }
remediate-netty-codec-http2 = { module = "io.netty:netty-codec-http2", version = { strictly = "4.2.9.Final" } }
remediate-google-protobuf-kotlin = { module = "com.google.protobuf:protobuf-kotlin", version = { strictly = "4.33.3"}}
remediate-google-protobuf-java = { module = "com.google.protobuf:protobuf-java", version = { strictly = "4.33.3"}}
remediate-jdom = { module = "org.jdom:jdom2", version = { strictly = "2.0.6.1" } }
remediate-okhttp = { module = "com.squareup.okhttp3:okhttp" }
remediate-bitbucket = { module = "org.bitbucket.b_c:jose4j" }
remediate-netty-codec-http = { module = "io.netty:netty-codec-http" }
remediate-netty-codec-http2 = { module = "io.netty:netty-codec-http2" }
remediate-google-protobuf-kotlin = { module = "com.google.protobuf:protobuf-kotlin" }
remediate-google-protobuf-java = { module = "com.google.protobuf:protobuf-java" }
remediate-jdom = { module = "org.jdom:jdom2" }
remediate-apache-compress = { module = "org.apache.commons:commons-compress" }

[plugins]
multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
Expand Down
Loading