Skip to content

Commit

Permalink
Merge remote-tracking branch 'our_template/master'
Browse files Browse the repository at this point in the history
# Conflicts:
#	.github/workflows/pull-request.yml
#	.github/workflows/release.yml
#	.gitignore
#	README.md
#	build.gradle.kts
#	gradle.properties
#	gradle/wrapper/gradle-wrapper.properties
#	kotlin-js-store/yarn.lock
#	library/build.gradle.kts
#	library/gradle.properties
#	library/src/androidMain/AndroidManifest.xml
#	scripts/update-from-template.sh
#	settings.gradle.kts
  • Loading branch information
Reedyuk committed Nov 10, 2023
2 parents 096b691 + 5624ed2 commit b3d6603
Show file tree
Hide file tree
Showing 19 changed files with 208 additions and 1,966 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17
- name: Setup cocoapods
run: gem install cocoapods-generate
- name: Static Analysis
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: 11
java-version: 17
- name: Update version property
uses: Reedyuk/write-properties@v1.0.3
with:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -151,3 +151,5 @@ fabric.properties
!*/swiftpackage/.git

swiftpackage

*.podspec
11 changes: 6 additions & 5 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
plugins {
id("org.jetbrains.kotlinx.kover") version "0.6.1"
alias(testingLibs.plugins.kover)
}

kover {
Expand All @@ -13,11 +13,12 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20")
classpath("com.android.tools.build:gradle:7.1.3")
classpath("org.jetbrains.kotlin:kotlin-serialization:1.7.20")
classpath("org.jlleitschuh.gradle.ktlint:org.jlleitschuh.gradle.ktlint.gradle.plugin:11.0.0")
classpath("io.gitlab.arturbosch.detekt:io.gitlab.arturbosch.detekt.gradle.plugin:1.22.0")
classpath("org.jetbrains.kotlin:kotlin-serialization:1.9.10")
classpath(libs.android.build.tools)
classpath(libs.gradle.plugin)
classpath(testingLibs.detekt)
classpath(testingLibs.kotest.plugin)
}
}

Expand Down
5 changes: 3 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ POM_DEVELOPER_EMAIL=app.team@myunidays.com

kotlin.native.binary.memoryModel=experimental

kotlin.native.cacheKind.iosArm64=none
kotlin.mpp.enableCInteropCommonization=true
kotlin.mpp.enableCInteropCommonization.nowarn=true

kotlin.mpp.enableCInteropCommonization=true
kotlin.native.cacheKind=none
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
1,912 changes: 0 additions & 1,912 deletions kotlin-js-store/yarn.lock

This file was deleted.

40 changes: 40 additions & 0 deletions library/Segmenkt.podspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Pod::Spec.new do |spec|
spec.name = 'Segmenkt'
spec.version = '0.2.0'
spec.homepage = ''
spec.source = { :http=> ''}
spec.authors = ''
spec.license = ''
spec.summary = ''
spec.vendored_frameworks = 'build/cocoapods/framework/segmenkt.framework'
spec.libraries = 'c++'
spec.ios.deployment_target = '11.0'
spec.dependency 'Analytics'
spec.dependency 'Segment-Firebase'

spec.pod_target_xcconfig = {
'KOTLIN_PROJECT_PATH' => ':Segmenkt',
'PRODUCT_MODULE_NAME' => 'segmenkt',
}

spec.script_phases = [
{
:name => 'Build Segmenkt',
:execution_position => :before_compile,
:shell_path => '/bin/sh',
:script => <<-SCRIPT
if [ "YES" = "$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED" ]; then
echo "Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \"YES\""
exit 0
fi
set -ev
REPO_ROOT="$PODS_TARGET_SRCROOT"
"$REPO_ROOT/../gradlew" -p "$REPO_ROOT" $KOTLIN_PROJECT_PATH:syncFramework \
-Pkotlin.native.cocoapods.platform=$PLATFORM_NAME \
-Pkotlin.native.cocoapods.archs="$ARCHS" \
-Pkotlin.native.cocoapods.configuration="$CONFIGURATION"
SCRIPT
}
]

end
67 changes: 44 additions & 23 deletions library/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi

val MODULE_PACKAGE_NAME: String by project
val MODULE_NAME: String by project
val MODULE_VERSION_NUMBER: String by project
Expand All @@ -6,14 +8,18 @@ val PUBLISH_NAME: String by project
group = MODULE_PACKAGE_NAME
version = MODULE_VERSION_NUMBER

