mirror of
https://github.com/openMF/mobile-wallet.git
synced 2026-02-06 09:37:24 +00:00
misc: optimize slow cmp_shared build step in CI (#1904)
This commit is contained in:
parent
c8e1d1ad67
commit
e8b7c94565
17
.github/ci-gradle.properties
vendored
Normal file
17
.github/ci-gradle.properties
vendored
Normal file
@ -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
|
||||
@ -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 }}
|
||||
|
||||
2
.github/workflows/pr-check.yml
vendored
2
.github/workflows/pr-check.yml
vendored
@ -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
|
||||
|
||||
1
Gemfile
1
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)
|
||||
80
Gemfile.lock
80
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
|
||||
|
||||
@ -13,9 +13,9 @@ internal fun Project.configureKotlinMultiplatform() {
|
||||
|
||||
jvm("desktop")
|
||||
androidTarget()
|
||||
iosArm64()
|
||||
iosSimulatorArm64()
|
||||
iosX64()
|
||||
iosArm64()
|
||||
js(IR) {
|
||||
this.nodejs()
|
||||
binaries.executable()
|
||||
|
||||
@ -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'
|
||||
|
||||
@ -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'
|
||||
|
||||
# Native Firebase iOS Pods required by firebase-kotlin-sdk
|
||||
pod 'FirebaseCore'
|
||||
pod 'FirebaseAnalytics'
|
||||
pod 'FirebaseCrashlytics'
|
||||
end
|
||||
|
||||
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
|
||||
16
cmp-ios/Podfile.lock
Normal file
16
cmp-ios/Podfile.lock
Normal file
@ -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
|
||||
@ -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";
|
||||
};
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>cmp-ios.xcscheme_^#shared#^_</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
10
cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata
generated
Normal file
10
cmp-ios/iosApp.xcworkspace/contents.xcworkspacedata
generated
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:iosApp.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:Pods/Pods.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict />
|
||||
</plist>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 51 KiB |
@ -19,7 +19,7 @@
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<string>6</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"
|
||||
}
|
||||
|
||||
@ -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(
|
||||
|
||||
@ -5,72 +5,87 @@
|
||||
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="00: default_platform" time="0.000168">
|
||||
<testcase classname="fastlane.lanes" name="00: default_platform" time="0.001053">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="01: Switch to ios increment_version lane" time="0.000156">
|
||||
<testcase classname="fastlane.lanes" name="01: Switch to ios increment_version lane" time="0.00043">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="02: firebase_app_distribution_get_latest_release" time="1.487805">
|
||||
<testcase classname="fastlane.lanes" name="02: firebase_app_distribution_get_latest_release" time="1.157779">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="03: Switch to ios build_signed_ios lane" time="0.000382">
|
||||
<testcase classname="fastlane.lanes" name="03: increment_build_number" time="0.848547">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="04: Switch to ios setup_ci_if_needed lane" time="0.000269">
|
||||
<testcase classname="fastlane.lanes" name="04: Switch to ios build_signed_ios lane" time="0.000849">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="05: Switch to ios load_api_key lane" time="0.000286">
|
||||
<testcase classname="fastlane.lanes" name="05: Switch to ios setup_ci_if_needed lane" time="0.000275">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="06: app_store_connect_api_key" time="0.010104">
|
||||
<testcase classname="fastlane.lanes" name="06: Switch to ios load_api_key lane" time="0.000238">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="07: Switch to ios fetch_certificates_with_match lane" time="0.000295">
|
||||
<testcase classname="fastlane.lanes" name="07: app_store_connect_api_key" time="0.019969">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="08: match" time="6.779149">
|
||||
<testcase classname="fastlane.lanes" name="08: Switch to ios fetch_certificates_with_match lane" time="0.000275">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="09: Switch to ios build_ios_project lane" time="0.000162">
|
||||
<testcase classname="fastlane.lanes" name="09: match" time="4.097984">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="10: build_ios_app" time="1599.756975">
|
||||
<testcase classname="fastlane.lanes" name="10: Switch to ios build_ios_project lane" time="0.000169">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="11: Switch to ios generateReleaseNote lane" time="0.000179">
|
||||
<testcase classname="fastlane.lanes" name="11: cocoapods" time="7.410226">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="12: changelog_from_git_commits" time="0.018834">
|
||||
<testcase classname="fastlane.lanes" name="12: update_code_signing_settings" time="0.736504">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="13: firebase_app_distribution" time="222.652332">
|
||||
<testcase classname="fastlane.lanes" name="13: build_ios_app" time="68.8691">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="14: Switch to ios generateReleaseNote lane" time="0.001172">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="15: changelog_from_git_commits" time="0.021015">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
<testcase classname="fastlane.lanes" name="16: firebase_app_distribution" time="49.270173">
|
||||
|
||||
</testcase>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user