diff --git a/.gitignore b/.gitignore
index 510626127..829a53440 100644
--- a/.gitignore
+++ b/.gitignore
@@ -21,6 +21,14 @@ bin/
gen/
out/
build/
+.externalNativeBuild
+.cxx
+iosApp/Podfile.lock
+iosApp/Pods/*
+iosApp/iosApp.xcworkspace/*
+iosApp/iosApp.xcodeproj/*
+!iosApp/iosApp.xcodeproj/project.pbxproj
+mifospay-shared/mifospay-shared.podspec
# Eclipse project files
.classpath
diff --git a/.run/mifos-ios.run.xml b/.run/mifos-ios.run.xml
new file mode 100644
index 000000000..85ce3840b
--- /dev/null
+++ b/.run/mifos-ios.run.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.run/mifospay-android.run.xml b/.run/mifospay-android.run.xml
index 2b81165ce..0ec6fa917 100644
--- a/.run/mifospay-android.run.xml
+++ b/.run/mifospay-android.run.xml
@@ -1,6 +1,5 @@
-
@@ -12,8 +11,6 @@
-
-
diff --git a/build-logic/convention/src/main/kotlin/org/mifospay/Detekt.kt b/build-logic/convention/src/main/kotlin/org/mifospay/Detekt.kt
index 1059d2da3..4454b84fe 100644
--- a/build-logic/convention/src/main/kotlin/org/mifospay/Detekt.kt
+++ b/build-logic/convention/src/main/kotlin/org/mifospay/Detekt.kt
@@ -8,6 +8,7 @@ import org.gradle.kotlin.dsl.named
internal fun Project.configureDetekt(extension: DetektExtension) = extension.apply {
tasks.named("detekt") {
+ jvmTarget = "17"
reports {
xml.required.set(true)
html.required.set(true)
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5b085294a..edb6d8815 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,7 +1,6 @@
-#Fri Mar 11 18:59:41 IST 2022
+#Sat Nov 23 22:26:32 IST 2024
distributionBase=GRADLE_USER_HOME
-# When updating gradle version don't forget to update in $Dockerfile
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
distributionPath=wrapper/dists
-zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/mifospay-ios/Configuration/Config.xcconfig b/mifospay-ios/Configuration/Config.xcconfig
new file mode 100644
index 000000000..2cee4628d
--- /dev/null
+++ b/mifospay-ios/Configuration/Config.xcconfig
@@ -0,0 +1,3 @@
+TEAM_ID=
+BUNDLE_ID=org.mifospay
+APP_NAME=MifosPay
diff --git a/mifospay-ios/iosApp.xcodeproj/project.pbxproj b/mifospay-ios/iosApp.xcodeproj/project.pbxproj
index f20cd9102..7ab73fc89 100644
--- a/mifospay-ios/iosApp.xcodeproj/project.pbxproj
+++ b/mifospay-ios/iosApp.xcodeproj/project.pbxproj
@@ -7,22 +7,24 @@
objects = {
/* Begin PBXBuildFile section */
- 189117BD2C6CC76200DABAA8 /* iosAppApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 189117BC2C6CC76200DABAA8 /* iosAppApp.swift */; };
- 189117BF2C6CC76200DABAA8 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 189117BE2C6CC76200DABAA8 /* ContentView.swift */; };
- 189117C12C6CC76400DABAA8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 189117C02C6CC76400DABAA8 /* Assets.xcassets */; };
- 189117C42C6CC76400DABAA8 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 189117C32C6CC76400DABAA8 /* Preview Assets.xcassets */; };
+ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557BA273AAA24004C7B11 /* Assets.xcassets */; };
+ 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */; };
+ 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2152FB032600AC8F00CF470E /* iOSApp.swift */; };
+ 7555FF83242A565900829871 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7555FF82242A565900829871 /* ContentView.swift */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
- 189117B92C6CC76200DABAA8 /* iosApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iosApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 189117BC2C6CC76200DABAA8 /* iosAppApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iosAppApp.swift; sourceTree = ""; };
- 189117BE2C6CC76200DABAA8 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
- 189117C02C6CC76400DABAA8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
- 189117C32C6CC76400DABAA8 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
+ 058557BA273AAA24004C7B11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
+ 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; };
+ 2152FB032600AC8F00CF470E /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; };
+ 7555FF7B242A565900829871 /* MifosPay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MifosPay.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 7555FF82242A565900829871 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
+ 7555FF8C242A565B00829871 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ AB3632DC29227652001CCB65 /* Config.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
- 189117B62C6CC76200DABAA8 /* Frameworks */ = {
+ B92378962B6B1156000C7307 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -32,78 +34,99 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 189117B02C6CC76200DABAA8 = {
+ 058557D7273AAEEB004C7B11 /* Preview Content */ = {
isa = PBXGroup;
children = (
- 189117BB2C6CC76200DABAA8 /* iosApp */,
- 189117BA2C6CC76200DABAA8 /* Products */,
+ 058557D8273AAEEB004C7B11 /* Preview Assets.xcassets */,
+ );
+ path = "Preview Content";
+ sourceTree = "";
+ };
+ 42799AB246E5F90AF97AA0EF /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = Frameworks;
+ sourceTree = "";
+ };
+ 7555FF72242A565900829871 = {
+ isa = PBXGroup;
+ children = (
+ AB1DB47929225F7C00F7AF9C /* Configuration */,
+ 7555FF7D242A565900829871 /* iosApp */,
+ 7555FF7C242A565900829871 /* Products */,
+ 42799AB246E5F90AF97AA0EF /* Frameworks */,
);
sourceTree = "";
};
- 189117BA2C6CC76200DABAA8 /* Products */ = {
+ 7555FF7C242A565900829871 /* Products */ = {
isa = PBXGroup;
children = (
- 189117B92C6CC76200DABAA8 /* iosApp.app */,
+ 7555FF7B242A565900829871 /* MifosPay.app */,
);
name = Products;
sourceTree = "";
};
- 189117BB2C6CC76200DABAA8 /* iosApp */ = {
+ 7555FF7D242A565900829871 /* iosApp */ = {
isa = PBXGroup;
children = (
- 189117BC2C6CC76200DABAA8 /* iosAppApp.swift */,
- 189117BE2C6CC76200DABAA8 /* ContentView.swift */,
- 189117C02C6CC76400DABAA8 /* Assets.xcassets */,
- 189117C22C6CC76400DABAA8 /* Preview Content */,
+ 058557BA273AAA24004C7B11 /* Assets.xcassets */,
+ 7555FF82242A565900829871 /* ContentView.swift */,
+ 7555FF8C242A565B00829871 /* Info.plist */,
+ 2152FB032600AC8F00CF470E /* iOSApp.swift */,
+ 058557D7273AAEEB004C7B11 /* Preview Content */,
);
path = iosApp;
sourceTree = "";
};
- 189117C22C6CC76400DABAA8 /* Preview Content */ = {
+ AB1DB47929225F7C00F7AF9C /* Configuration */ = {
isa = PBXGroup;
children = (
- 189117C32C6CC76400DABAA8 /* Preview Assets.xcassets */,
+ AB3632DC29227652001CCB65 /* Config.xcconfig */,
);
- path = "Preview Content";
+ path = Configuration;
sourceTree = "";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
- 189117B82C6CC76200DABAA8 /* iosApp */ = {
+ 7555FF7A242A565900829871 /* iosApp */ = {
isa = PBXNativeTarget;
- buildConfigurationList = 189117C72C6CC76400DABAA8 /* Build configuration list for PBXNativeTarget "iosApp" */;
+ buildConfigurationList = 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */;
buildPhases = (
- 189117CA2C6CC79C00DABAA8 /* ShellScript */,
- 189117B52C6CC76200DABAA8 /* Sources */,
- 189117B62C6CC76200DABAA8 /* Frameworks */,
- 189117B72C6CC76200DABAA8 /* Resources */,
+ F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */,
+ 7555FF77242A565900829871 /* Sources */,
+ B92378962B6B1156000C7307 /* Frameworks */,
+ 7555FF79242A565900829871 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = iosApp;
+ packageProductDependencies = (
+ );
productName = iosApp;
- productReference = 189117B92C6CC76200DABAA8 /* iosApp.app */;
+ productReference = 7555FF7B242A565900829871 /* MifosPay.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
- 189117B12C6CC76200DABAA8 /* Project object */ = {
+ 7555FF73242A565900829871 /* Project object */ = {
isa = PBXProject;
attributes = {
- BuildIndependentTargetsInParallel = 1;
- LastSwiftUpdateCheck = 1530;
- LastUpgradeCheck = 1530;
+ BuildIndependentTargetsInParallel = YES;
+ LastSwiftUpdateCheck = 1130;
+ LastUpgradeCheck = 1610;
+ ORGANIZATIONNAME = orgName;
TargetAttributes = {
- 189117B82C6CC76200DABAA8 = {
- CreatedOnToolsVersion = 15.3;
+ 7555FF7A242A565900829871 = {
+ CreatedOnToolsVersion = 11.3.1;
};
};
};
- buildConfigurationList = 189117B42C6CC76200DABAA8 /* Build configuration list for PBXProject "iosApp" */;
+ buildConfigurationList = 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */;
compatibilityVersion = "Xcode 14.0";
developmentRegion = en;
hasScannedForEncodings = 0;
@@ -111,30 +134,32 @@
en,
Base,
);
- mainGroup = 189117B02C6CC76200DABAA8;
- productRefGroup = 189117BA2C6CC76200DABAA8 /* Products */;
+ mainGroup = 7555FF72242A565900829871;
+ packageReferences = (
+ );
+ productRefGroup = 7555FF7C242A565900829871 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
- 189117B82C6CC76200DABAA8 /* iosApp */,
+ 7555FF7A242A565900829871 /* iosApp */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
- 189117B72C6CC76200DABAA8 /* Resources */ = {
+ 7555FF79242A565900829871 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 189117C42C6CC76400DABAA8 /* Preview Assets.xcassets in Resources */,
- 189117C12C6CC76400DABAA8 /* Assets.xcassets in Resources */,
+ 058557D9273AAEEB004C7B11 /* Preview Assets.xcassets in Resources */,
+ 058557BB273AAA24004C7B11 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 189117CA2C6CC79C00DABAA8 /* ShellScript */ = {
+ F36B1CEB2AD83DDC00CB74D5 /* Compile Kotlin Framework */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -143,37 +168,40 @@
);
inputPaths = (
);
+ name = "Compile Kotlin Framework";
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "# Type a script or drag a script file from your workspace to insert its path.\ncd \"$SRCROOT/..\"\n./gradlew :shared:embedAndSignAppleFrameworkForXcode\n";
+ shellScript = "if [ \"YES\" = \"$OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED\" ]; then\n echo \"Skipping Gradle build task invocation due to OVERRIDE_KOTLIN_BUILD_IDE_SUPPORTED environment variable set to \\\"YES\\\"\"\n exit 0\nfi\ncd \"$SRCROOT/..\"\n./gradlew :mifospay-shared:embedAndSignAppleFrameworkForXcode\n";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
- 189117B52C6CC76200DABAA8 /* Sources */ = {
+ 7555FF77242A565900829871 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 189117BF2C6CC76200DABAA8 /* ContentView.swift in Sources */,
- 189117BD2C6CC76200DABAA8 /* iosAppApp.swift in Sources */,
+ 2152FB042600AC8F00CF470E /* iOSApp.swift in Sources */,
+ 7555FF83242A565900829871 /* ContentView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
- 189117C52C6CC76400DABAA8 /* Debug */ = {
+ 7555FFA3242A565B00829871 /* Debug */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
@@ -200,11 +228,11 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = YES;
- GCC_C_LANGUAGE_STANDARD = gnu17;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
@@ -218,25 +246,26 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 17.4;
- LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.3;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
- SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
+ SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
- 189117C62C6CC76400DABAA8 /* Release */ = {
+ 7555FFA4242A565B00829871 /* Release */ = {
isa = XCBuildConfiguration;
+ baseConfigurationReference = AB3632DC29227652001CCB65 /* Config.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
@@ -266,8 +295,8 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = YES;
- GCC_C_LANGUAGE_STANDARD = gnu17;
+ ENABLE_USER_SCRIPT_SANDBOXING = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
@@ -275,83 +304,71 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 17.4;
- LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 15.3;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
- 189117C82C6CC76400DABAA8 /* Debug */ = {
+ 7555FFA6242A565B00829871 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
- DEVELOPMENT_TEAM = Z52R6G56V8;
+ DEVELOPMENT_TEAM = "${TEAM_ID}";
ENABLE_PREVIEWS = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)";
- GENERATE_INFOPLIST_FILE = YES;
- INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
- INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
- INFOPLIST_KEY_UILaunchScreen_Generation = YES;
- INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
- INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
- LD_RUNPATH_SEARCH_PATHS = (
+ FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
- "@executable_path/Frameworks",
+ "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
- MARKETING_VERSION = 1.0;
- OTHER_LDFLAGS = (
+ INFOPLIST_FILE = iosApp/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = "Mifos Pay";
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
+ IPHONEOS_DEPLOYMENT_TARGET = 15.3;
+ LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
- "-framework",
- shared,
+ "@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = org.mifospay.iosApp;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_EMIT_LOC_STRINGS = YES;
+ MARKETING_VERSION = 1.0.0;
+ PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}";
+ PRODUCT_NAME = "${APP_NAME}";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
- 189117C92C6CC76400DABAA8 /* Release */ = {
+ 7555FFA7242A565B00829871 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
+ CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"iosApp/Preview Content\"";
- DEVELOPMENT_TEAM = Z52R6G56V8;
+ DEVELOPMENT_TEAM = "${TEAM_ID}";
ENABLE_PREVIEWS = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
- FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)";
- GENERATE_INFOPLIST_FILE = YES;
- INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
- INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
- INFOPLIST_KEY_UILaunchScreen_Generation = YES;
- INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
- INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
- LD_RUNPATH_SEARCH_PATHS = (
+ FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
- "@executable_path/Frameworks",
+ "$(SRCROOT)/../shared/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)\n$(SRCROOT)/../composeApp/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)",
);
- MARKETING_VERSION = 1.0;
- OTHER_LDFLAGS = (
+ INFOPLIST_FILE = iosApp/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = "Mifos Pay";
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.finance";
+ IPHONEOS_DEPLOYMENT_TARGET = 15.3;
+ LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
- "-framework",
- shared,
+ "@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = org.mifospay.iosApp;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SWIFT_EMIT_LOC_STRINGS = YES;
+ MARKETING_VERSION = 1.0.0;
+ PRODUCT_BUNDLE_IDENTIFIER = "${BUNDLE_ID}${TEAM_ID}";
+ PRODUCT_NAME = "${APP_NAME}";
+ PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
@@ -360,25 +377,25 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
- 189117B42C6CC76200DABAA8 /* Build configuration list for PBXProject "iosApp" */ = {
+ 7555FF76242A565900829871 /* Build configuration list for PBXProject "iosApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 189117C52C6CC76400DABAA8 /* Debug */,
- 189117C62C6CC76400DABAA8 /* Release */,
+ 7555FFA3242A565B00829871 /* Debug */,
+ 7555FFA4242A565B00829871 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
- 189117C72C6CC76400DABAA8 /* Build configuration list for PBXNativeTarget "iosApp" */ = {
+ 7555FFA5242A565B00829871 /* Build configuration list for PBXNativeTarget "iosApp" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- 189117C82C6CC76400DABAA8 /* Debug */,
- 189117C92C6CC76400DABAA8 /* Release */,
+ 7555FFA6242A565B00829871 /* Debug */,
+ 7555FFA7242A565B00829871 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
- rootObject = 189117B12C6CC76200DABAA8 /* Project object */;
+ rootObject = 7555FF73242A565900829871 /* Project object */;
}
diff --git a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003..000000000
--- a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate b/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100644
index 8eec4150c..000000000
Binary files a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist b/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
deleted file mode 100644
index ee3458dd7..000000000
--- a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/kapilmaurya.xcuserdatad/UserInterfaceState.xcuserstate b/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/kapilmaurya.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 000000000..21507917e
Binary files /dev/null and b/mifospay-ios/iosApp.xcodeproj/project.xcworkspace/xcuserdata/kapilmaurya.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/iosApp.xcscheme b/mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/iosApp.xcscheme
deleted file mode 100644
index 21963cb20..000000000
--- a/mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/iosApp.xcscheme
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist b/mifospay-ios/iosApp.xcodeproj/xcuserdata/kapilmaurya.xcuserdatad/xcschemes/xcschememanagement.plist
similarity index 87%
rename from mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
rename to mifospay-ios/iosApp.xcodeproj/xcuserdata/kapilmaurya.xcuserdatad/xcschemes/xcschememanagement.plist
index fa59f97d5..56b5955f8 100644
--- a/mifospay-ios/iosApp.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/mifospay-ios/iosApp.xcodeproj/xcuserdata/kapilmaurya.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -4,7 +4,7 @@
SchemeUserState
- iosApp.xcscheme
+ iosApp.xcscheme_^#shared#^_
orderHint
0
diff --git a/mifospay-ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json b/mifospay-ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json
index eb8789700..ee7e3ca03 100644
--- a/mifospay-ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json
+++ b/mifospay-ios/iosApp/Assets.xcassets/AccentColor.colorset/Contents.json
@@ -8,4 +8,4 @@
"author" : "xcode",
"version" : 1
}
-}
+}
\ No newline at end of file
diff --git a/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json
index 13613e3ee..415ecf73c 100644
--- a/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json
+++ b/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -1,6 +1,7 @@
{
"images" : [
{
+ "filename" : "mifospay_logo_1024.png",
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
diff --git a/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/mifospay_logo_1024.png b/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/mifospay_logo_1024.png
new file mode 100644
index 000000000..952056c20
Binary files /dev/null and b/mifospay-ios/iosApp/Assets.xcassets/AppIcon.appiconset/mifospay_logo_1024.png differ
diff --git a/mifospay-ios/iosApp/ContentView.swift b/mifospay-ios/iosApp/ContentView.swift
index 1942522f0..c44e50268 100644
--- a/mifospay-ios/iosApp/ContentView.swift
+++ b/mifospay-ios/iosApp/ContentView.swift
@@ -12,6 +12,10 @@ struct ComposeView: UIViewControllerRepresentable {
struct ContentView: View {
var body: some View {
- ComposeView().ignoresSafeArea(.all)
+ ComposeView()
+ .ignoresSafeArea(.keyboard) // Compose has own keyboard handler
}
-}
\ No newline at end of file
+}
+
+
+
diff --git a/mifospay-ios/iosApp/Info.plist b/mifospay-ios/iosApp/Info.plist
new file mode 100644
index 000000000..ed1e60f8b
--- /dev/null
+++ b/mifospay-ios/iosApp/Info.plist
@@ -0,0 +1,57 @@
+
+
+
+
+ CFBundleDevelopmentRegion
+ $(DEVELOPMENT_LANGUAGE)
+ CFBundleExecutable
+ $(EXECUTABLE_NAME)
+ CFBundleIdentifier
+ $(PRODUCT_BUNDLE_IDENTIFIER)
+ CFBundleInfoDictionaryVersion
+ 6.0
+ CFBundleName
+ $(PRODUCT_NAME)
+ CFBundlePackageType
+ $(PRODUCT_BUNDLE_PACKAGE_TYPE)
+ CFBundleShortVersionString
+ 1.0
+ CFBundleVersion
+ 1
+ LSRequiresIPhoneOS
+
+ CADisableMinimumFrameDurationOnPhone
+
+ NSPhotoLibraryAddUsageDescription
+ Allow access to add photos to your library so you can save artworks directly to your device and view them offline.
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+
+ UIApplicationSceneManifest
+
+ UIApplicationSupportsMultipleScenes
+
+
+ UILaunchScreen
+
+ UIRequiredDeviceCapabilities
+
+ armv7
+
+ UISupportedInterfaceOrientations
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+
+
diff --git a/mifospay-ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json b/mifospay-ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json
index 73c00596a..4aa7c5350 100644
--- a/mifospay-ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json
+++ b/mifospay-ios/iosApp/Preview Content/Preview Assets.xcassets/Contents.json
@@ -3,4 +3,4 @@
"author" : "xcode",
"version" : 1
}
-}
+}
\ No newline at end of file
diff --git a/mifospay-ios/iosApp/iosAppApp.swift b/mifospay-ios/iosApp/iOSApp.swift
similarity index 81%
rename from mifospay-ios/iosApp/iosAppApp.swift
rename to mifospay-ios/iosApp/iOSApp.swift
index 1c1def9d3..d83dca611 100644
--- a/mifospay-ios/iosApp/iosAppApp.swift
+++ b/mifospay-ios/iosApp/iOSApp.swift
@@ -1,10 +1,10 @@
import SwiftUI
@main
-struct iosAppApp: App {
+struct iOSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
-}
+}
\ No newline at end of file
diff --git a/mifospay-shared/build.gradle.kts b/mifospay-shared/build.gradle.kts
index e006ee101..b160d4f23 100644
--- a/mifospay-shared/build.gradle.kts
+++ b/mifospay-shared/build.gradle.kts
@@ -18,6 +18,18 @@ plugins {
}
kotlin {
+ listOf(
+ iosX64(),
+ iosArm64(),
+ iosSimulatorArm64()
+ ).forEach { iosTarget ->
+ iosTarget.binaries.framework {
+ baseName = "ComposeApp"
+ isStatic = true
+ optimized = true
+ }
+ }
+
sourceSets {
commonMain.dependencies {
implementation(projects.core.domain)
diff --git a/mifospay-shared/src/iosMain/kotlin/MifosViewController.kt b/mifospay-shared/src/iosMain/kotlin/MifosViewController.kt
new file mode 100644
index 000000000..de435286f
--- /dev/null
+++ b/mifospay-shared/src/iosMain/kotlin/MifosViewController.kt
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2024 Mifos Initiative
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/.
+ *
+ * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
+ */
+import androidx.compose.ui.window.ComposeUIViewController
+import org.mifospay.shared.MifosPaySharedApp
+import org.mifospay.shared.di.initKoin
+
+@Suppress("ktlint:standard:function-naming")
+fun MifosViewController() = ComposeUIViewController(
+ configure = {
+ initKoin()
+ },
+) {
+ MifosPaySharedApp()
+}