kotlin {
jvmToolchain(libs.versions.jvm.get().toInt())
}

plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
kotlin("native.cocoapods")
id("io.github.luca992.multiplatform-swiftpackage") version "2.0.5-arm64"
id("com.android.library")
id("org.jlleitschuh.gradle.ktlint")
id("io.gitlab.arturbosch.detekt")
kotlin("native.cocoapods")
signing
`maven-publish`
}
Expand All @@ -25,35 +31,39 @@ ktlint {
detekt {
config = files("./custom-detekt-config.yml")
buildUponDefaultConfig = true // preconfigure defaults
input = files("src/commonMain/kotlin")
source.setFrom(
"src/commonMain/kotlin",
"src/androidMain/kotlin",
"src/iosMain/kotlin"
)
autoCorrect = false

reports {
html.enabled = true
xml.enabled = true
txt.enabled = true
sarif.enabled = true
}
}

tasks.withType<io.gitlab.arturbosch.detekt.Detekt>().configureEach {
// Target version of the generated JVM bytecode. It is used for type resolution.
jvmTarget = "1.8"
jvmTarget = libs.versions.jvm.get()
reports {
html.required.set(true)
xml.required.set(true)
txt.required.set(true)
sarif.required.set(true)
}
}

kotlin {
js(BOTH) {
js {
browser { }
}
android {
@OptIn(ExperimentalKotlinGradlePluginApi::class)
targetHierarchy.default()
androidTarget {
publishAllLibraryVariants()
publishLibraryVariantsGroupedByFlavor = true
}

ios()
iosSimulatorArm64()
cocoapods {
ios.deploymentTarget = "11.0"
noPodspec()
framework {
baseName = MODULE_NAME
isStatic = true
Expand All @@ -70,6 +80,7 @@ kotlin {
}
}
}

sourceSets {
val commonMain by getting
val commonTest by getting {
Expand All @@ -86,9 +97,9 @@ kotlin {
api("com.segment.analytics.android.integrations:firebase:1.1.0")
}
}
val androidTest by getting {
val androidUnitTest by getting {
dependencies {
implementation("junit:junit:4.13.2")
implementation(testingLibs.junit)
}
}
val iosMain by getting
Expand All @@ -101,19 +112,24 @@ kotlin {
}

android {
compileSdk = 31
buildToolsVersion = "30.0.3"
compileSdk = androidVersions.versions.compileSdk.get().toInt()
buildToolsVersion = androidVersions.versions.buildToolsVersion.get()
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
namespace = MODULE_PACKAGE_NAME
defaultConfig {
minSdk = 24
targetSdk = 31
minSdk = androidVersions.versions.minSdk.get().toInt()
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
buildTypes {
getByName("release") {
isMinifyEnabled = false
}
}
lint {
disable += "GradleCompatible"
baseline = file("lint-baseline.xml")
}
}

Expand Down Expand Up @@ -196,3 +212,8 @@ signing {
useInMemoryPgpKeys(signingKey, signingPassword)
sign(publishing.publications)
}

tasks.withType<AbstractPublishToMaven>().configureEach {
val signingTasks = tasks.withType<Sign>()
mustRunAfter(signingTasks)
}
7 changes: 6 additions & 1 deletion library/custom-detekt-config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
build:
maxIssues: 0
excludeCorrectable: false
excludeCorrectable: false

naming:
active: true
MatchingDeclarationName:
active: false
5 changes: 1 addition & 4 deletions library/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
kotlin.js.compiler=ir
kotlin.mpp.enableCInteropCommonization=true

signing.keyId=""
signing.password=""

MODULE_PACKAGE_NAME=com.myunidays
MODULE_VERSION_NUMBER=0.1.6
MODULE_VERSION_NUMBER=0.2.0
MODULE_NAME=segmenkt

OPEN_SOURCE_REPO=https://oss.sonatype.org/service/local/staging/deploy/maven2/
Expand Down
22 changes: 22 additions & 0 deletions library/lint-baseline.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<issues format="6" by="lint 8.1.2" type="baseline" client="gradle" dependencies="false" name="AGP (8.1.2)" variant="all" version="8.1.2">

<issue
id="GradleCompatible"
message="Dependencies using groupId `com.android.support` and `androidx.*` can not be combined but found `com.android.support:support-v4:25.2.0` and `androidx.lifecycle:lifecycle-process:2.2.0` incompatible dependencies">
<location
file="build.gradle.kts"/>
</issue>

<issue
id="GradleDependency"
message="A newer version of com.appsflyer:segment-android-integration than 6.5.2 is available: 6.10.3"
errorLine1=" api(&quot;com.appsflyer:segment-android-integration:6.5.2&quot;)"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
file="build.gradle.kts"
line="96"
column="22"/>
</issue>

</issues>
2 changes: 1 addition & 1 deletion library/src/androidMain/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.myunidays.segmenkt">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

</manifest>
15 changes: 12 additions & 3 deletions library/src/androidMain/kotlin/com/myunidays/segmenkt/Analytics.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,26 @@ actual class Analytics internal constructor(val android: com.segment.analytics.A

actual companion object {
actual fun setup(configuration: Configuration): Analytics {
val analyticsConfig = com.segment.analytics.Analytics.Builder(configuration.application as Context, configuration.writeKey)
val analyticsConfig = com.segment.analytics.Analytics.Builder(
configuration.application as Context,
configuration.writeKey
)
.collectDeviceId(configuration.collectDeviceId)
.experimentalUseNewLifecycleMethods(configuration.useLifecycleObserver)
.flushInterval(configuration.flushInterval.toLong(), TimeUnit.SECONDS)
.flushQueueSize(configuration.flushAt)
.tag(if (configuration.tag.isNullOrBlank()) configuration.writeKey else configuration.tag + "-" + configuration.writeKey)
.tag(
if (configuration.tag.isNullOrBlank()) configuration.writeKey
else configuration.tag + "-" + configuration.writeKey
)
configuration.factories.forEach { analyticsConfig.use(it) }
if (configuration.trackDeepLinks) analyticsConfig.trackDeepLinks()
if (configuration.trackApplicationLifecycleEvents) analyticsConfig.trackApplicationLifecycleEvents()
configuration.apiHost?.let { analyticsConfig.defaultApiHost(it) }
analyticsConfig.logLevel(if (configuration.debug) com.segment.analytics.Analytics.LogLevel.VERBOSE else com.segment.analytics.Analytics.LogLevel.INFO)
analyticsConfig.logLevel(
if (configuration.debug) com.segment.analytics.Analytics.LogLevel.VERBOSE
else com.segment.analytics.Analytics.LogLevel.INFO
)
if (configuration.recordScreenViews) analyticsConfig.recordScreenViews()
val analytics = analyticsConfig.build()
com.segment.analytics.Analytics.setSingletonInstance(analytics)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.myunidays.segmenkt.integrations.IntegrationFactory
import com.myunidays.segmenkt.integrations.ScreenPayload
import com.myunidays.segmenkt.integrations.TrackPayload

@Suppress("TooManyFunctions")
actual class AppsFlyerIntegration internal constructor(
private val android: com.segment.analytics.integrations.Integration<*>
) : Integration<AppsFlyerIntegration> {
Expand All @@ -29,10 +30,11 @@ actual class AppsFlyerIntegration internal constructor(
override fun screen(screenPayload: ScreenPayload) = android.screen(screenPayload)
override fun flush() = android.flush()
override fun reset() = android.reset()
override fun debug(debug: Boolean) {
}
@Suppress("EmptyFunctionBlock")
override fun debug(debug: Boolean) { }

actual companion object {
actual fun factory(delegate: Any?, deeplinkHandler: Any?): IntegrationFactory = com.segment.analytics.android.integrations.appsflyer.AppsflyerIntegration.FACTORY
actual fun factory(delegate: Any?, deeplinkHandler: Any?): IntegrationFactory =
com.segment.analytics.android.integrations.appsflyer.AppsflyerIntegration.FACTORY
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import com.myunidays.segmenkt.integrations.IntegrationFactory
import com.myunidays.segmenkt.integrations.ScreenPayload
import com.myunidays.segmenkt.integrations.TrackPayload

@Suppress("TooManyFunctions")
actual class FirebaseIntegration internal constructor(
private val android: com.segment.analytics.integrations.Integration<*>
) : Integration<FirebaseIntegration> {
Expand All @@ -29,8 +30,9 @@ actual class FirebaseIntegration internal constructor(
override fun screen(screenPayload: ScreenPayload) = android.screen(screenPayload)
override fun flush() = android.flush()
override fun reset() = android.reset()
override fun debug(debug: Boolean) {
}

@Suppress("EmptyFunctionBlock")
override fun debug(debug: Boolean) { }

actual companion object {
actual fun factory(
Expand Down
Loading

0 comments on commit b3d6603

Please sign in to comment.