From e8b7c945658368c7e28ae97b082fc89103fe8be6 Mon Sep 17 00:00:00 2001 From: Hekmatullah Date: Thu, 14 Aug 2025 22:48:18 +0100 Subject: [PATCH] misc: optimize slow cmp_shared build step in CI (#1904) --- .github/ci-gradle.properties | 17 ++++ .../multi-platform-build-and-publish.yml | 44 +++++++--- .github/workflows/pr-check.yml | 2 +- Gemfile | 1 + Gemfile.lock | 80 +++++++++++++++++- .../org/mifospay/KotlinMultiplatform.kt | 2 +- cmp-android/prodRelease-badging.txt | 2 +- cmp-ios/Podfile | 23 +++-- cmp-ios/Podfile.lock | 16 ++++ cmp-ios/iosApp.xcodeproj/project.pbxproj | 38 +++------ .../xcschemes/xcschememanagement.plist | 14 +++ .../contents.xcworkspacedata | 10 +++ .../xcschemes/xcschememanagement.plist | 5 ++ .../AppIcon.appiconset/mifospay_logo_1024.png | Bin 36837 -> 52157 bytes cmp-ios/iosApp/Info.plist | 2 +- cmp-shared/build.gradle.kts | 21 +---- fastlane-config/ios_config.rb | 10 ++- fastlane/FastFile | 44 +++++++--- fastlane/report.xml | 43 +++++++--- 19 files changed, 275 insertions(+), 99 deletions(-) create mode 100644 .github/ci-gradle.properties create mode 100644 cmp-ios/Podfile.lock create mode 100644 cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata create mode 100644 cmp-ios/iosApp.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties new file mode 100644 index 00000000..0c9b2d81 --- /dev/null +++ b/.github/ci-gradle.properties @@ -0,0 +1,17 @@ +# Disable daemon for CI to avoid leftover processes +org.gradle.daemon=false + +# Run tasks in parallel where possible +org.gradle.parallel=true + +# Increase heap and metaspace for larger builds (macOS-latest has ~7 GB available) +org.gradle.jvmargs=-Xmx7g + +# Limit max workers to avoid memory pressure in CI +org.gradle.workers.max=3 + +# Disable Kotlin incremental compilation in CI for clean, consistent builds +kotlin.incremental=false + +# Use in-process Kotlin compiler to avoid extra forked processes +kotlin.compiler.execution.strategy=in-process \ No newline at end of file diff --git a/.github/workflows/multi-platform-build-and-publish.yml b/.github/workflows/multi-platform-build-and-publish.yml index 9a7740eb..19921047 100644 --- a/.github/workflows/multi-platform-build-and-publish.yml +++ b/.github/workflows/multi-platform-build-and-publish.yml @@ -74,15 +74,20 @@ on: default: 'development' description: 'Target branch for release' - build_ios: + distribute_ios_firebase: type: boolean default: false - description: Build iOS App + description: Distribute iOS App via Firebase App Distribution - publish_ios: + distribute_ios_testflight: type: boolean default: false - description: Publish iOS App On App Store + description: Distribute iOS App via TestFlight (App Store Connect) + + distribute_ios_appstore: + type: boolean + default: false + description: Distribute iOS App to Appstore permissions: contents: write @@ -96,17 +101,27 @@ concurrency: jobs: multi_platform_build_and_publish: name: Multi-Platform Build and Publish - uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@v1.0.0 + uses: openMF/mifos-x-actionhub/.github/workflows/multi-platform-build-and-publish.yaml@main with: release_type: ${{ inputs.release_type }} target_branch: ${{ inputs.target_branch }} - android_package_name: 'mifospay-android' # <-- Change this to your android package name - ios_package_name: 'mifospay-ios' # <-- Change this to your ios package name - desktop_package_name: 'mifospay-desktop' # <-- Change this to your desktop package name - web_package_name: 'mifospay-web' # <-- Change this to your web package name - tester_groups: 'mifos-mobile-apps' # <-- Change this to your Firebase tester group - build_ios: ${{ inputs.build_ios }} - publish_ios: ${{ inputs.publish_ios }} + android_package_name: 'cmp-android' + ios_package_name: 'cmp-ios' + desktop_package_name: 'cmp-desktop' + web_package_name: 'cmp-web' + tester_groups: 'mifos-mobile-apps' + app_identifier: 'org.mifospay' + git_url: 'git@github.com:openMF/ios-provisioning-profile.git' + git_branch: 'mifospay' + match_type: 'adhoc' + provisioning_profile_name: 'match AdHoc org.mifospay' + firebase_app_id: '1:728434912738:ios:86a7badfaed88b841a1dbb' + metadata_path: './fastlane/metadata' + use_cocoapods: true # <-- Set to true if using CocoaPods integration for KMP + shared_module: ':cmp-shared' # <-- Gradle path to your shared KMP module (e.g., :shared) + distribute_ios_firebase: ${{ inputs.distribute_ios_firebase }} + distribute_ios_testflight: ${{ inputs.distribute_ios_testflight }} + distribute_ios_appstore: ${{ inputs.distribute_ios_appstore }} secrets: original_keystore_file: ${{ secrets.ORIGINAL_KEYSTORE_FILE }} original_keystore_file_password: ${{ secrets.ORIGINAL_KEYSTORE_FILE_PASSWORD }} @@ -121,6 +136,11 @@ jobs: notarization_apple_id: ${{ secrets.NOTARIZATION_APPLE_ID }} notarization_password: ${{ secrets.NOTARIZATION_PASSWORD }} notarization_team_id: ${{ secrets.NOTARIZATION_TEAM_ID }} + appstore_key_id: ${{ secrets.APPSTORE_KEY_ID }} + appstore_issuer_id: ${{ secrets.APPSTORE_ISSUER_ID }} + appstore_auth_key: ${{ secrets.APPSTORE_AUTH_KEY }} + match_password: ${{ secrets.MATCH_PASSWORD }} + match_ssh_private_key: ${{ secrets.MATCH_SSH_PRIVATE_KEY }} windows_signing_key: ${{ secrets.WINDOWS_SIGNING_KEY }} windows_signing_password: ${{ secrets.WINDOWS_SIGNING_PASSWORD }} diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index fa214758..5b2d3a2a 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -81,7 +81,7 @@ permissions: jobs: pr_checks: name: PR Checks - uses: openMF/mifos-x-actionhub/.github/workflows/pr-check.yaml@v1.0.3 + uses: openMF/mifos-x-actionhub/.github/workflows/pr-check.yaml@main secrets: inherit with: android_package_name: 'cmp-android' # <-- Change Your Android Package Name diff --git a/Gemfile b/Gemfile index 66422d1d..de5159cd 100644 --- a/Gemfile +++ b/Gemfile @@ -7,6 +7,7 @@ rescue Errno::ENOENT end gem "fastlane" +gem "cocoapods" plugins_path = File.join(File.dirname(__FILE__), "fastlane", "Pluginfile") eval_gemfile(plugins_path) if File.exist?(plugins_path) \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 49c26d2a..1b5bd290 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,8 +5,23 @@ GEM base64 nkf rexml + activesupport (7.2.2.1) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb + i18n (>= 1.6, < 2) + logger (>= 1.4.2) + minitest (>= 5.1) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) artifactory (3.0.17) atomos (0.1.3) aws-eventstream (1.4.0) @@ -30,18 +45,63 @@ GEM aws-eventstream (~> 1, >= 1.0.2) babosa (1.0.4) base64 (0.3.0) + benchmark (0.3.0) bigdecimal (3.2.2) claide (1.1.0) + cocoapods (1.16.2) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.16.2) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 2.1, < 3.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.27.0, < 2.0) + cocoapods-core (1.16.2) + activesupport (>= 5.0, < 8) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (2.1) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) colored (1.2) colored2 (3.1.2) commander (4.6.0) highline (~> 2.0.0) + concurrent-ruby (1.3.5) + connection_pool (2.5.0) declarative (0.0.20) digest-crc (0.7.0) rake (>= 12.0.0, < 14.0.0) domain_name (0.6.20240107) dotenv (2.8.1) + drb (2.2.0) + ruby2_keywords emoji_regex (3.2.3) + escape (0.0.4) + ethon (0.16.0) + ffi (>= 1.15.0) excon (0.112.0) faraday (1.10.4) faraday-em_http (~> 1.0) @@ -120,6 +180,9 @@ GEM fastlane-plugin-increment_build_number (0.0.4) fastlane-sirp (1.0.0) sysrandom (~> 1.0) + ffi (1.17.1-arm64-darwin) + fourflusher (2.3.1) + fuzzy_match (2.0.4) gh_inspector (1.1.3) google-apis-androidpublisher_v3 (0.54.0) google-apis-core (>= 0.11.0, < 2.a) @@ -166,6 +229,8 @@ GEM domain_name (~> 0.5) httpclient (2.9.0) mutex_m + i18n (1.14.7) + concurrent-ruby (~> 1.0) jmespath (1.6.2) json (2.13.2) jwt (2.10.2) @@ -173,16 +238,20 @@ GEM logger (1.7.0) mini_magick (4.13.2) mini_mime (1.1.5) + minitest (5.20.0) + molinillo (0.8.0) multi_json (1.17.0) multipart-post (2.4.1) mutex_m (0.3.0) nanaimo (0.4.0) + nap (1.1.0) naturally (2.3.0) + netrc (0.11.0) nkf (0.2.0) optparse (0.6.0) os (1.1.4) plist (3.7.2) - public_suffix (6.0.2) + public_suffix (4.0.7) rake (13.3.0) representable (3.2.0) declarative (< 0.1.0) @@ -191,8 +260,10 @@ GEM retriable (3.1.2) rexml (3.4.1) rouge (3.28.0) + ruby-macho (2.5.1) ruby2_keywords (0.0.5) rubyzip (2.4.1) + securerandom (0.3.1) security (0.1.5) signet (0.20.0) addressable (~> 2.8) @@ -211,6 +282,10 @@ GEM tty-screen (0.8.2) tty-spinner (0.9.3) tty-cursor (~> 0.7) + typhoeus (1.4.1) + ethon (>= 0.9.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) uber (0.1.0) unicode-display_width (2.6.0) word_wrap (1.0.0) @@ -227,10 +302,11 @@ GEM xcpretty (~> 0.2, >= 0.0.7) PLATFORMS + arm64-darwin-24 ruby - x64-mingw-ucrt DEPENDENCIES + cocoapods fastlane fastlane-plugin-firebase_app_distribution fastlane-plugin-increment_build_number diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt index 46fc5f15..09a7afce 100644 --- a/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt +++ b/build-logic/convention/src/main/kotlin/org/mifospay/KotlinMultiplatform.kt @@ -13,9 +13,9 @@ internal fun Project.configureKotlinMultiplatform() { jvm("desktop") androidTarget() + iosArm64() iosSimulatorArm64() iosX64() - iosArm64() js(IR) { this.nodejs() binaries.executable() diff --git a/cmp-android/prodRelease-badging.txt b/cmp-android/prodRelease-badging.txt index b57f9c27..91ced69b 100644 --- a/cmp-android/prodRelease-badging.txt +++ b/cmp-android/prodRelease-badging.txt @@ -1,4 +1,4 @@ -package: name='org.mifospay' versionCode='1' versionName='2025.8.2-beta.0.2' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15' +package: name='org.mifospay' versionCode='1' versionName='2025.8.2-beta.0.3' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15' minSdkVersion:'26' targetSdkVersion:'34' uses-permission: name='android.permission.INTERNET' diff --git a/cmp-ios/Podfile b/cmp-ios/Podfile index 390e2af0..0f05686a 100644 --- a/cmp-ios/Podfile +++ b/cmp-ios/Podfile @@ -1,12 +1,21 @@ -platform :ios, '16.0' -use_frameworks! +deployment_target = '16.0' target 'iosApp' do - project 'iosApp.xcodeproj' + use_frameworks! + platform :ios, deployment_target + # Pods for iosApp pod 'cmp_shared', :path => '../cmp-shared' +end - # Native Firebase iOS Pods required by firebase-kotlin-sdk - pod 'FirebaseCore' - pod 'FirebaseAnalytics' - pod 'FirebaseCrashlytics' +post_install do |installer| + installer.generated_projects.each do |project| + project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target + end + end + project.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = deployment_target + end + end end \ No newline at end of file diff --git a/cmp-ios/Podfile.lock b/cmp-ios/Podfile.lock new file mode 100644 index 00000000..aa0f6d87 --- /dev/null +++ b/cmp-ios/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - cmp_shared (1.0) + +DEPENDENCIES: + - cmp_shared (from `../cmp-shared`) + +EXTERNAL SOURCES: + cmp_shared: + :path: "../cmp-shared" + +SPEC CHECKSUMS: + cmp_shared: 572f72160ae05ea5b3f48ce339a45689782322e3 + +PODFILE CHECKSUM: fba668dc0eba2e4694ef273d90789cf739b8504c + +COCOAPODS: 1.16.2 diff --git a/cmp-ios/iosApp.xcodeproj/project.pbxproj b/cmp-ios/iosApp.xcodeproj/project.pbxproj index 88bdfa2d..8f20b72c 100644 --- a/cmp-ios/iosApp.xcodeproj/project.pbxproj +++ b/cmp-ios/iosApp.xcodeproj/project.pbxproj @@ -114,7 +114,6 @@ 7555FF77242A565900829871 /* Sources */, B92378962B6B1156000C7307 /* Frameworks */, 7555FF79242A565900829871 /* Resources */, - F4AFB1CDEBBAABC6D5F3DC8F /* [CP] Embed Pods Frameworks */, 752A860311D78307D18B373B /* [CP] Copy Pods Resources */, ); buildRules = ( @@ -212,23 +211,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - F4AFB1CDEBBAABC6D5F3DC8F /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iosApp/Pods-iosApp-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -371,10 +353,10 @@ baseConfigurationReference = E5D357E5C5AAADD27F979C77 /* Pods-iosApp.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; + DEVELOPMENT_TEAM = L432S2FZP5; ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -389,9 +371,9 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_BUNDLE_IDENTIFIER = org.mifospay; PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AdHoc org.mifospay"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -402,10 +384,10 @@ baseConfigurationReference = 471D4B8AF5995E32718DCCCD /* Pods-iosApp.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; + CODE_SIGN_IDENTITY = "Apple Distribution"; + CODE_SIGN_STYLE = Manual; DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\""; - DEVELOPMENT_TEAM = "${TEAM_ID}"; + DEVELOPMENT_TEAM = L432S2FZP5; ENABLE_PREVIEWS = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -420,9 +402,9 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.0; - PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}"; + PRODUCT_BUNDLE_IDENTIFIER = org.mifospay; PRODUCT_NAME = "${APP_NAME}"; - PROVISIONING_PROFILE_SPECIFIER = ""; + PROVISIONING_PROFILE_SPECIFIER = "match AdHoc org.mifospay"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist b/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..aede5d13 --- /dev/null +++ b/cmp-ios/iosApp.xcodeproj/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + cmp-ios.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata b/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..c009e7d7 --- /dev/null +++ b/cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/cmp-ios/iosApp.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist b/cmp-ios/iosApp.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..ee3458dd --- /dev/null +++ b/cmp-ios/iosApp.xcworkspace/xcuserdata/hekmatullahamin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/cmp-ios/iosApp/Assets.xcassets/AppIcon.appiconset/mifospay_logo_1024.png b/cmp-ios/iosApp/Assets.xcassets/AppIcon.appiconset/mifospay_logo_1024.png index 952056c200624cd6e9cdd3ad2608b15c7745d6ff..b4a4656de58c1ca3462aa5c0af66540fb4274a22 100644 GIT binary patch literal 52157 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 literal 36837 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 diff --git a/cmp-ios/iosApp/Info.plist b/cmp-ios/iosApp/Info.plist index dee05d1e..816302c7 100644 --- a/cmp-ios/iosApp/Info.plist +++ b/cmp-ios/iosApp/Info.plist @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.0 CFBundleVersion - 1 + 6 LSRequiresIPhoneOS NSPhotoLibraryAddUsageDescription diff --git a/cmp-shared/build.gradle.kts b/cmp-shared/build.gradle.kts index ddfd513f..0b8ef8a6 100644 --- a/cmp-shared/build.gradle.kts +++ b/cmp-shared/build.gradle.kts @@ -9,27 +9,15 @@ */ plugins { - alias(libs.plugins.kmp.library.convention) alias(libs.plugins.cmp.feature.convention) - alias(libs.plugins.android.library) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.kotlin.parcelize) alias(libs.plugins.kotlinCocoapods) } kotlin { - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64() - ).forEach { iosTarget -> - iosTarget.binaries.framework { - baseName = "ComposeApp" - isStatic = true - optimized = true - } - } + iosArm64() + iosSimulatorArm64() + iosX64() sourceSets { commonMain.dependencies { @@ -43,9 +31,6 @@ kotlin { implementation(compose.components.uiToolingPreview) implementation(compose.components.resources) implementation(libs.window.size) - implementation(libs.koin.core) - implementation(libs.koin.compose) - implementation(libs.koin.compose.viewmodel) implementation(projects.feature.auth) implementation(projects.libs.mifosPasscode) diff --git a/fastlane-config/ios_config.rb b/fastlane-config/ios_config.rb index a7e6fcc3..90430d23 100644 --- a/fastlane-config/ios_config.rb +++ b/fastlane-config/ios_config.rb @@ -9,11 +9,17 @@ module FastlaneConfig BUILD_CONFIG = { project_path: "cmp-ios/iosApp.xcodeproj", workspace_path: "cmp-ios/iosApp.xcworkspace", + configuration: "Release", + podfile_path: "cmp-ios/Podfile", plist_path: "cmp-ios/iosApp/Info.plist", - scheme: "iosApp", + scheme: "cmp-ios", output_name: "iosApp.ipa", output_directory: "cmp-ios/build", match_git_private_key: "./secrets/match_ci_key", + target: "iosApp", + team_id: "L432S2FZP5", + code_sign_identity: "Apple Distribution", + configuration: "Release", match_type: "adhoc", app_identifier: "org.mifospay", provisioning_profile_name: "match AdHoc org.mifospay", @@ -22,7 +28,7 @@ module FastlaneConfig key_id: "7V3ABCDEFG", issuer_id: "7ab9e231-9603-4c3e-a147-be3b0f123456", key_filepath: "./secrets/Auth_key.p8", - version_number: "1.0.0", + version_number: "1.0", metadata_path: "./fastlane/metadata", app_rating_config_path: "./fastlane/age_rating.json" } diff --git a/fastlane/FastFile b/fastlane/FastFile index e348302b..4b5fa385 100644 --- a/fastlane/FastFile +++ b/fastlane/FastFile @@ -328,9 +328,7 @@ platform :ios do unless ENV['CI'] UI.message("🖥️ Running locally, skipping CI-specific setup.") else - setup_ci( - provider: "circleci" - ) + setup_ci end end @@ -350,7 +348,7 @@ platform :ios do match( type: options[:match_type] || ios_config[:match_type], app_identifier: options[:app_identifier] || ios_config[:app_identifier], - readonly: false, + readonly: true, git_url: options[:git_url] || ios_config[:git_url], git_branch: options[:git_branch] || ios_config[:git_branch], git_private_key: options[:git_private_key] || ios_config[:match_git_private_key], @@ -364,16 +362,29 @@ platform :ios do app_identifier = options[:app_identifier] || ios_config[:app_identifier] provisioning_profile_name = options[:provisioning_profile_name] || ios_config[:provisioning_profile_name] + cocoapods( + podfile: ios_config[:podfile_path], + clean_install: true, + repo_update: true + ) + + # Manual signing for your main app target + update_code_signing_settings( + use_automatic_signing: false, + path: ios_config[:project_path], + targets: [ios_config[:target]], + team_id: ios_config[:team_id], + code_sign_identity: ios_config[:code_sign_identity], + profile_name: provisioning_profile_name, + bundle_identifier: app_identifier + ) + build_ios_app( scheme: ios_config[:scheme], workspace: ios_config[:workspace_path], output_name: ios_config[:output_name], output_directory: ios_config[:output_directory], - export_options: { - provisioningProfiles: { - app_identifier => provisioning_profile_name - } - } + configuration: ios_config[:configuration] ) end @@ -384,6 +395,13 @@ platform :ios do desc "Build Ios application" lane :build_ios do |options| ios_config = FastlaneConfig::IosConfig::BUILD_CONFIG + + cocoapods( + podfile: ios_config[:podfile_path], + clean_install: true, + repo_update: true + ) + build_ios_app( scheme: ios_config[:scheme], workspace: ios_config[:workspace_path], @@ -472,7 +490,8 @@ platform :ios do latest_build_number = latest_testflight_build_number( app_identifier: options[:app_identifier] || ios_config[:app_identifier], - api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] + api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY], + version: ios_config[:version_number] ) increment_build_number( @@ -508,9 +527,10 @@ platform :ios do version_number: ios_config[:version_number] ) - latest_build_number = latest_testflight_build_number( + latest_build_number = app_store_build_number( app_identifier: options[:app_identifier] || ios_config[:app_identifier], - api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY] + api_key: Actions.lane_context[SharedValues::APP_STORE_CONNECT_API_KEY], + version: ios_config[:version_number] ) increment_build_number( diff --git a/fastlane/report.xml b/fastlane/report.xml index bc70b5e0..a2f1798b 100644 --- a/fastlane/report.xml +++ b/fastlane/report.xml @@ -5,72 +5,87 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + +