From ef181bcaa158507fd296ead69bed73bdee736b62 Mon Sep 17 00:00:00 2001 From: John O'Reilly Date: Fri, 28 Jul 2023 19:02:26 +0100 Subject: [PATCH] remove cocoapods + fix for XCode 15 beta --- .github/workflows/android.yml | 2 - .github/workflows/ios.yml | 4 +- common/build.gradle.kts | 29 +- .../BikeShare.xcodeproj/project.pbxproj | 95 +- .../contents.xcworkspacedata | 2 +- .../xcshareddata/swiftpm/Package.resolved | 3 +- .../UserInterfaceState.xcuserstate | Bin 17475 -> 24397 bytes .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - .../xcshareddata/swiftpm/Package.resolved | 13 - ios/BikeShare/Podfile | 5 - ios/BikeShare/Podfile.lock | 27 - .../Public/Introspect/Introspect-umbrella.h | 1 - .../Public/Introspect/Introspect.modulemap | 1 - .../SwiftUIRefresh/SwiftUIRefresh-umbrella.h | 1 - .../SwiftUIRefresh/SwiftUIRefresh.modulemap | 1 - .../Introspect/AppKitIntrospectionView.swift | 68 -- .../Introspect/Introspect/Introspect.swift | 294 ------ .../Introspect/UIKitIntrospectionView.swift | 64 -- .../UIKitIntrospectionViewController.swift | 55 -- .../Introspect/ViewExtensions.swift | 197 ---- ios/BikeShare/Pods/Introspect/LICENSE | 7 - ios/BikeShare/Pods/Introspect/README.md | 180 ---- .../KMMViewModelCore/KMMViewModel.swift | 15 - .../ObservableViewModel.swift | 120 --- ios/BikeShare/Pods/KMMViewModelCore/LICENSE | 21 - ios/BikeShare/Pods/KMMViewModelCore/README.md | 145 --- .../KMMVMViewModelScope.h | 21 - .../KMMViewModelCoreObjC.h | 8 - .../KMMViewModelCoreObjC.m | 1 - .../Pods/KMMViewModelCoreObjC/LICENSE | 21 - .../Pods/KMMViewModelCoreObjC/README.md | 145 --- .../EnvironmentViewModel.swift | 42 - .../ObservableViewModelProjection.swift | 31 - .../ObservedViewModel.swift | 38 - .../KMMViewModelSwiftUI/StateViewModel.swift | 32 - .../Pods/KMMViewModelSwiftUI/LICENSE | 21 - .../Pods/KMMViewModelSwiftUI/README.md | 145 --- .../Pods/Local Podspecs/common.podspec.json | 31 - ios/BikeShare/Pods/Manifest.lock | 27 - .../Pods/Pods.xcodeproj/project.pbxproj | 889 ------------------ .../xcschemes/Pods-BikeShare.xcscheme | 58 -- .../xcschemes/xcschememanagement.plist | 31 - ios/BikeShare/Pods/SwiftUIRefresh/LICENSE | 19 - ios/BikeShare/Pods/SwiftUIRefresh/README.md | 56 -- .../Sources/PullToRefresh.swift | 93 -- .../Introspect/Introspect-dummy.m | 5 - .../Introspect/Introspect-prefix.pch | 12 - .../Introspect/Introspect-umbrella.h | 16 - .../Introspect/Introspect.debug.xcconfig | 13 - .../Introspect/Introspect.modulemap | 6 - .../Introspect/Introspect.release.xcconfig | 13 - .../Pods-BikeShare-acknowledgements.markdown | 35 - .../Pods-BikeShare-acknowledgements.plist | 73 -- .../Pods-BikeShare/Pods-BikeShare-dummy.m | 5 - ...re-frameworks-Debug-input-files.xcfilelist | 2 - ...e-frameworks-Debug-output-files.xcfilelist | 1 - ...-frameworks-Release-input-files.xcfilelist | 2 - ...frameworks-Release-output-files.xcfilelist | 1 - .../Pods-BikeShare-frameworks.sh | 186 ---- .../Pods-BikeShare/Pods-BikeShare-umbrella.h | 16 - .../Pods-BikeShare.debug.xcconfig | 16 - .../Pods-BikeShare/Pods-BikeShare.modulemap | 6 - .../Pods-BikeShare.release.xcconfig | 16 - .../SwiftUIRefresh/SwiftUIRefresh-dummy.m | 5 - .../SwiftUIRefresh/SwiftUIRefresh-prefix.pch | 12 - .../SwiftUIRefresh/SwiftUIRefresh-umbrella.h | 16 - .../SwiftUIRefresh.debug.xcconfig | 15 - .../SwiftUIRefresh/SwiftUIRefresh.modulemap | 6 - .../SwiftUIRefresh.release.xcconfig | 15 - .../common-copy-dsyms-input-files.xcfilelist | 1 - .../common-copy-dsyms-output-files.xcfilelist | 1 - .../common/common-copy-dsyms.sh | 86 -- .../common/common.debug.xcconfig | 15 - .../common/common.release.xcconfig | 15 - 75 files changed, 46 insertions(+), 3642 deletions(-) delete mode 100644 ios/BikeShare/BikeShare.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/BikeShare/BikeShare.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist delete mode 100644 ios/BikeShare/BikeShare.xcworkspace/xcshareddata/swiftpm/Package.resolved delete mode 100644 ios/BikeShare/Podfile delete mode 100644 ios/BikeShare/Podfile.lock delete mode 120000 ios/BikeShare/Pods/Headers/Public/Introspect/Introspect-umbrella.h delete mode 120000 ios/BikeShare/Pods/Headers/Public/Introspect/Introspect.modulemap delete mode 120000 ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h delete mode 120000 ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap delete mode 100644 ios/BikeShare/Pods/Introspect/Introspect/AppKitIntrospectionView.swift delete mode 100644 ios/BikeShare/Pods/Introspect/Introspect/Introspect.swift delete mode 100644 ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionView.swift delete mode 100644 ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionViewController.swift delete mode 100644 ios/BikeShare/Pods/Introspect/Introspect/ViewExtensions.swift delete mode 100644 ios/BikeShare/Pods/Introspect/LICENSE delete mode 100644 ios/BikeShare/Pods/Introspect/README.md delete mode 100644 ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/KMMViewModel.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/ObservableViewModel.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelCore/LICENSE delete mode 100644 ios/BikeShare/Pods/KMMViewModelCore/README.md delete mode 100644 ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMVMViewModelScope.h delete mode 100644 ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.h delete mode 100644 ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.m delete mode 100644 ios/BikeShare/Pods/KMMViewModelCoreObjC/LICENSE delete mode 100644 ios/BikeShare/Pods/KMMViewModelCoreObjC/README.md delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/EnvironmentViewModel.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservableViewModelProjection.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservedViewModel.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/StateViewModel.swift delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/LICENSE delete mode 100644 ios/BikeShare/Pods/KMMViewModelSwiftUI/README.md delete mode 100644 ios/BikeShare/Pods/Local Podspecs/common.podspec.json delete mode 100644 ios/BikeShare/Pods/Manifest.lock delete mode 100644 ios/BikeShare/Pods/Pods.xcodeproj/project.pbxproj delete mode 100644 ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/Pods-BikeShare.xcscheme delete mode 100644 ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 ios/BikeShare/Pods/SwiftUIRefresh/LICENSE delete mode 100644 ios/BikeShare/Pods/SwiftUIRefresh/README.md delete mode 100644 ios/BikeShare/Pods/SwiftUIRefresh/Sources/PullToRefresh.swift delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-dummy.m delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-prefix.pch delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-umbrella.h delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.debug.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.modulemap delete mode 100644 ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.release.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.markdown delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.plist delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-dummy.m delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-input-files.xcfilelist delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-output-files.xcfilelist delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-input-files.xcfilelist delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-output-files.xcfilelist delete mode 100755 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-umbrella.h delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.debug.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap delete mode 100644 ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.release.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-dummy.m delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-umbrella.h delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.debug.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.modulemap delete mode 100644 ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.release.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-input-files.xcfilelist delete mode 100644 ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-output-files.xcfilelist delete mode 100755 ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms.sh delete mode 100644 ios/BikeShare/Pods/Target Support Files/common/common.debug.xcconfig delete mode 100644 ios/BikeShare/Pods/Target Support Files/common/common.release.xcconfig diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index c267ab0a..10d63257 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -18,5 +18,3 @@ jobs: run: ./gradlew assembleDebug - name: Build iOS shared code run: ./gradlew :common:compileKotlinIOS - - name: Build macOS shared code - run: ./gradlew :common:compileKotlinMacOS diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 392c02ea..2d65b00b 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -19,9 +19,7 @@ jobs: java-version: 17 - name: Build iOS app - run: xcodebuild -workspace ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace -configuration Debug -scheme BikeShare -sdk iphonesimulator - - + run: xcodebuild -workspace ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace -configuration Debug -scheme BikeShare -sdk iphoneos -destination name='iPhone 8' build diff --git a/common/build.gradle.kts b/common/build.gradle.kts index b3b3a9f2..59e41b5f 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -3,7 +3,6 @@ plugins { id("kotlinx-serialization") id("com.android.library") id("io.realm.kotlin") - id("org.jetbrains.kotlin.native.cocoapods") id("com.google.devtools.ksp") id("com.rickclephas.kmp.nativecoroutines") id("com.chromaticnoise.multiplatform-swiftpackage") version "2.0.3" @@ -36,21 +35,23 @@ kotlin { System.getenv("NATIVE_ARCH")?.startsWith("arm") == true -> ::iosSimulatorArm64 // available to KT 1.5.30 else -> ::iosX64 } - iosTarget("iOS") {} + iosTarget("iOS") { - macosX64("macOS") - androidTarget() - jvm() - } + binaries.framework { + baseName = "common" + // re. https://youtrack.jetbrains.com/issue/KT-60230/Native-unknown-options-iossimulatorversionmin-sdkversion-with-Xcode-15-beta-3 + // due to be fixed in Kotlin 1.9.10 + if (System.getenv("XCODE_VERSION_MAJOR") == "1500") { + linkerOpts += "-ld64" + } + } + } - cocoapods { - // Configure fields required by CocoaPods. - summary = "BikeShare common module" - homepage = "homepage placeholder" + androidTarget() + jvm() } - sourceSets { val commonMain by getting { dependencies { @@ -94,12 +95,6 @@ kotlin { val iOSTest by getting { } - val macOSMain by getting { - dependencies { - implementation(Deps.Ktor.clientIos) - } - } - val mobileMain by creating { dependsOn(commonMain) androidMain.dependsOn(this) diff --git a/ios/BikeShare/BikeShare.xcodeproj/project.pbxproj b/ios/BikeShare/BikeShare.xcodeproj/project.pbxproj index bbd4a822..46ab427f 100644 --- a/ios/BikeShare/BikeShare.xcodeproj/project.pbxproj +++ b/ios/BikeShare/BikeShare.xcodeproj/project.pbxproj @@ -3,12 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 52; + objectVersion = 54; objects = { /* Begin PBXBuildFile section */ - 1A444B61295DBE14004A0605 /* KMMViewModelCore in Frameworks */ = {isa = PBXBuildFile; productRef = 1A444B60295DBE14004A0605 /* KMMViewModelCore */; }; - 1A444B63295DBE14004A0605 /* KMMViewModelSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 1A444B62295DBE14004A0605 /* KMMViewModelSwiftUI */; }; + 1A16DE772A743E4C001241FA /* KMMViewModelCore in Frameworks */ = {isa = PBXBuildFile; productRef = 1A16DE762A743E4C001241FA /* KMMViewModelCore */; }; + 1A16DE792A743E4C001241FA /* KMMViewModelSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 1A16DE782A743E4C001241FA /* KMMViewModelSwiftUI */; }; 1A56764C24D351FC0047F88F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A56764B24D351FC0047F88F /* AppDelegate.swift */; }; 1A56764E24D351FC0047F88F /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A56764D24D351FC0047F88F /* SceneDelegate.swift */; }; 1A56765024D351FC0047F88F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A56764F24D351FC0047F88F /* ContentView.swift */; }; @@ -16,7 +16,6 @@ 1A56765524D351FF0047F88F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1A56765424D351FF0047F88F /* Preview Assets.xcassets */; }; 1A56765824D351FF0047F88F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 1A56765624D351FF0047F88F /* LaunchScreen.storyboard */; }; 1A59905929579788006DD8F2 /* KMMiewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A59905829579788006DD8F2 /* KMMiewModel.swift */; }; - E466735D144D5438384AFD1B /* libPods-BikeShare.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1533B9C56F40FE633B732A38 /* libPods-BikeShare.a */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -33,8 +32,6 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 14A14EEA56EA3264B7C718B5 /* Pods-BikeShareWidgetExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BikeShareWidgetExtension.release.xcconfig"; path = "Target Support Files/Pods-BikeShareWidgetExtension/Pods-BikeShareWidgetExtension.release.xcconfig"; sourceTree = ""; }; - 1533B9C56F40FE633B732A38 /* libPods-BikeShare.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BikeShare.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 1A11F7972732AE86006E20C5 /* WidgetKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WidgetKit.framework; path = System/Library/Frameworks/WidgetKit.framework; sourceTree = SDKROOT; }; 1A11F7992732AE86006E20C5 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; 1A11F79C2732AE86006E20C5 /* BikeShareWidget.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BikeShareWidget.swift; sourceTree = ""; }; @@ -49,10 +46,6 @@ 1A56765724D351FF0047F88F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 1A56765924D351FF0047F88F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 1A59905829579788006DD8F2 /* KMMiewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMMiewModel.swift; sourceTree = ""; }; - 243FA330F5FD8E9D0DEE843D /* Pods-BikeShareWidgetExtension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BikeShareWidgetExtension.debug.xcconfig"; path = "Target Support Files/Pods-BikeShareWidgetExtension/Pods-BikeShareWidgetExtension.debug.xcconfig"; sourceTree = ""; }; - 8A394810C26BD31F4E7565E6 /* libPods-BikeShareWidgetExtension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BikeShareWidgetExtension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8A8FCC3473D7601FE87B783E /* Pods-BikeShare.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BikeShare.debug.xcconfig"; path = "Target Support Files/Pods-BikeShare/Pods-BikeShare.debug.xcconfig"; sourceTree = ""; }; - DE076D81A3256E7A067D36F4 /* Pods-BikeShare.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BikeShare.release.xcconfig"; path = "Target Support Files/Pods-BikeShare/Pods-BikeShare.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -60,9 +53,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1A444B61295DBE14004A0605 /* KMMViewModelCore in Frameworks */, - 1A444B63295DBE14004A0605 /* KMMViewModelSwiftUI in Frameworks */, - E466735D144D5438384AFD1B /* libPods-BikeShare.a in Frameworks */, + 1A16DE772A743E4C001241FA /* KMMViewModelCore in Frameworks */, + 1A16DE792A743E4C001241FA /* KMMViewModelSwiftUI in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -85,7 +77,6 @@ 1A56764A24D351FC0047F88F /* BikeShare */, 1A11F79B2732AE86006E20C5 /* BikeShareWidget */, 1A56764924D351FC0047F88F /* Products */, - 2B16266B2E9C4220CA269D49 /* Pods */, 3E7F7EC3ABE0A3DAE509A197 /* Frameworks */, ); sourceTree = ""; @@ -121,24 +112,11 @@ path = "Preview Content"; sourceTree = ""; }; - 2B16266B2E9C4220CA269D49 /* Pods */ = { - isa = PBXGroup; - children = ( - 8A8FCC3473D7601FE87B783E /* Pods-BikeShare.debug.xcconfig */, - DE076D81A3256E7A067D36F4 /* Pods-BikeShare.release.xcconfig */, - 243FA330F5FD8E9D0DEE843D /* Pods-BikeShareWidgetExtension.debug.xcconfig */, - 14A14EEA56EA3264B7C718B5 /* Pods-BikeShareWidgetExtension.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; 3E7F7EC3ABE0A3DAE509A197 /* Frameworks */ = { isa = PBXGroup; children = ( - 1533B9C56F40FE633B732A38 /* libPods-BikeShare.a */, 1A11F7972732AE86006E20C5 /* WidgetKit.framework */, 1A11F7992732AE86006E20C5 /* SwiftUI.framework */, - 8A394810C26BD31F4E7565E6 /* libPods-BikeShareWidgetExtension.a */, ); name = Frameworks; sourceTree = ""; @@ -150,12 +128,11 @@ isa = PBXNativeTarget; buildConfigurationList = 1A56765C24D351FF0047F88F /* Build configuration list for PBXNativeTarget "BikeShare" */; buildPhases = ( - 9D61C20E261DD7716D4163C7 /* [CP] Check Pods Manifest.lock */, + 1AAF64D12A73FFD000257C10 /* ShellScript */, 1A56764424D351FC0047F88F /* Sources */, 1A56764524D351FC0047F88F /* Frameworks */, 1A56764624D351FC0047F88F /* Resources */, 1A11F7A42732AE87006E20C5 /* Embed App Extensions */, - ADC5F6990D65C56F0D3C4F3A /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -163,8 +140,8 @@ ); name = BikeShare; packageProductDependencies = ( - 1A444B60295DBE14004A0605 /* KMMViewModelCore */, - 1A444B62295DBE14004A0605 /* KMMViewModelSwiftUI */, + 1A16DE762A743E4C001241FA /* KMMViewModelCore */, + 1A16DE782A743E4C001241FA /* KMMViewModelSwiftUI */, ); productName = BikeShare; productReference = 1A56764824D351FC0047F88F /* BikeShare.app */; @@ -195,7 +172,7 @@ ); mainGroup = 1A56763F24D351FC0047F88F; packageReferences = ( - 1A444B5F295DBE14004A0605 /* XCRemoteSwiftPackageReference "KMM-ViewModel" */, + 1A16DE752A743E4C001241FA /* XCRemoteSwiftPackageReference "KMM-ViewModel" */, ); productRefGroup = 1A56764924D351FC0047F88F /* Products */; projectDirPath = ""; @@ -220,7 +197,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 9D61C20E261DD7716D4163C7 /* [CP] Check Pods Manifest.lock */ = { + 1AAF64D12A73FFD000257C10 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -228,36 +205,14 @@ inputFileListPaths = ( ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", ); - name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-BikeShare-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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; - }; - ADC5F6990D65C56F0D3C4F3A /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "cd \"$SRCROOT/../..\"\n./gradlew :common:embedAndSignAppleFrameworkForXcode\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -403,7 +358,6 @@ }; 1A56765D24D351FF0047F88F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8A8FCC3473D7601FE87B783E /* Pods-BikeShare.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -412,6 +366,7 @@ DEVELOPMENT_ASSET_PATHS = "\"BikeShare/Preview Content\""; DEVELOPMENT_TEAM = NT77748GS8; ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = BikeShare/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -419,6 +374,11 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + common, + ); PRODUCT_BUNDLE_IDENTIFIER = dev.johnoreilly.BikeShare; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -428,7 +388,6 @@ }; 1A56765E24D351FF0047F88F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DE076D81A3256E7A067D36F4 /* Pods-BikeShare.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -437,6 +396,7 @@ DEVELOPMENT_ASSET_PATHS = "\"BikeShare/Preview Content\""; DEVELOPMENT_TEAM = NT77748GS8; ENABLE_PREVIEWS = YES; + FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../.../common/build/xcode-frameworks/$(CONFIGURATION)/$(SDK_NAME)"; INFOPLIST_FILE = BikeShare/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 15.0; LD_RUNPATH_SEARCH_PATHS = ( @@ -444,6 +404,11 @@ "@executable_path/Frameworks", ); MARKETING_VERSION = 1.0.2; + OTHER_LDFLAGS = ( + "$(inherited)", + "-framework", + common, + ); PRODUCT_BUNDLE_IDENTIFIER = dev.johnoreilly.BikeShare; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -475,25 +440,25 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ - 1A444B5F295DBE14004A0605 /* XCRemoteSwiftPackageReference "KMM-ViewModel" */ = { + 1A16DE752A743E4C001241FA /* XCRemoteSwiftPackageReference "KMM-ViewModel" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/rickclephas/KMM-ViewModel"; requirement = { - kind = revision; - revision = 144e2f717a45afd4982d061706479dcb3746c15b; + branch = master; + kind = branch; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ - 1A444B60295DBE14004A0605 /* KMMViewModelCore */ = { + 1A16DE762A743E4C001241FA /* KMMViewModelCore */ = { isa = XCSwiftPackageProductDependency; - package = 1A444B5F295DBE14004A0605 /* XCRemoteSwiftPackageReference "KMM-ViewModel" */; + package = 1A16DE752A743E4C001241FA /* XCRemoteSwiftPackageReference "KMM-ViewModel" */; productName = KMMViewModelCore; }; - 1A444B62295DBE14004A0605 /* KMMViewModelSwiftUI */ = { + 1A16DE782A743E4C001241FA /* KMMViewModelSwiftUI */ = { isa = XCSwiftPackageProductDependency; - package = 1A444B5F295DBE14004A0605 /* XCRemoteSwiftPackageReference "KMM-ViewModel" */; + package = 1A16DE752A743E4C001241FA /* XCRemoteSwiftPackageReference "KMM-ViewModel" */; productName = KMMViewModelSwiftUI; }; /* End XCSwiftPackageProductDependency section */ diff --git a/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 2f7b7204..919434a6 100644 --- a/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 96da983a..95b65a71 100644 --- a/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -5,7 +5,8 @@ "kind" : "remoteSourceControl", "location" : "https://github.com/rickclephas/KMM-ViewModel", "state" : { - "revision" : "144e2f717a45afd4982d061706479dcb3746c15b" + "branch" : "master", + "revision" : "96f4b0a50f61f74eea6265b08a6cd3f7dc42828c" } } ], diff --git a/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcuserdata/joreilly.xcuserdatad/UserInterfaceState.xcuserstate b/ios/BikeShare/BikeShare.xcodeproj/project.xcworkspace/xcuserdata/joreilly.xcuserdatad/UserInterfaceState.xcuserstate index 842c1713311b087e8a8a810ccbc3d592a3c647b7..8ea430a5199736c6765c440d6c5d031fe7602d07 100644 GIT binary patch literal 24397 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 literal 17475 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 O?k|0+6Hr2lEB+TMJQf!K diff --git a/ios/BikeShare/BikeShare.xcworkspace/contents.xcworkspacedata b/ios/BikeShare/BikeShare.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index ec3bb523..00000000 --- a/ios/BikeShare/BikeShare.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index 96da983a..00000000 --- a/ios/BikeShare/BikeShare.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,13 +0,0 @@ -{ - "pins" : [ - { - "identity" : "kmm-viewmodel", - "kind" : "remoteSourceControl", - "location" : "https://github.com/rickclephas/KMM-ViewModel", - "state" : { - "revision" : "144e2f717a45afd4982d061706479dcb3746c15b" - } - } - ], - "version" : 2 -} diff --git a/ios/BikeShare/Podfile b/ios/BikeShare/Podfile deleted file mode 100644 index ee00b6a2..00000000 --- a/ios/BikeShare/Podfile +++ /dev/null @@ -1,5 +0,0 @@ - -target 'BikeShare' do - pod 'common', :path => '../../common' - pod "SwiftUIRefresh" -end diff --git a/ios/BikeShare/Podfile.lock b/ios/BikeShare/Podfile.lock deleted file mode 100644 index e735fcb2..00000000 --- a/ios/BikeShare/Podfile.lock +++ /dev/null @@ -1,27 +0,0 @@ -PODS: - - common (1.0) - - Introspect (0.1.3) - - SwiftUIRefresh (0.0.3): - - Introspect (~> 0.1.0) - -DEPENDENCIES: - - common (from `../../common`) - - SwiftUIRefresh - -SPEC REPOS: - trunk: - - Introspect - - SwiftUIRefresh - -EXTERNAL SOURCES: - common: - :path: "../../common" - -SPEC CHECKSUMS: - common: d0b140f126bd2692fd6aec15e2a218ec86900017 - Introspect: 2be020f30f084ada52bb4387fff83fa52c5c400e - SwiftUIRefresh: ca6ae2718d25aad5dd68bbf5d2ae36ef6ade98bf - -PODFILE CHECKSUM: b964bed147d8ebc592d449953689a09601f9c098 - -COCOAPODS: 1.12.0 diff --git a/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect-umbrella.h b/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect-umbrella.h deleted file mode 120000 index 9d2ce311..00000000 --- a/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -../../../Target Support Files/Introspect/Introspect-umbrella.h \ No newline at end of file diff --git a/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect.modulemap b/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect.modulemap deleted file mode 120000 index 0d162119..00000000 --- a/ios/BikeShare/Pods/Headers/Public/Introspect/Introspect.modulemap +++ /dev/null @@ -1 +0,0 @@ -../../../Target Support Files/Introspect/Introspect.modulemap \ No newline at end of file diff --git a/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h b/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h deleted file mode 120000 index b1c034a4..00000000 --- a/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h +++ /dev/null @@ -1 +0,0 @@ -../../../Target Support Files/SwiftUIRefresh/SwiftUIRefresh-umbrella.h \ No newline at end of file diff --git a/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap b/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap deleted file mode 120000 index 52ec35fa..00000000 --- a/ios/BikeShare/Pods/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap +++ /dev/null @@ -1 +0,0 @@ -../../../Target Support Files/SwiftUIRefresh/SwiftUIRefresh.modulemap \ No newline at end of file diff --git a/ios/BikeShare/Pods/Introspect/Introspect/AppKitIntrospectionView.swift b/ios/BikeShare/Pods/Introspect/Introspect/AppKitIntrospectionView.swift deleted file mode 100644 index d2ace3d2..00000000 --- a/ios/BikeShare/Pods/Introspect/Introspect/AppKitIntrospectionView.swift +++ /dev/null @@ -1,68 +0,0 @@ -#if canImport(AppKit) && !targetEnvironment(macCatalyst) -import SwiftUI -import AppKit - -/// Introspection NSView that is inserted alongside the target view. -@available(macOS 10.15.0, *) -public class IntrospectionNSView: NSView { - - required init() { - super.init(frame: .zero) - isHidden = true - } - - public override func hitTest(_ point: NSPoint) -> NSView? { - return nil - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} - -/// Introspection View that is injected into the UIKit hierarchy alongside the target view. -/// After `updateNSView` is called, it calls `selector` to find the target view, then `customize` when the target view is found. -@available(macOS 10.15.0, *) -public struct AppKitIntrospectionView: NSViewRepresentable { - - /// Method that introspects the view hierarchy to find the target view. - /// First argument is the introspection view itself, which is contained in a view host alongside the target view. - let selector: (IntrospectionNSView) -> TargetViewType? - - /// User-provided customization method for the target view. - let customize: (TargetViewType) -> Void - - public init( - selector: @escaping (IntrospectionNSView) -> TargetViewType?, - customize: @escaping (TargetViewType) -> Void - ) { - self.selector = selector - self.customize = customize - } - - public func makeNSView(context: NSViewRepresentableContext) -> IntrospectionNSView { - let view = IntrospectionNSView() - view.setAccessibilityLabel("IntrospectionNSView<\(TargetViewType.self)>") - return view - } - - /// When `updateNSView` is called after creating the Introspection view, it is not yet in the AppKit hierarchy. - /// At this point, `introspectionView.superview.superview` is nil and we can't access the target AppKit view. - /// To workaround this, we wait until the runloop is done inserting the introspection view in the hierarchy, then run the selector. - /// Finding the target view fails silently if the selector yield no result. This happens when `updateNSView` - /// gets called when the introspection view gets removed from the hierarchy. - public func updateNSView( - _ nsView: IntrospectionNSView, - context: NSViewRepresentableContext - ) { - DispatchQueue.main.async { - guard let targetView = self.selector(nsView) else { - return - } - self.customize(targetView) - } - } -} -#endif - diff --git a/ios/BikeShare/Pods/Introspect/Introspect/Introspect.swift b/ios/BikeShare/Pods/Introspect/Introspect/Introspect.swift deleted file mode 100644 index 092e6ea7..00000000 --- a/ios/BikeShare/Pods/Introspect/Introspect/Introspect.swift +++ /dev/null @@ -1,294 +0,0 @@ -import SwiftUI - -#if os(macOS) -public typealias PlatformView = NSView -#endif -#if os(iOS) || os(tvOS) -public typealias PlatformView = UIView -#endif - -#if os(macOS) -public typealias PlatformViewController = NSViewController -#endif -#if os(iOS) || os(tvOS) -public typealias PlatformViewController = UIViewController -#endif - -/// Utility methods to inspect the UIKit view hierarchy. -public enum Introspect { - - /// Finds a subview of the specified type. - /// This method will recursively look for this view. - /// Returns nil if it can't find a view of the specified type. - public static func findChild( - ofType type: AnyViewType.Type, - in root: PlatformView - ) -> AnyViewType? { - for subview in root.subviews { - if let typed = subview as? AnyViewType { - return typed - } else if let typed = findChild(ofType: type, in: subview) { - return typed - } - } - return nil - } - - /// Finds a child view controller of the specified type. - /// This method will recursively look for this child. - /// Returns nil if it can't find a view of the specified type. - public static func findChild( - ofType type: AnyViewControllerType.Type, - in root: PlatformViewController - ) -> AnyViewControllerType? { - for child in root.children { - if let typed = child as? AnyViewControllerType { - return typed - } else if let typed = findChild(ofType: type, in: child) { - return typed - } - } - return nil - } - - /// Finds a previous sibling that contains a view of the specified type. - /// This method inspects siblings recursively. - /// Returns nil if no sibling contains the specified type. - public static func previousSibling( - containing type: AnyViewType.Type, - from entry: PlatformView - ) -> AnyViewType? { - - guard let superview = entry.superview, - let entryIndex = superview.subviews.firstIndex(of: entry), - entryIndex > 0 - else { - return nil - } - - for subview in superview.subviews[0..( - ofType type: AnyViewType.Type, - from entry: PlatformView - ) -> AnyViewType? { - - guard let superview = entry.superview, - let entryIndex = superview.subviews.firstIndex(of: entry), - entryIndex > 0 - else { - return nil - } - - for subview in superview.subviews[0..( - containing type: AnyViewControllerType.Type, - from entry: PlatformViewController - ) -> AnyViewControllerType? { - - guard let parent = entry.parent, - let entryIndex = parent.children.firstIndex(of: entry), - entryIndex > 0 - else { - return nil - } - - for child in parent.children[0..( - ofType type: AnyViewControllerType.Type, - from entry: PlatformViewController - ) -> AnyViewControllerType? { - - guard let parent = entry.parent, - let entryIndex = parent.children.firstIndex(of: entry), - entryIndex > 0 - else { - return nil - } - - for child in parent.children[0..( - containing type: AnyViewType.Type, - from entry: PlatformView - ) -> AnyViewType? { - - guard let superview = entry.superview, - let entryIndex = superview.subviews.firstIndex(of: entry) - else { - return nil - } - - for subview in superview.subviews[entryIndex..( - ofType type: AnyViewType.Type, - from entry: PlatformView - ) -> AnyViewType? { - - guard let superview = entry.superview, - let entryIndex = superview.subviews.firstIndex(of: entry) - else { - return nil - } - - for subview in superview.subviews[entryIndex..(ofType type: AnyViewType.Type, from entry: PlatformView) -> AnyViewType? { - var superview = entry.superview - while let s = superview { - if let typed = s as? AnyViewType { - return typed - } - superview = s.superview - } - return nil - } - - /// Finds the hosting view of a specific subview. - /// Hosting views generally contain subviews for one specific SwiftUI element. - /// For instance, if there are multiple text fields in a VStack, the hosting view will contain those text fields (and their host views, see below). - /// Returns nil if it couldn't find a hosting view. This should never happen when called with an IntrospectionView. - public static func findHostingView(from entry: PlatformView) -> PlatformView? { - var superview = entry.superview - while let s = superview { - if NSStringFromClass(type(of: s)).contains("HostingView") { - return s - } - superview = s.superview - } - return nil - } - - /// Finds the view host of a specific view. - /// SwiftUI wraps each UIView within a ViewHost, then within a HostingView. - /// Returns nil if it couldn't find a view host. This should never happen when called with an IntrospectionView. - public static func findViewHost(from entry: PlatformView) -> PlatformView? { - var superview = entry.superview - while let s = superview { - if NSStringFromClass(type(of: s)).contains("ViewHost") { - return s - } - superview = s.superview - } - return nil - } -} - -public enum TargetViewSelector { - public static func siblingContaining(from entry: PlatformView) -> TargetView? { - guard let viewHost = Introspect.findViewHost(from: entry) else { - return nil - } - return Introspect.previousSibling(containing: TargetView.self, from: viewHost) - } - - public static func siblingContainingOrAncestor(from entry: PlatformView) -> TargetView? { - if let sibling: TargetView = siblingContaining(from: entry) { - return sibling - } - return Introspect.findAncestor(ofType: TargetView.self, from: entry) - } - - public static func siblingOfType(from entry: PlatformView) -> TargetView? { - guard let viewHost = Introspect.findViewHost(from: entry) else { - return nil - } - return Introspect.previousSibling(ofType: TargetView.self, from: viewHost) - } - - public static func siblingOfTypeOrAncestor(from entry: PlatformView) -> TargetView? { - if let sibling: TargetView = siblingOfType(from: entry) { - return sibling - } - return Introspect.findAncestor(ofType: TargetView.self, from: entry) - } - - public static func ancestorOrSiblingContaining(from entry: PlatformView) -> TargetView? { - if let tableView = Introspect.findAncestor(ofType: TargetView.self, from: entry) { - return tableView - } - return siblingContaining(from: entry) - } - - public static func ancestorOrSiblingOfType(from entry: PlatformView) -> TargetView? { - if let tableView = Introspect.findAncestor(ofType: TargetView.self, from: entry) { - return tableView - } - return siblingOfType(from: entry) - } -} - -/// Allows to safely access an array element by index -/// Usage: array[safe: 2] -private extension Array { - subscript(safe index: Int) -> Element? { - guard index >= 0, index < endIndex else { - return nil - } - - return self[index] - } -} diff --git a/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionView.swift b/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionView.swift deleted file mode 100644 index 5307afed..00000000 --- a/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionView.swift +++ /dev/null @@ -1,64 +0,0 @@ -#if canImport(UIKit) -import UIKit -import SwiftUI - -/// Introspection UIView that is inserted alongside the target view. -@available(iOS 13.0, *) -public class IntrospectionUIView: UIView { - - required init() { - super.init(frame: .zero) - isHidden = true - isUserInteractionEnabled = false - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} - -/// Introspection View that is injected into the UIKit hierarchy alongside the target view. -/// After `updateUIView` is called, it calls `selector` to find the target view, then `customize` when the target view is found. -@available(iOS 13.0, tvOS 13.0, macOS 10.15.0, *) -public struct UIKitIntrospectionView: UIViewRepresentable { - - /// Method that introspects the view hierarchy to find the target view. - /// First argument is the introspection view itself, which is contained in a view host alongside the target view. - let selector: (IntrospectionUIView) -> TargetViewType? - - /// User-provided customization method for the target view. - let customize: (TargetViewType) -> Void - - public init( - selector: @escaping (IntrospectionUIView) -> TargetViewType?, - customize: @escaping (TargetViewType) -> Void - ) { - self.selector = selector - self.customize = customize - } - - public func makeUIView(context: UIViewRepresentableContext) -> IntrospectionUIView { - let view = IntrospectionUIView() - view.accessibilityLabel = "IntrospectionUIView<\(TargetViewType.self)>" - return view - } - - /// When `updateUiView` is called after creating the Introspection view, it is not yet in the UIKit hierarchy. - /// At this point, `introspectionView.superview.superview` is nil and we can't access the target UIKit view. - /// To workaround this, we wait until the runloop is done inserting the introspection view in the hierarchy, then run the selector. - /// Finding the target view fails silently if the selector yield no result. This happens when `updateUIView` - /// gets called when the introspection view gets removed from the hierarchy. - public func updateUIView( - _ uiView: IntrospectionUIView, - context: UIViewRepresentableContext - ) { - DispatchQueue.main.async { - guard let targetView = self.selector(uiView) else { - return - } - self.customize(targetView) - } - } -} -#endif diff --git a/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionViewController.swift b/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionViewController.swift deleted file mode 100644 index e7343a33..00000000 --- a/ios/BikeShare/Pods/Introspect/Introspect/UIKitIntrospectionViewController.swift +++ /dev/null @@ -1,55 +0,0 @@ -#if canImport(UIKit) -import SwiftUI -import UIKit - -/// Introspection UIViewController that is inserted alongside the target view controller. -@available(iOS 13.0, tvOS 13.0, macOS 10.15.0, *) -public class IntrospectionUIViewController: UIViewController { - required init() { - super.init(nibName: nil, bundle: nil) - view = IntrospectionUIView() - } - - @available(*, unavailable) - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } -} - -/// This is the same logic as IntrospectionView but for view controllers. Please see details above. -@available(iOS 13.0, tvOS 13.0, macOS 10.15.0, *) -public struct UIKitIntrospectionViewController: UIViewControllerRepresentable { - - let selector: (IntrospectionUIViewController) -> TargetViewControllerType? - let customize: (TargetViewControllerType) -> Void - - public init( - selector: @escaping (UIViewController) -> TargetViewControllerType?, - customize: @escaping (TargetViewControllerType) -> Void - ) { - self.selector = selector - self.customize = customize - } - - public func makeUIViewController( - context: UIViewControllerRepresentableContext - ) -> IntrospectionUIViewController { - let viewController = IntrospectionUIViewController() - viewController.accessibilityLabel = "IntrospectionUIViewController<\(TargetViewControllerType.self)>" - viewController.view.accessibilityLabel = "IntrospectionUIView<\(TargetViewControllerType.self)>" - return viewController - } - - public func updateUIViewController( - _ uiViewController: IntrospectionUIViewController, - context: UIViewControllerRepresentableContext - ) { - DispatchQueue.main.async { - guard let targetView = self.selector(uiViewController) else { - return - } - self.customize(targetView) - } - } -} -#endif diff --git a/ios/BikeShare/Pods/Introspect/Introspect/ViewExtensions.swift b/ios/BikeShare/Pods/Introspect/Introspect/ViewExtensions.swift deleted file mode 100644 index 314d12a9..00000000 --- a/ios/BikeShare/Pods/Introspect/Introspect/ViewExtensions.swift +++ /dev/null @@ -1,197 +0,0 @@ -import SwiftUI - -#if canImport(AppKit) -import AppKit -#elseif canImport(UIKit) -import UIKit -#endif - -@available(iOS 13.0, tvOS 13.0, macOS 10.15.0, *) -extension View { - public func inject(_ view: SomeView) -> some View where SomeView: View { - return overlay(view.frame(width: 0, height: 0)) - } -} - -#if canImport(UIKit) -@available(iOS 13.0, tvOS 13.0, macOS 10.15.0, *) -extension View { - - /// Finds a `TargetView` from a `SwiftUI.View` - public func introspect( - selector: @escaping (IntrospectionUIView) -> TargetView?, - customize: @escaping (TargetView) -> () - ) -> some View { - return inject(UIKitIntrospectionView( - selector: selector, - customize: customize - )) - } - - /// Finds a `UINavigationController` from any view embedded in a `SwiftUI.NavigationView`. - public func introspectNavigationController(customize: @escaping (UINavigationController) -> ()) -> some View { - return inject(UIKitIntrospectionViewController( - selector: { introspectionViewController in - - // Search in ancestors - if let navigationController = introspectionViewController.navigationController { - return navigationController - } - - // Search in siblings - return Introspect.previousSibling(containing: UINavigationController.self, from: introspectionViewController) - }, - customize: customize - )) - } - - /// Finds the containing `UIViewController` of a SwiftUI view. - public func introspectViewController(customize: @escaping (UIViewController) -> ()) -> some View { - return inject(UIKitIntrospectionViewController( - selector: { $0.parent }, - customize: customize - )) - } - - /// Finds a `UITabBarController` from any SwiftUI view embedded in a `SwiftUI.TabView` - public func introspectTabBarController(customize: @escaping (UITabBarController) -> ()) -> some View { - return inject(UIKitIntrospectionViewController( - selector: { introspectionViewController in - - // Search in ancestors - if let navigationController = introspectionViewController.tabBarController { - return navigationController - } - - // Search in siblings - return Introspect.previousSibling(ofType: UITabBarController.self, from: introspectionViewController) - }, - customize: customize - )) - } - - /// Finds a `UITableView` from a `SwiftUI.List`, or `SwiftUI.List` child. - public func introspectTableView(customize: @escaping (UITableView) -> ()) -> some View { - return introspect(selector: TargetViewSelector.ancestorOrSiblingContaining, customize: customize) - } - - /// Finds a `UITableViewCell` from a `SwiftUI.List`, or `SwiftUI.List` child. You can attach this directly to the element inside the list. - public func introspectTableViewCell(customize: @escaping (UITableViewCell) -> ()) -> some View { - return introspect(selector: TargetViewSelector.ancestorOrSiblingContaining, customize: customize) - } - - /// Finds a `UIScrollView` from a `SwiftUI.ScrollView`, or `SwiftUI.ScrollView` child. - public func introspectScrollView(customize: @escaping (UIScrollView) -> ()) -> some View { - if #available(iOS 14.0, tvOS 14.0, macOS 11.0, *) { - return introspect(selector: TargetViewSelector.siblingOfTypeOrAncestor, customize: customize) - } else { - return introspect(selector: TargetViewSelector.siblingContainingOrAncestor, customize: customize) - } - } - - /// Finds a `UITextField` from a `SwiftUI.TextField` - public func introspectTextField(customize: @escaping (UITextField) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UITextView` from a `SwiftUI.TextEditor` - public func introspectTextView(customize: @escaping (UITextView) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UISwitch` from a `SwiftUI.Toggle` - @available(tvOS, unavailable) - public func introspectSwitch(customize: @escaping (UISwitch) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UISlider` from a `SwiftUI.Slider` - @available(tvOS, unavailable) - public func introspectSlider(customize: @escaping (UISlider) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UIStepper` from a `SwiftUI.Stepper` - @available(tvOS, unavailable) - public func introspectStepper(customize: @escaping (UIStepper) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UIDatePicker` from a `SwiftUI.DatePicker` - @available(tvOS, unavailable) - public func introspectDatePicker(customize: @escaping (UIDatePicker) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `UISegmentedControl` from a `SwiftUI.Picker` with style `SegmentedPickerStyle` - public func introspectSegmentedControl(customize: @escaping (UISegmentedControl) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } -} -#endif - -#if canImport(AppKit) && !targetEnvironment(macCatalyst) -@available(macOS 10.15.0, *) -extension View { - - /// Finds a `TargetView` from a `SwiftUI.View` - public func introspect( - selector: @escaping (IntrospectionNSView) -> TargetView?, - customize: @escaping (TargetView) -> () - ) -> some View { - return inject(AppKitIntrospectionView( - selector: selector, - customize: customize - )) - } - - /// Finds a `NSTableView` from a `SwiftUI.List`, or `SwiftUI.List` child. - public func introspectTableView(customize: @escaping (NSTableView) -> ()) -> some View { - return introspect(selector: TargetViewSelector.ancestorOrSiblingContaining, customize: customize) - } - - /// Finds a `NSTableCellView` from a `SwiftUI.List`, or `SwiftUI.List` child. You can attach this directly to the element inside the list. - public func introspectTableViewCell(customize: @escaping (NSTableCellView) -> ()) -> some View { - return introspect(selector: TargetViewSelector.ancestorOrSiblingContaining, customize: customize) - } - - /// Finds a `NSScrollView` from a `SwiftUI.ScrollView`, or `SwiftUI.ScrollView` child. - public func introspectScrollView(customize: @escaping (NSScrollView) -> ()) -> some View { - if #available(macOS 11.0, *) { - return introspect(selector: TargetViewSelector.siblingOfTypeOrAncestor, customize: customize) - } else { - return introspect(selector: TargetViewSelector.siblingContainingOrAncestor, customize: customize) - } - } - - /// Finds a `NSTextField` from a `SwiftUI.TextField` - public func introspectTextField(customize: @escaping (NSTextField) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `NSTextView` from a `SwiftUI.TextView` - public func introspectTextView(customize: @escaping (NSTextView) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `NSSlider` from a `SwiftUI.Slider` - public func introspectSlider(customize: @escaping (NSSlider) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `NSStepper` from a `SwiftUI.Stepper` - public func introspectStepper(customize: @escaping (NSStepper) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `NSDatePicker` from a `SwiftUI.DatePicker` - public func introspectDatePicker(customize: @escaping (NSDatePicker) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } - - /// Finds a `NSSegmentedControl` from a `SwiftUI.Picker` with style `SegmentedPickerStyle` - public func introspectSegmentedControl(customize: @escaping (NSSegmentedControl) -> ()) -> some View { - return introspect(selector: TargetViewSelector.siblingContaining, customize: customize) - } -} -#endif diff --git a/ios/BikeShare/Pods/Introspect/LICENSE b/ios/BikeShare/Pods/Introspect/LICENSE deleted file mode 100644 index 6c7df588..00000000 --- a/ios/BikeShare/Pods/Introspect/LICENSE +++ /dev/null @@ -1,7 +0,0 @@ -Copyright 2019 Timber Software - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/ios/BikeShare/Pods/Introspect/README.md b/ios/BikeShare/Pods/Introspect/README.md deleted file mode 100644 index a87dc70a..00000000 --- a/ios/BikeShare/Pods/Introspect/README.md +++ /dev/null @@ -1,180 +0,0 @@ -Introspect for SwiftUI -====================== - -[![CircleCI](https://circleci.com/gh/siteline/SwiftUI-Introspect.svg?style=svg&circle-token=6f995f204d4d417d31f79e7257f6e1ecf430ae07)](https://circleci.com/gh/siteline/SwiftUI-Introspect) - -Introspect allows you to get the underlying UIKit or AppKit element of a SwiftUI view. - -For instance, with Introspect you can access `UITableView` to modify separators, or `UINavigationController` to customize the tab bar. - -How it works ------------- - -Introspect works by adding a custom `IntrospectionView` to the view hierarchy, then looking into the UIKit hierarchy to find the relevant view. - -![](./docs/diagram.png) - -For instance, when introspecting a `TextField`, it will: - - - Add `IntrospectionView` as an overlay of `TextField` - - Get the view host of the introspection view (which is alongside the view host of the `UITextField`) - - Get the previous sibling containing `UITextField` - -**Please note that this introspection method might break in future SwiftUI releases.** Future implementations might not use the same hierarchy, or might not use UIKit elements that are being looked for. Though the library is unlikely to crash, the `.introspect()` method will not be called in those cases. - -### Usage in production - -`Introspect` is meant to be used in production. It does not use any private API. It only inspects the view hierarchy using publicly available methods. The library takes a defensive approach to inspecting the view hierarchy: there is no hard assumption that elements are laid out a certain way, there is no force-cast to UIKit classes, and the `introspect()` methods are simply ignored if UIKit views cannot be found. - - -Install -------- - -### SwiftPM - -``` -https://github.com/siteline/SwiftUI-Introspect.git -``` - -### Cocoapods - -``` -pod "Introspect" -``` - -Introspection -------------- - -### Implemented - -SwiftUI | UIKit | AppKit | Introspect ---- | --- | --- | --- -List | UITableView | NSTableView | `.introspectTableView()` -ScrollView | UIScrollView | NSScrollView | `.introspectScrollView()` -NavigationView | UINavigationController | _N/A_ | `.introspectNavigationController()` -_Any embedded view_ | UIViewController | _N/A_ | `.introspectViewController()` -TabView | UITabBarController | _N/A_ | `.introspectTabBarController()` -TextField | UITextField | NSTextField | `.introspectTextField()` -Toggle | UISwitch | N/A | `.introspectSwitch()` -Slider | UISlider | NSSlider | `.introspectSlider()` -Stepper | UIStepper | NSStepper | `.introspectStepper()` -DatePicker | UIDatePicker | NSDatePicker | `.introspectDatePicker()` -Picker (SegmentedPickerStyle) | UISegmentedControl | NSSegmentedControl | `.introspectSegmentedControl()` - -**Missing an element?** Please [create an issue](https://github.com/timbersoftware/SwiftUI-Introspect/issues). As a temporary solution, you can [implement your own selector](#implement-your-own-selector). - -### Cannot implement - -SwiftUI | Why ---- | --- -Text | Not a UILabel -Image | Not a UIImageView -Button | Not a UIButton - -Examples --------- - -### List - -```swift -List { - Text("Item 1") - Text("Item 2") -} -.introspectTableView { tableView in - tableView.separatorStyle = .none -} -.introspectTableViewCell { cell in - let backgroundView = UIView() - backgroundView.backgroundColor = .clear - cell.selectedBackgroundView = backgroundView -} -``` - -### ScrollView - -```swift -ScrollView { - Text("Item 2") -} -.introspectScrollView { scrollView in - scrollView.refreshControl = UIRefreshControl() -} -``` - -### NavigationView - -```swift -NavigationView { - Text("Item 2") - .introspectNavigationController { navigationController in - navigationController.navigationBar.backgroundColor = .red - } -} -``` - -### TextField - -```swift -TextField("Text Field", text: $textFieldValue) -.introspectTextField { textField in - textField.layer.backgroundColor = UIColor.red.cgColor -} -``` - -Implement your own selector ---------------------------- - -**Missing an element?** Please [create an issue](https://github.com/timbersoftware/SwiftUI-Introspect/issues). - -In case Introspect doesn't support the SwiftUI element that you're looking for, you can implement your own selector. For example, to look for a `UITextField`: - -```swift -extension View { - public func introspectTextField(customize: @escaping (UITextField) -> ()) -> some View { - return inject(UIKitIntrospectionView( - selector: { introspectionView in - guard let viewHost = Introspect.findViewHost(from: introspectionView) else { - return nil - } - return Introspect.previousSibling(containing: UITextField.self, from: viewHost) - }, - customize: customize - )) - } -} -``` - -You can use any of the following [methods](https://github.com/timbersoftware/SwiftUI-Introspect/blob/master/Introspect/Introspect.swift#L3-L71) to inspect the hierarchy: - - - `Introspect.findChild(ofType:in:)` - - `Introspect.previousSibling(containing:from:)` - - `Introspect.nextSibling(containing:from:)` - - `Introspect.findAncestor(ofType:from:)` - - `Introspect.findHostingView(from:)` - - `Introspect.findViewHost(from:)` - -Releasing ---------- - - - Increment version number: - -``` -$ bundle exec fastlane run increment_version_number bump_type:minor # major|minor|patch -``` - - - Update changelog with new version - - Bump version in `Introspect.podspec` - - Commit and push changes - - Tag new version: - -``` -$ git tag -a -m "" -$ git push origin --tags -``` - - - Push to cocoapods trunk: - -``` -$ bundle exec pod trunk push . -``` diff --git a/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/KMMViewModel.swift b/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/KMMViewModel.swift deleted file mode 100644 index 6c3cde53..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/KMMViewModel.swift +++ /dev/null @@ -1,15 +0,0 @@ -// -// KMMViewModel.swift -// KMMViewModelCore -// -// Created by Rick Clephas on 28/11/2022. -// - -import Combine -import KMMViewModelCoreObjC - -/// A Kotlin Multiplatform Mobile ViewModel. -public protocol KMMViewModel: ObservableObject where ObjectWillChangePublisher == ObservableObjectPublisher { - /// The `ViewModelScope` of this `KMMViewModel`. - var viewModelScope: ViewModelScope { get } -} diff --git a/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/ObservableViewModel.swift b/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/ObservableViewModel.swift deleted file mode 100644 index 6b14bfe6..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCore/KMMViewModelCore/ObservableViewModel.swift +++ /dev/null @@ -1,120 +0,0 @@ -// -// ObservableViewModel.swift -// KMMViewModelCore -// -// Created by Rick Clephas on 27/11/2022. -// - -import Combine -import KMMViewModelCoreObjC - -/// Creates an `ObservableObject` for the specified `KMMViewModel`. -/// - Parameter viewModel: The `KMMViewModel` to wrap in an `ObservableObject`. -public func createObservableViewModel( - for viewModel: ViewModel -) -> ObservableViewModel { - ObservableViewModel(viewModel) -} - -/// An `ObservableObject` for a `KMMViewModel`. -public final class ObservableViewModel: ObservableObject { - - public let objectWillChange: ObservableViewModelPublisher - - private var _viewModel: ViewModel - public var viewModel: ViewModel { _viewModel } - - internal init(_ viewModel: ViewModel) { - objectWillChange = ObservableViewModelPublisher(viewModel.viewModelScope, viewModel.objectWillChange) - self._viewModel = viewModel - } - - public func get(_ keyPath: KeyPath) -> T { - _viewModel[keyPath: keyPath] - } - - public func set(_ keyPath: WritableKeyPath, to newValue: T) { - _viewModel[keyPath: keyPath] = newValue - } -} - -/// Publisher for `ObservableViewModel` that connects to the `ViewModelScope`. -public final class ObservableViewModelPublisher: Publisher { - public typealias Output = Void - public typealias Failure = Never - - internal weak var viewModelScope: ViewModelScope? - - private let publisher = ObservableObjectPublisher() - private var objectWillChangeCancellable: AnyCancellable? = nil - - init(_ viewModelScope: ViewModelScope, _ objectWillChange: ObservableObjectPublisher) { - self.viewModelScope = viewModelScope - viewModelScope.setSendObjectWillChange { [weak self] in - self?.publisher.send() - } - objectWillChangeCancellable = objectWillChange.sink { [weak self] _ in - self?.publisher.send() - } - } - - public func receive(subscriber: S) where S : Subscriber, Never == S.Failure, Void == S.Input { - viewModelScope?.increaseSubscriptionCount() - publisher.receive(subscriber: ObservableViewModelSubscriber(self, subscriber)) - } - - deinit { - viewModelScope?.cancel() - } -} - -/// Subscriber for `ObservableViewModelPublisher` that creates `ObservableViewModelSubscription`s. -private class ObservableViewModelSubscriber: Subscriber where S : Subscriber, Never == S.Failure, Void == S.Input { - typealias Input = Void - typealias Failure = Never - - private let publisher: ObservableViewModelPublisher - private let subscriber: S - - init(_ publisher: ObservableViewModelPublisher, _ subscriber: S) { - self.publisher = publisher - self.subscriber = subscriber - } - - func receive(subscription: Subscription) { - subscriber.receive(subscription: ObservableViewModelSubscription(publisher, subscription)) - } - - func receive(_ input: Void) -> Subscribers.Demand { - subscriber.receive(input) - } - - func receive(completion: Subscribers.Completion) { - subscriber.receive(completion: completion) - } -} - -/// Subscription for `ObservableViewModelPublisher` that decreases the subscription count upon cancellation. -private class ObservableViewModelSubscription: Subscription { - - private let publisher: ObservableViewModelPublisher - private let subscription: Subscription - - init(_ publisher: ObservableViewModelPublisher, _ subscription: Subscription) { - self.publisher = publisher - self.subscription = subscription - } - - func request(_ demand: Subscribers.Demand) { - subscription.request(demand) - } - - private var cancelled = false - - func cancel() { - subscription.cancel() - guard !cancelled else { return } - cancelled = true - publisher.viewModelScope?.decreaseSubscriptionCount() - } -} diff --git a/ios/BikeShare/Pods/KMMViewModelCore/LICENSE b/ios/BikeShare/Pods/KMMViewModelCore/LICENSE deleted file mode 100644 index acc71fba..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCore/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Rick Clephas - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/ios/BikeShare/Pods/KMMViewModelCore/README.md b/ios/BikeShare/Pods/KMMViewModelCore/README.md deleted file mode 100644 index 2d402c10..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCore/README.md +++ /dev/null @@ -1,145 +0,0 @@ -# KMM-ViewModel - -A library that allows you to share ViewModels between Android and iOS. - -## Compatibility - -The latest version of the library uses Kotlin version `1.7.21`. -Compatibility versions for newer Kotlin versions are also available: - -| Version | Version suffix | Kotlin | Coroutines | -|--------------|-------------------|:----------:|:----------:| -| _latest_ | -kotlin-1.8.0-RC2 | 1.8.0-RC2 | 1.6.4 | -| **_latest_** | **_no suffix_** | **1.7.21** | **1.6.4** | - -## Kotlin - -Add the library to your shared Kotlin module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Create your ViewModels almost as you would in Android: -```kotlin -import com.rickclephas.kmm.viewmodel.KMMViewModel -import com.rickclephas.kmm.viewmodel.MutableStateFlow -import com.rickclephas.kmm.viewmodel.stateIn - -// 1: use KMMViewModel instead of ViewModel -open class TimeTravelViewModel: KMMViewModel() { - - private val clockTime = Clock.time - - /** - * A [StateFlow] that emits the actual time. - */ - val actualTime = clockTime.map { formatTime(it) } - // 2: supply viewModelScope to your stateIn calls - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), "N/A") - - // 3: supply viewModelScope to your MutableStateFlows - private val _travelEffect = MutableStateFlow(viewModelScope, null) - /** - * A [StateFlow] that emits the applied [TravelEffect]. - */ - val travelEffect = _travelEffect.asStateFlow() -} -``` - -You need to use `viewModelScope` wherever possible to propagate state changes to iOS. -In other cases you can access the `ViewModelScope.coroutineScope` property directly. - -### KMP-NativeCoroutines - -Use the `@NativeCoroutinesState` annotation from [KMP-NativeCoroutines](https://github.com/rickclephas/KMP-NativeCoroutines) -to turn your `StateFlow`s into properties in Swift: - -```kotlin -@NativeCoroutinesState -val travelEffect = _travelEffect.asStateFlow() -``` - -Checkout the [README](https://github.com/rickclephas/KMP-NativeCoroutines/blob/dev-1.0/README.md) -for more information and installation instructions for KMP-NativeCoroutines. - -
Alternative -

- -Alternatively you can create extension properties in your iOS source-set yourself: -```kotlin -val TimeTravelViewModel.travelEffectValue: TravelEffect? - get() = travelEffect.value -``` -

-
- -## Android - -Add the library to your Android module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Use the view model like you would any other Android view model: -```kotlin -class TimeTravelFragment: Fragment(R.layout.fragment_time_travel) { - private val viewModel: TimeTravelViewModel by viewModels() -} -``` - -> **Note:** support for Jetpack Compose is coming soon. - -## Swift - -Add the Swift package to your `Package.swift` file: -```swift -dependencies: [ - .package(url: "https://github.com/rickclephas/KMM-ViewModel.git", from: "") -] -``` - -Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL: -`https://github.com/rickclephas/KMM-ViewModel.git`. - -Create a `KMMViewModel.swift` file with the following contents: -```swift -import KMMViewModelCore -import shared // This should be your shared KMM module - -extension Kmm_viewmodel_coreKMMViewModel: KMMViewModel { } -``` - -After that you can use your view model almost as if it were an `ObservableObject`. -Just use the view model specific property wrappers and functions: - -| `ObservableObject` | `KMMViewModel` | -|-------------------------|----------------------------| -| `@StateObject` | `@StateViewModel` | -| `@ObservedObject` | `@ObservedViewModel` | -| `@EnvironmentObject` | `@EnvironmentViewModel` | -| `environmentObject(_:)` | `environmentViewModel(_:)` | - -E.g. to use the `TimeTravelViewModel` as a `StateObject`: -```swift -import SwiftUI -import KMMViewModelSwiftUI -import shared // This should be your shared KMM module - -struct ContentView: View { - @StateViewModel var viewModel = TimeTravelViewModel() -} -``` - -It's also possible to subclass your view model in Swift: -```swift -import Combine -import shared // This should be your shared KMM module - -class TimeTravelViewModel: shared.TimeTravelViewModel { - @Published var isResetDisabled: Bool = false -} -``` diff --git a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMVMViewModelScope.h b/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMVMViewModelScope.h deleted file mode 100644 index 369d062d..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMVMViewModelScope.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// KMMVMViewModelScope.h -// KMMViewModelCoreObjC -// -// Created by Rick Clephas on 27/11/2022. -// - -#ifndef KMMVMViewModelScope_h -#define KMMVMViewModelScope_h - -#import - -__attribute__((swift_name("ViewModelScope"))) -@protocol KMMVMViewModelScope -- (void)increaseSubscriptionCount; -- (void)decreaseSubscriptionCount; -- (void)setSendObjectWillChange:(void (^ _Nonnull)(void))sendObjectWillChange; -- (void)cancel; -@end - -#endif /* KMMVMViewModelScope_h */ diff --git a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.h b/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.h deleted file mode 100644 index 22b0b5f5..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// KMMViewModelCoreObjC.h -// KMMViewModelCoreObjC -// -// Created by Rick Clephas on 27/11/2022. -// - -#import "KMMVMViewModelScope.h" diff --git a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.m b/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.m deleted file mode 100644 index a21ae655..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCoreObjC/KMMViewModelCoreObjC/KMMViewModelCoreObjC.m +++ /dev/null @@ -1 +0,0 @@ -// We need this empty file, else SPM won't build this diff --git a/ios/BikeShare/Pods/KMMViewModelCoreObjC/LICENSE b/ios/BikeShare/Pods/KMMViewModelCoreObjC/LICENSE deleted file mode 100644 index acc71fba..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCoreObjC/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Rick Clephas - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/ios/BikeShare/Pods/KMMViewModelCoreObjC/README.md b/ios/BikeShare/Pods/KMMViewModelCoreObjC/README.md deleted file mode 100644 index 2d402c10..00000000 --- a/ios/BikeShare/Pods/KMMViewModelCoreObjC/README.md +++ /dev/null @@ -1,145 +0,0 @@ -# KMM-ViewModel - -A library that allows you to share ViewModels between Android and iOS. - -## Compatibility - -The latest version of the library uses Kotlin version `1.7.21`. -Compatibility versions for newer Kotlin versions are also available: - -| Version | Version suffix | Kotlin | Coroutines | -|--------------|-------------------|:----------:|:----------:| -| _latest_ | -kotlin-1.8.0-RC2 | 1.8.0-RC2 | 1.6.4 | -| **_latest_** | **_no suffix_** | **1.7.21** | **1.6.4** | - -## Kotlin - -Add the library to your shared Kotlin module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Create your ViewModels almost as you would in Android: -```kotlin -import com.rickclephas.kmm.viewmodel.KMMViewModel -import com.rickclephas.kmm.viewmodel.MutableStateFlow -import com.rickclephas.kmm.viewmodel.stateIn - -// 1: use KMMViewModel instead of ViewModel -open class TimeTravelViewModel: KMMViewModel() { - - private val clockTime = Clock.time - - /** - * A [StateFlow] that emits the actual time. - */ - val actualTime = clockTime.map { formatTime(it) } - // 2: supply viewModelScope to your stateIn calls - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), "N/A") - - // 3: supply viewModelScope to your MutableStateFlows - private val _travelEffect = MutableStateFlow(viewModelScope, null) - /** - * A [StateFlow] that emits the applied [TravelEffect]. - */ - val travelEffect = _travelEffect.asStateFlow() -} -``` - -You need to use `viewModelScope` wherever possible to propagate state changes to iOS. -In other cases you can access the `ViewModelScope.coroutineScope` property directly. - -### KMP-NativeCoroutines - -Use the `@NativeCoroutinesState` annotation from [KMP-NativeCoroutines](https://github.com/rickclephas/KMP-NativeCoroutines) -to turn your `StateFlow`s into properties in Swift: - -```kotlin -@NativeCoroutinesState -val travelEffect = _travelEffect.asStateFlow() -``` - -Checkout the [README](https://github.com/rickclephas/KMP-NativeCoroutines/blob/dev-1.0/README.md) -for more information and installation instructions for KMP-NativeCoroutines. - -
Alternative -

- -Alternatively you can create extension properties in your iOS source-set yourself: -```kotlin -val TimeTravelViewModel.travelEffectValue: TravelEffect? - get() = travelEffect.value -``` -

-
- -## Android - -Add the library to your Android module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Use the view model like you would any other Android view model: -```kotlin -class TimeTravelFragment: Fragment(R.layout.fragment_time_travel) { - private val viewModel: TimeTravelViewModel by viewModels() -} -``` - -> **Note:** support for Jetpack Compose is coming soon. - -## Swift - -Add the Swift package to your `Package.swift` file: -```swift -dependencies: [ - .package(url: "https://github.com/rickclephas/KMM-ViewModel.git", from: "") -] -``` - -Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL: -`https://github.com/rickclephas/KMM-ViewModel.git`. - -Create a `KMMViewModel.swift` file with the following contents: -```swift -import KMMViewModelCore -import shared // This should be your shared KMM module - -extension Kmm_viewmodel_coreKMMViewModel: KMMViewModel { } -``` - -After that you can use your view model almost as if it were an `ObservableObject`. -Just use the view model specific property wrappers and functions: - -| `ObservableObject` | `KMMViewModel` | -|-------------------------|----------------------------| -| `@StateObject` | `@StateViewModel` | -| `@ObservedObject` | `@ObservedViewModel` | -| `@EnvironmentObject` | `@EnvironmentViewModel` | -| `environmentObject(_:)` | `environmentViewModel(_:)` | - -E.g. to use the `TimeTravelViewModel` as a `StateObject`: -```swift -import SwiftUI -import KMMViewModelSwiftUI -import shared // This should be your shared KMM module - -struct ContentView: View { - @StateViewModel var viewModel = TimeTravelViewModel() -} -``` - -It's also possible to subclass your view model in Swift: -```swift -import Combine -import shared // This should be your shared KMM module - -class TimeTravelViewModel: shared.TimeTravelViewModel { - @Published var isResetDisabled: Bool = false -} -``` diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/EnvironmentViewModel.swift b/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/EnvironmentViewModel.swift deleted file mode 100644 index 9acc874c..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/EnvironmentViewModel.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// EnvironmentViewModel.swift -// KMMViewModelSwiftUI -// -// Created by Rick Clephas on 27/11/2022. -// - -import SwiftUI -import KMMViewModelCore -import KMMViewModelCoreObjC - -/// An `EnvironmentObject` property wrapper for `KMMViewModel`s. -@propertyWrapper -public struct EnvironmentViewModel: DynamicProperty { - - @EnvironmentObject private var observableObject: ObservableViewModel - - /// The underlying `KMMViewModel` referenced by the `EnvironmentViewModel`. - public var wrappedValue: ViewModel { observableObject.viewModel } - - /// A projection of the observed `KMMViewModel` that creates bindings to its properties using dynamic member lookup. - public var projectedValue: ObservableViewModel.Projection { - ObservableViewModel.Projection(observableObject) - } - - /// Creates an `EnvironmentViewModel`. - public init() { } -} - -public extension View { - /// Supplies a `KMMViewModel` to a view subhierarchy. - /// - Parameter viewModel: The `KMMViewModel` to supply to a view subhierarchy. - func environmentViewModel(_ viewModel: ViewModel) -> some View { - environmentObject(createObservableViewModel(for: viewModel)) - } - - /// Supplies a `KMMViewModel` to a view subhierarchy. - /// - Parameter projectedValue: The `projectedValue` from e.g. `StateViewModel`. - func environmentViewModel(_ projectedValue: ObservableViewModel.Projection) -> some View { - environmentObject(projectedValue.observableObject) - } -} diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservableViewModelProjection.swift b/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservableViewModelProjection.swift deleted file mode 100644 index bf5198d8..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservableViewModelProjection.swift +++ /dev/null @@ -1,31 +0,0 @@ -// -// ObservableViewModelProjection.swift -// KMMViewModelSwiftUI -// -// Created by Rick Clephas on 27/11/2022. -// - -import SwiftUI -import KMMViewModelCore - -public extension ObservableViewModel { - - /// A projection of a `KMMViewModel` that creates bindings to its properties using dynamic member lookup. - @dynamicMemberLookup - struct Projection { - - internal let observableObject: ObservableViewModel - - internal init(_ observableObject: ObservableViewModel) { - self.observableObject = observableObject - } - - public subscript(dynamicMember keyPath: WritableKeyPath) -> Binding { - Binding { - observableObject.get(keyPath) - } set: { value in - observableObject.set(keyPath, to: value) - } - } - } -} diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservedViewModel.swift b/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservedViewModel.swift deleted file mode 100644 index ee800971..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/ObservedViewModel.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// ObservedViewModel.swift -// KMMViewModelSwiftUI -// -// Created by Rick Clephas on 27/11/2022. -// - -import SwiftUI -import KMMViewModelCore -import KMMViewModelCoreObjC - -/// An `ObservedObject` property wrapper for `KMMViewModel`s. -@propertyWrapper -public struct ObservedViewModel: DynamicProperty { - - @ObservedObject private var observableObject: ObservableViewModel - - /// The underlying `KMMViewModel` referenced by the `ObservedViewModel`. - public var wrappedValue: ViewModel { observableObject.viewModel } - - /// A projection of the observed `KMMViewModel` that creates bindings to its properties using dynamic member lookup. - public var projectedValue: ObservableViewModel.Projection - - /// Creates an `ObservedViewModel` for the specified `KMMViewModel` projection. - /// - Parameter projectedValue: The `projectedValue` from e.g. `StateViewModel`. - public init(_ projectedValue: ObservableViewModel.Projection) { - self.observableObject = projectedValue.observableObject - self.projectedValue = projectedValue - } - - /// Creates an `ObservedViewModel` for the specified `KMMViewModel`. - /// - Parameter wrappedValue: The `KMMViewModel` to observe. - public init(wrappedValue: ViewModel) { - let observableObject = createObservableViewModel(for: wrappedValue) - self.observableObject = observableObject - self.projectedValue = ObservableViewModel.Projection(observableObject) - } -} diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/StateViewModel.swift b/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/StateViewModel.swift deleted file mode 100644 index 4d82026b..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/KMMViewModelSwiftUI/StateViewModel.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// StateViewModel.swift -// KMMViewModelSwiftUI -// -// Created by Rick Clephas on 27/11/2022. -// - -import SwiftUI -import KMMViewModelCore -import KMMViewModelCoreObjC - -/// A `StateObject` property wrapper for `KMMViewModel`s. -@available(iOS 14.0, macOS 11.0, tvOS 14.0, watchOS 7.0, *) -@propertyWrapper -public struct StateViewModel: DynamicProperty { - - @StateObject private var observableObject: ObservableViewModel - - /// The underlying `KMMViewModel` referenced by the `StateViewModel`. - public var wrappedValue: ViewModel { observableObject.viewModel } - - /// A projection of the observed `KMMViewModel` that creates bindings to its properties using dynamic member lookup. - public var projectedValue: ObservableViewModel.Projection { - ObservableViewModel.Projection(observableObject) - } - - /// Creates a `StateViewModel` for the specified `KMMViewModel`. - /// - Parameter wrappedValue: The `KMMViewModel` to observe. - public init(wrappedValue: @autoclosure @escaping () -> ViewModel) { - self._observableObject = StateObject(wrappedValue: createObservableViewModel(for: wrappedValue())) - } -} diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/LICENSE b/ios/BikeShare/Pods/KMMViewModelSwiftUI/LICENSE deleted file mode 100644 index acc71fba..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 Rick Clephas - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/ios/BikeShare/Pods/KMMViewModelSwiftUI/README.md b/ios/BikeShare/Pods/KMMViewModelSwiftUI/README.md deleted file mode 100644 index 2d402c10..00000000 --- a/ios/BikeShare/Pods/KMMViewModelSwiftUI/README.md +++ /dev/null @@ -1,145 +0,0 @@ -# KMM-ViewModel - -A library that allows you to share ViewModels between Android and iOS. - -## Compatibility - -The latest version of the library uses Kotlin version `1.7.21`. -Compatibility versions for newer Kotlin versions are also available: - -| Version | Version suffix | Kotlin | Coroutines | -|--------------|-------------------|:----------:|:----------:| -| _latest_ | -kotlin-1.8.0-RC2 | 1.8.0-RC2 | 1.6.4 | -| **_latest_** | **_no suffix_** | **1.7.21** | **1.6.4** | - -## Kotlin - -Add the library to your shared Kotlin module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Create your ViewModels almost as you would in Android: -```kotlin -import com.rickclephas.kmm.viewmodel.KMMViewModel -import com.rickclephas.kmm.viewmodel.MutableStateFlow -import com.rickclephas.kmm.viewmodel.stateIn - -// 1: use KMMViewModel instead of ViewModel -open class TimeTravelViewModel: KMMViewModel() { - - private val clockTime = Clock.time - - /** - * A [StateFlow] that emits the actual time. - */ - val actualTime = clockTime.map { formatTime(it) } - // 2: supply viewModelScope to your stateIn calls - .stateIn(viewModelScope, SharingStarted.WhileSubscribed(), "N/A") - - // 3: supply viewModelScope to your MutableStateFlows - private val _travelEffect = MutableStateFlow(viewModelScope, null) - /** - * A [StateFlow] that emits the applied [TravelEffect]. - */ - val travelEffect = _travelEffect.asStateFlow() -} -``` - -You need to use `viewModelScope` wherever possible to propagate state changes to iOS. -In other cases you can access the `ViewModelScope.coroutineScope` property directly. - -### KMP-NativeCoroutines - -Use the `@NativeCoroutinesState` annotation from [KMP-NativeCoroutines](https://github.com/rickclephas/KMP-NativeCoroutines) -to turn your `StateFlow`s into properties in Swift: - -```kotlin -@NativeCoroutinesState -val travelEffect = _travelEffect.asStateFlow() -``` - -Checkout the [README](https://github.com/rickclephas/KMP-NativeCoroutines/blob/dev-1.0/README.md) -for more information and installation instructions for KMP-NativeCoroutines. - -
Alternative -

- -Alternatively you can create extension properties in your iOS source-set yourself: -```kotlin -val TimeTravelViewModel.travelEffectValue: TravelEffect? - get() = travelEffect.value -``` -

-
- -## Android - -Add the library to your Android module: -```kotlin -dependencies { - implementation("com.rickclephas.kmm:kmm-viewmodel-core:") -} -``` - -Use the view model like you would any other Android view model: -```kotlin -class TimeTravelFragment: Fragment(R.layout.fragment_time_travel) { - private val viewModel: TimeTravelViewModel by viewModels() -} -``` - -> **Note:** support for Jetpack Compose is coming soon. - -## Swift - -Add the Swift package to your `Package.swift` file: -```swift -dependencies: [ - .package(url: "https://github.com/rickclephas/KMM-ViewModel.git", from: "") -] -``` - -Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL: -`https://github.com/rickclephas/KMM-ViewModel.git`. - -Create a `KMMViewModel.swift` file with the following contents: -```swift -import KMMViewModelCore -import shared // This should be your shared KMM module - -extension Kmm_viewmodel_coreKMMViewModel: KMMViewModel { } -``` - -After that you can use your view model almost as if it were an `ObservableObject`. -Just use the view model specific property wrappers and functions: - -| `ObservableObject` | `KMMViewModel` | -|-------------------------|----------------------------| -| `@StateObject` | `@StateViewModel` | -| `@ObservedObject` | `@ObservedViewModel` | -| `@EnvironmentObject` | `@EnvironmentViewModel` | -| `environmentObject(_:)` | `environmentViewModel(_:)` | - -E.g. to use the `TimeTravelViewModel` as a `StateObject`: -```swift -import SwiftUI -import KMMViewModelSwiftUI -import shared // This should be your shared KMM module - -struct ContentView: View { - @StateViewModel var viewModel = TimeTravelViewModel() -} -``` - -It's also possible to subclass your view model in Swift: -```swift -import Combine -import shared // This should be your shared KMM module - -class TimeTravelViewModel: shared.TimeTravelViewModel { - @Published var isResetDisabled: Bool = false -} -``` diff --git a/ios/BikeShare/Pods/Local Podspecs/common.podspec.json b/ios/BikeShare/Pods/Local Podspecs/common.podspec.json deleted file mode 100644 index be30a20e..00000000 --- a/ios/BikeShare/Pods/Local Podspecs/common.podspec.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "common", - "version": "1.0", - "homepage": "homepage placeholder", - "source": { - "http": "" - }, - "authors": "", - "license": "", - "summary": "BikeShare common module", - "vendored_frameworks": "build/cocoapods/framework/common.framework", - "libraries": "c++", - "pod_target_xcconfig": { - "KOTLIN_PROJECT_PATH": ":common", - "PRODUCT_MODULE_NAME": "common" - }, - "script_phases": [ - { - "name": "Build common", - "execution_position": "before_compile", - "shell_path": "/bin/sh", - "script": " 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\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$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\"\n" - } - ], - "platforms": { - "osx": null, - "ios": null, - "tvos": null, - "watchos": null - } -} diff --git a/ios/BikeShare/Pods/Manifest.lock b/ios/BikeShare/Pods/Manifest.lock deleted file mode 100644 index e735fcb2..00000000 --- a/ios/BikeShare/Pods/Manifest.lock +++ /dev/null @@ -1,27 +0,0 @@ -PODS: - - common (1.0) - - Introspect (0.1.3) - - SwiftUIRefresh (0.0.3): - - Introspect (~> 0.1.0) - -DEPENDENCIES: - - common (from `../../common`) - - SwiftUIRefresh - -SPEC REPOS: - trunk: - - Introspect - - SwiftUIRefresh - -EXTERNAL SOURCES: - common: - :path: "../../common" - -SPEC CHECKSUMS: - common: d0b140f126bd2692fd6aec15e2a218ec86900017 - Introspect: 2be020f30f084ada52bb4387fff83fa52c5c400e - SwiftUIRefresh: ca6ae2718d25aad5dd68bbf5d2ae36ef6ade98bf - -PODFILE CHECKSUM: b964bed147d8ebc592d449953689a09601f9c098 - -COCOAPODS: 1.12.0 diff --git a/ios/BikeShare/Pods/Pods.xcodeproj/project.pbxproj b/ios/BikeShare/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index f51ff6c6..00000000 --- a/ios/BikeShare/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,889 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 52; - objects = { - -/* Begin PBXAggregateTarget section */ - 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 1D5F1C893FEB1534A938215715B55EDF /* Build configuration list for PBXAggregateTarget "common" */; - buildPhases = ( - 7117138631DE463A2F0FAF7227B3ADA6 /* [CP-User] Build common */, - ); - dependencies = ( - ); - name = common; - }; -/* End PBXAggregateTarget section */ - -/* Begin PBXBuildFile section */ - 193CEBC4278DA5CE576C6090772C4050 /* SwiftUIRefresh-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = A9025973D8E92CD6D1C543E2466D2CD5 /* SwiftUIRefresh-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 1BF325A94F66DF3C64B18065505296C6 /* Introspect-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9EF1870FED1E36C58D28D38D598229EA /* Introspect-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - 48BCE0FB07332E0F6AB7CDEF7FC0BA5B /* UIKitIntrospectionViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FF34C96CDA0F57C6AE6F782CF7D4C34 /* UIKitIntrospectionViewController.swift */; }; - 5834A3D7BAB8466E5347A1FD0375B031 /* Introspect.swift in Sources */ = {isa = PBXBuildFile; fileRef = B02284E1F1F9C615525C727B83F2ED22 /* Introspect.swift */; }; - 58693C1B2B7274856BE62D35CE6E4BC3 /* AppKitIntrospectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A51D11253F07C844A54B76E7D0F37EF /* AppKitIntrospectionView.swift */; }; - 689E1D3B924569D165303923E192CC9F /* ViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BF13E4C134627CAC1D3907A9BA5F45E /* ViewExtensions.swift */; }; - 831CA723964637A54247FFFD6C2BEEF3 /* PullToRefresh.swift in Sources */ = {isa = PBXBuildFile; fileRef = 572A8F9EC78EFAE56E6A752625B4BF2A /* PullToRefresh.swift */; }; - 9617F54A812A6FEFF048620D4155E808 /* SwiftUIRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0348785A9F6002353DA7D3FF3957EE9F /* SwiftUIRefresh-dummy.m */; }; - CE0982DDC3A67B0D1A4AA2CC5972F7C0 /* Pods-BikeShare-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E9B7F71C0130EBBB6A5884AF15119332 /* Pods-BikeShare-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; }; - E22CBD31FAE4E8D6CF29555C348DBB8C /* UIKitIntrospectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D5362FBBCB2A35285C263084B874B14 /* UIKitIntrospectionView.swift */; }; - E7D22CBDB0EA8B8634851EBDF049335D /* Pods-BikeShare-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 44C0196BCB0F3A475AF3CDEC7A62045C /* Pods-BikeShare-dummy.m */; }; - F73189EFCB73F00809CFBB6AED83E7A4 /* Introspect-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BEA510DC8B31178E9745442CABA458AE /* Introspect-dummy.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 12DA5DE3F1888ECB4823C421AFAA15E7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97E3685499568DCCBA6C15905F707BDC; - remoteInfo = Introspect; - }; - 318C6DC261069C7947C92B90B7BEA743 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 97E3685499568DCCBA6C15905F707BDC; - remoteInfo = Introspect; - }; - 5A03A7C92D2079B7E1CFB0A173431DE0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = DF1043773BCDA1ADFCD6F61A2E539F50; - remoteInfo = SwiftUIRefresh; - }; - F331684446CE6D8B5DDF753D94EEDC2D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 8217FBB9D1218C346C0781D0B8F2BBE8; - remoteInfo = common; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0348785A9F6002353DA7D3FF3957EE9F /* SwiftUIRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SwiftUIRefresh-dummy.m"; sourceTree = ""; }; - 049A62BA71C9759A81E599890BD82642 /* common.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.release.xcconfig; sourceTree = ""; }; - 0BF13E4C134627CAC1D3907A9BA5F45E /* ViewExtensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ViewExtensions.swift; path = Introspect/ViewExtensions.swift; sourceTree = ""; }; - 0F3F3D8B720EA8446A3FFA6CC7D017D6 /* common.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.debug.xcconfig; sourceTree = ""; }; - 13F45E63EDC6E4CA97D56D426170F57B /* Pods-BikeShare.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-BikeShare.modulemap"; sourceTree = ""; }; - 1A51D11253F07C844A54B76E7D0F37EF /* AppKitIntrospectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = AppKitIntrospectionView.swift; path = Introspect/AppKitIntrospectionView.swift; sourceTree = ""; }; - 2216AEE85455EADE863085687DFA2495 /* SwiftUIRefresh.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftUIRefresh.release.xcconfig; sourceTree = ""; }; - 3D5362FBBCB2A35285C263084B874B14 /* UIKitIntrospectionView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIKitIntrospectionView.swift; path = Introspect/UIKitIntrospectionView.swift; sourceTree = ""; }; - 44C0196BCB0F3A475AF3CDEC7A62045C /* Pods-BikeShare-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BikeShare-dummy.m"; sourceTree = ""; }; - 4D68C6CAD8E0DCB3BF1D35BCD921150E /* common.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = common.framework; path = build/cocoapods/framework/common.framework; sourceTree = ""; }; - 5222BF2828E0E9EC0392B83A881FA590 /* Introspect.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Introspect.modulemap; sourceTree = ""; }; - 572A8F9EC78EFAE56E6A752625B4BF2A /* PullToRefresh.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = PullToRefresh.swift; path = Sources/PullToRefresh.swift; sourceTree = ""; }; - 59EC07D162EFABED2BD6DABD4A6B1E02 /* SwiftUIRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftUIRefresh-prefix.pch"; sourceTree = ""; }; - 6605002323490E695009C49B8C115E65 /* Introspect.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Introspect.release.xcconfig; sourceTree = ""; }; - 6FF34C96CDA0F57C6AE6F782CF7D4C34 /* UIKitIntrospectionViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = UIKitIntrospectionViewController.swift; path = Introspect/UIKitIntrospectionViewController.swift; sourceTree = ""; }; - 7FB86C9B5FFA7AE1F8A3810D68ECABEA /* SwiftUIRefresh */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = SwiftUIRefresh; path = libSwiftUIRefresh.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 9C93F0C5CFE550D65CA14344BE577D95 /* Pods-BikeShare-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BikeShare-acknowledgements.plist"; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9EF1870FED1E36C58D28D38D598229EA /* Introspect-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Introspect-umbrella.h"; sourceTree = ""; }; - A3FE961F5F736892348DCA72BB20AD3D /* Pods-BikeShare-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BikeShare-acknowledgements.markdown"; sourceTree = ""; }; - A5257E63329B7716414B3CD4E16F4AFE /* Pods-BikeShare.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BikeShare.release.xcconfig"; sourceTree = ""; }; - A76A5B6905C1165390BA76252A1AB697 /* SwiftUIRefresh.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SwiftUIRefresh.modulemap; sourceTree = ""; }; - A7A8582279F44DAA1A535F514ADCC098 /* Pods-BikeShare */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "Pods-BikeShare"; path = "libPods-BikeShare.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A9025973D8E92CD6D1C543E2466D2CD5 /* SwiftUIRefresh-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SwiftUIRefresh-umbrella.h"; sourceTree = ""; }; - B02284E1F1F9C615525C727B83F2ED22 /* Introspect.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Introspect.swift; path = Introspect/Introspect.swift; sourceTree = ""; }; - B55463C969CAC5FE8BDC11CF16904E71 /* SwiftUIRefresh.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SwiftUIRefresh.debug.xcconfig; sourceTree = ""; }; - B70D070C17957F1D43750B9A8D887BC2 /* Pods-BikeShare.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BikeShare.debug.xcconfig"; sourceTree = ""; }; - BEA510DC8B31178E9745442CABA458AE /* Introspect-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Introspect-dummy.m"; sourceTree = ""; }; - BF0CC6554CBF100BBBFADC38D7FBA8DD /* Pods-BikeShare-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BikeShare-frameworks.sh"; sourceTree = ""; }; - C6D408C7CFB6C685AFBE4236CA1059C3 /* Introspect.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Introspect.debug.xcconfig; sourceTree = ""; }; - D0A70003FD5E49B30CA83DAAFE03116B /* Introspect */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = Introspect; path = libIntrospect.a; sourceTree = BUILT_PRODUCTS_DIR; }; - E9B7F71C0130EBBB6A5884AF15119332 /* Pods-BikeShare-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BikeShare-umbrella.h"; sourceTree = ""; }; - F1FEE9BE4C0814C5BCB00A88F2D1D5AD /* common.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = common.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - F29AA0F358264A11F2B7D7A6A0ADB51F /* Introspect-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Introspect-prefix.pch"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - B4734DDA3C7593F10E1B66AA5A53898E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E720A7C4F98B047DF8A1A34F2D4CB214 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F9AEE72016B4232E0207E99407FC1112 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 076C1D8476FAC5B0FC5723A04CA29692 /* common */ = { - isa = PBXGroup; - children = ( - 7EA81EDCC1894A83742442426A8EF4A6 /* Frameworks */, - 306BF0C9F644F9E3C60AC852D6C66DD4 /* Pod */, - 958A8BC9E551453743F380CFE79A2E5A /* Support Files */, - ); - name = common; - path = ../../../common; - sourceTree = ""; - }; - 306BF0C9F644F9E3C60AC852D6C66DD4 /* Pod */ = { - isa = PBXGroup; - children = ( - F1FEE9BE4C0814C5BCB00A88F2D1D5AD /* common.podspec */, - ); - name = Pod; - sourceTree = ""; - }; - 43E2055CCA8AB8C38C0F08E6BEAA3CFA /* Products */ = { - isa = PBXGroup; - children = ( - D0A70003FD5E49B30CA83DAAFE03116B /* Introspect */, - A7A8582279F44DAA1A535F514ADCC098 /* Pods-BikeShare */, - 7FB86C9B5FFA7AE1F8A3810D68ECABEA /* SwiftUIRefresh */, - ); - name = Products; - sourceTree = ""; - }; - 492612A6FD3C4C66C8B3137897054F7B /* SwiftUIRefresh */ = { - isa = PBXGroup; - children = ( - 572A8F9EC78EFAE56E6A752625B4BF2A /* PullToRefresh.swift */, - 85BC17875E9BD0921B7AC51BCEB1D343 /* Support Files */, - ); - name = SwiftUIRefresh; - path = SwiftUIRefresh; - sourceTree = ""; - }; - 6A0C1583C54474CA9EC4779A96AD71D8 /* Support Files */ = { - isa = PBXGroup; - children = ( - 5222BF2828E0E9EC0392B83A881FA590 /* Introspect.modulemap */, - BEA510DC8B31178E9745442CABA458AE /* Introspect-dummy.m */, - F29AA0F358264A11F2B7D7A6A0ADB51F /* Introspect-prefix.pch */, - 9EF1870FED1E36C58D28D38D598229EA /* Introspect-umbrella.h */, - C6D408C7CFB6C685AFBE4236CA1059C3 /* Introspect.debug.xcconfig */, - 6605002323490E695009C49B8C115E65 /* Introspect.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/Introspect"; - sourceTree = ""; - }; - 74D96C14856ADADBAB941AA2DFC0C287 /* Pods */ = { - isa = PBXGroup; - children = ( - BAC8C7A50A07FE6859590C10B1798376 /* Introspect */, - 492612A6FD3C4C66C8B3137897054F7B /* SwiftUIRefresh */, - ); - name = Pods; - sourceTree = ""; - }; - 7EA81EDCC1894A83742442426A8EF4A6 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4D68C6CAD8E0DCB3BF1D35BCD921150E /* common.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 85BC17875E9BD0921B7AC51BCEB1D343 /* Support Files */ = { - isa = PBXGroup; - children = ( - A76A5B6905C1165390BA76252A1AB697 /* SwiftUIRefresh.modulemap */, - 0348785A9F6002353DA7D3FF3957EE9F /* SwiftUIRefresh-dummy.m */, - 59EC07D162EFABED2BD6DABD4A6B1E02 /* SwiftUIRefresh-prefix.pch */, - A9025973D8E92CD6D1C543E2466D2CD5 /* SwiftUIRefresh-umbrella.h */, - B55463C969CAC5FE8BDC11CF16904E71 /* SwiftUIRefresh.debug.xcconfig */, - 2216AEE85455EADE863085687DFA2495 /* SwiftUIRefresh.release.xcconfig */, - ); - name = "Support Files"; - path = "../Target Support Files/SwiftUIRefresh"; - sourceTree = ""; - }; - 958A8BC9E551453743F380CFE79A2E5A /* Support Files */ = { - isa = PBXGroup; - children = ( - 0F3F3D8B720EA8446A3FFA6CC7D017D6 /* common.debug.xcconfig */, - 049A62BA71C9759A81E599890BD82642 /* common.release.xcconfig */, - ); - name = "Support Files"; - path = "../ios/BikeShare/Pods/Target Support Files/common"; - sourceTree = ""; - }; - A02B31E0369BF8387274CBB776E1754E /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - F942B71748BC94EFA17882DD360A99D8 /* Pods-BikeShare */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - BAC8C7A50A07FE6859590C10B1798376 /* Introspect */ = { - isa = PBXGroup; - children = ( - 1A51D11253F07C844A54B76E7D0F37EF /* AppKitIntrospectionView.swift */, - B02284E1F1F9C615525C727B83F2ED22 /* Introspect.swift */, - 3D5362FBBCB2A35285C263084B874B14 /* UIKitIntrospectionView.swift */, - 6FF34C96CDA0F57C6AE6F782CF7D4C34 /* UIKitIntrospectionViewController.swift */, - 0BF13E4C134627CAC1D3907A9BA5F45E /* ViewExtensions.swift */, - 6A0C1583C54474CA9EC4779A96AD71D8 /* Support Files */, - ); - name = Introspect; - path = Introspect; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */, - D89477F20FB1DE18A04690586D7808C4 /* Frameworks */, - 74D96C14856ADADBAB941AA2DFC0C287 /* Pods */, - 43E2055CCA8AB8C38C0F08E6BEAA3CFA /* Products */, - A02B31E0369BF8387274CBB776E1754E /* Targets Support Files */, - ); - sourceTree = ""; - }; - D89477F20FB1DE18A04690586D7808C4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; - E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */ = { - isa = PBXGroup; - children = ( - 076C1D8476FAC5B0FC5723A04CA29692 /* common */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - F942B71748BC94EFA17882DD360A99D8 /* Pods-BikeShare */ = { - isa = PBXGroup; - children = ( - 13F45E63EDC6E4CA97D56D426170F57B /* Pods-BikeShare.modulemap */, - A3FE961F5F736892348DCA72BB20AD3D /* Pods-BikeShare-acknowledgements.markdown */, - 9C93F0C5CFE550D65CA14344BE577D95 /* Pods-BikeShare-acknowledgements.plist */, - 44C0196BCB0F3A475AF3CDEC7A62045C /* Pods-BikeShare-dummy.m */, - BF0CC6554CBF100BBBFADC38D7FBA8DD /* Pods-BikeShare-frameworks.sh */, - E9B7F71C0130EBBB6A5884AF15119332 /* Pods-BikeShare-umbrella.h */, - B70D070C17957F1D43750B9A8D887BC2 /* Pods-BikeShare.debug.xcconfig */, - A5257E63329B7716414B3CD4E16F4AFE /* Pods-BikeShare.release.xcconfig */, - ); - name = "Pods-BikeShare"; - path = "Target Support Files/Pods-BikeShare"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0255422CD587C6BFABBEBDDE9286D0B2 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - CE0982DDC3A67B0D1A4AA2CC5972F7C0 /* Pods-BikeShare-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7178F4229C63D3316C8F1BC2E59F087D /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 193CEBC4278DA5CE576C6090772C4050 /* SwiftUIRefresh-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - CCD623BA63BEA64E45EC1EBCC4C9A884 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 1BF325A94F66DF3C64B18065505296C6 /* Introspect-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 97E3685499568DCCBA6C15905F707BDC /* Introspect */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3499D8064D16E11A47ED838D8D1C60B7 /* Build configuration list for PBXNativeTarget "Introspect" */; - buildPhases = ( - CCD623BA63BEA64E45EC1EBCC4C9A884 /* Headers */, - 80BF3B8B4F2C42DE0F072253C812B393 /* Sources */, - E720A7C4F98B047DF8A1A34F2D4CB214 /* Frameworks */, - 663858388BAAFA3C27BEA5FED861A416 /* Copy generated compatibility header */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Introspect; - productName = Introspect; - productReference = D0A70003FD5E49B30CA83DAAFE03116B /* Introspect */; - productType = "com.apple.product-type.library.static"; - }; - C409CDC9030E182436E030AFB332F090 /* Pods-BikeShare */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7588EB99B26125625CD86C50AEB1A209 /* Build configuration list for PBXNativeTarget "Pods-BikeShare" */; - buildPhases = ( - 0255422CD587C6BFABBEBDDE9286D0B2 /* Headers */, - 5FD3FF2327E3A297B20568472FEBF355 /* Sources */, - B4734DDA3C7593F10E1B66AA5A53898E /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 61F8C3A50D3B2DF78049CE3972D89E3A /* PBXTargetDependency */, - 898E3FE80E4613EDC0F4756BC1B6388C /* PBXTargetDependency */, - 1139060929BD38F81CB85EAF22428656 /* PBXTargetDependency */, - ); - name = "Pods-BikeShare"; - productName = "Pods-BikeShare"; - productReference = A7A8582279F44DAA1A535F514ADCC098 /* Pods-BikeShare */; - productType = "com.apple.product-type.library.static"; - }; - DF1043773BCDA1ADFCD6F61A2E539F50 /* SwiftUIRefresh */ = { - isa = PBXNativeTarget; - buildConfigurationList = E396D65E6298D19A806AB54AB03BC0C9 /* Build configuration list for PBXNativeTarget "SwiftUIRefresh" */; - buildPhases = ( - 7178F4229C63D3316C8F1BC2E59F087D /* Headers */, - 0E92F7FD6887EF9D8F89A32F9E249638 /* Sources */, - F9AEE72016B4232E0207E99407FC1112 /* Frameworks */, - 4ACFD50D78AE9AE981C946319E2A841B /* Copy generated compatibility header */, - ); - buildRules = ( - ); - dependencies = ( - 64EE2972E395D1A4965CEA06BE48ACA3 /* PBXTargetDependency */, - ); - name = SwiftUIRefresh; - productName = SwiftUIRefresh; - productReference = 7FB86C9B5FFA7AE1F8A3810D68ECABEA /* SwiftUIRefresh */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BFDFE7DC352907FC980B868725387E98 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 1300; - LastUpgradeCheck = 1300; - }; - buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 11.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - Base, - en, - ); - mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 43E2055CCA8AB8C38C0F08E6BEAA3CFA /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */, - 97E3685499568DCCBA6C15905F707BDC /* Introspect */, - C409CDC9030E182436E030AFB332F090 /* Pods-BikeShare */, - DF1043773BCDA1ADFCD6F61A2E539F50 /* SwiftUIRefresh */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - 4ACFD50D78AE9AE981C946319E2A841B /* Copy generated compatibility header */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap", - "${PODS_ROOT}/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h", - ); - name = "Copy generated compatibility header"; - outputFileListPaths = ( - ); - outputPaths = ( - "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/SwiftUIRefresh-umbrella.h", - "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/SwiftUIRefresh/SwiftUIRefresh-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; - }; - 663858388BAAFA3C27BEA5FED861A416 /* Copy generated compatibility header */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h", - "${PODS_ROOT}/Headers/Public/Introspect/Introspect.modulemap", - "${PODS_ROOT}/Headers/Public/Introspect/Introspect-umbrella.h", - ); - name = "Copy generated compatibility header"; - outputFileListPaths = ( - ); - outputPaths = ( - "${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap", - "${BUILT_PRODUCTS_DIR}/Introspect-umbrella.h", - "${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "COMPATIBILITY_HEADER_PATH=\"${BUILT_PRODUCTS_DIR}/Swift Compatibility Header/${PRODUCT_MODULE_NAME}-Swift.h\"\nMODULE_MAP_PATH=\"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap\"\n\nditto \"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h\" \"${COMPATIBILITY_HEADER_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Introspect/Introspect.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/Introspect/Introspect-umbrella.h\" \"${BUILT_PRODUCTS_DIR}\"\nprintf \"\\n\\nmodule ${PRODUCT_MODULE_NAME}.Swift {\\n header \\\"${COMPATIBILITY_HEADER_PATH}\\\"\\n requires objc\\n}\\n\" >> \"${MODULE_MAP_PATH}\"\n"; - }; - 7117138631DE463A2F0FAF7227B3ADA6 /* [CP-User] Build common */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - name = "[CP-User] Build common"; - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - 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\n fi\n set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$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\"\n"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 0E92F7FD6887EF9D8F89A32F9E249638 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 831CA723964637A54247FFFD6C2BEEF3 /* PullToRefresh.swift in Sources */, - 9617F54A812A6FEFF048620D4155E808 /* SwiftUIRefresh-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5FD3FF2327E3A297B20568472FEBF355 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - E7D22CBDB0EA8B8634851EBDF049335D /* Pods-BikeShare-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 80BF3B8B4F2C42DE0F072253C812B393 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 58693C1B2B7274856BE62D35CE6E4BC3 /* AppKitIntrospectionView.swift in Sources */, - 5834A3D7BAB8466E5347A1FD0375B031 /* Introspect.swift in Sources */, - F73189EFCB73F00809CFBB6AED83E7A4 /* Introspect-dummy.m in Sources */, - E22CBD31FAE4E8D6CF29555C348DBB8C /* UIKitIntrospectionView.swift in Sources */, - 48BCE0FB07332E0F6AB7CDEF7FC0BA5B /* UIKitIntrospectionViewController.swift in Sources */, - 689E1D3B924569D165303923E192CC9F /* ViewExtensions.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 1139060929BD38F81CB85EAF22428656 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = common; - target = 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */; - targetProxy = F331684446CE6D8B5DDF753D94EEDC2D /* PBXContainerItemProxy */; - }; - 61F8C3A50D3B2DF78049CE3972D89E3A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Introspect; - target = 97E3685499568DCCBA6C15905F707BDC /* Introspect */; - targetProxy = 12DA5DE3F1888ECB4823C421AFAA15E7 /* PBXContainerItemProxy */; - }; - 64EE2972E395D1A4965CEA06BE48ACA3 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Introspect; - target = 97E3685499568DCCBA6C15905F707BDC /* Introspect */; - targetProxy = 318C6DC261069C7947C92B90B7BEA743 /* PBXContainerItemProxy */; - }; - 898E3FE80E4613EDC0F4756BC1B6388C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SwiftUIRefresh; - target = DF1043773BCDA1ADFCD6F61A2E539F50 /* SwiftUIRefresh */; - targetProxy = 5A03A7C92D2079B7E1CFB0A173431DE0 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0F0D8777495AC574D991EA0024FB0BC7 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6605002323490E695009C49B8C115E65 /* Introspect.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Introspect/Introspect-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MODULEMAP_FILE = Headers/Public/Introspect/Introspect.modulemap; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Introspect; - PRODUCT_NAME = Introspect; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 32135EAD0B259EE60F8BE942370C965E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 0F3F3D8B720EA8446A3FFA6CC7D017D6 /* common.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 3A0926C30A702168D4AC556899551404 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B55463C969CAC5FE8BDC11CF16904E71 /* SwiftUIRefresh.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MODULEMAP_FILE = Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftUIRefresh; - PRODUCT_NAME = SwiftUIRefresh; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 4798B305AD0B48B7D6BAD1ECC2DF9383 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A5257E63329B7716414B3CD4E16F4AFE /* Pods-BikeShare.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 4E32CE446346E9D20CD199F47D252DCC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2216AEE85455EADE863085687DFA2495 /* SwiftUIRefresh.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 13.0; - MODULEMAP_FILE = Headers/Public/SwiftUIRefresh/SwiftUIRefresh.modulemap; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = SwiftUIRefresh; - PRODUCT_NAME = SwiftUIRefresh; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 55229197A5024EB4D32F47136D0818C8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 049A62BA71C9759A81E599890BD82642 /* common.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CLANG_ENABLE_OBJC_WEAK = NO; - IPHONEOS_DEPLOYMENT_TARGET = 4.3; - LD_RUNPATH_SEARCH_PATHS = ( - "$(inherited)", - "@executable_path/Frameworks", - ); - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 76F59BF3BB7E4FD3BA040807673DD40C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B70D070C17957F1D43750B9A8D887BC2 /* Pods-BikeShare.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 9553C89E183877A5CB2F3C6801BEC129 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - BFD824F2C44D411715B371EC5C2734D4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C6D408C7CFB6C685AFBE4236CA1059C3 /* Introspect.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_OBJC_WEAK = NO; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - GCC_PREFIX_HEADER = "Target Support Files/Introspect/Introspect-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MODULEMAP_FILE = Headers/Public/Introspect/Introspect.modulemap; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRIVATE_HEADERS_FOLDER_PATH = ""; - PRODUCT_MODULE_NAME = Introspect; - PRODUCT_NAME = Introspect; - PUBLIC_HEADERS_FOLDER_PATH = ""; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.1; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1D5F1C893FEB1534A938215715B55EDF /* Build configuration list for PBXAggregateTarget "common" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 32135EAD0B259EE60F8BE942370C965E /* Debug */, - 55229197A5024EB4D32F47136D0818C8 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3499D8064D16E11A47ED838D8D1C60B7 /* Build configuration list for PBXNativeTarget "Introspect" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - BFD824F2C44D411715B371EC5C2734D4 /* Debug */, - 0F0D8777495AC574D991EA0024FB0BC7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 90D4D09BCB6A4660E43ACBE9ECB6FE9A /* Debug */, - 9553C89E183877A5CB2F3C6801BEC129 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7588EB99B26125625CD86C50AEB1A209 /* Build configuration list for PBXNativeTarget "Pods-BikeShare" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 76F59BF3BB7E4FD3BA040807673DD40C /* Debug */, - 4798B305AD0B48B7D6BAD1ECC2DF9383 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - E396D65E6298D19A806AB54AB03BC0C9 /* Build configuration list for PBXNativeTarget "SwiftUIRefresh" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3A0926C30A702168D4AC556899551404 /* Debug */, - 4E32CE446346E9D20CD199F47D252DCC /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; -} diff --git a/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/Pods-BikeShare.xcscheme b/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/Pods-BikeShare.xcscheme deleted file mode 100644 index cd24bc09..00000000 --- a/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/Pods-BikeShare.xcscheme +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index ae24799a..00000000 --- a/ios/BikeShare/Pods/Pods.xcodeproj/xcuserdata/joreilly.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,31 +0,0 @@ - - - - - SchemeUserState - - Introspect.xcscheme - - isShown - - - Pods-BikeShare.xcscheme - - isShown - - - SwiftUIRefresh.xcscheme - - isShown - - - common.xcscheme - - isShown - - - - SuppressBuildableAutocreation - - - diff --git a/ios/BikeShare/Pods/SwiftUIRefresh/LICENSE b/ios/BikeShare/Pods/SwiftUIRefresh/LICENSE deleted file mode 100644 index 11206261..00000000 --- a/ios/BikeShare/Pods/SwiftUIRefresh/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019 Timber Software (https://timber.so/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/ios/BikeShare/Pods/SwiftUIRefresh/README.md b/ios/BikeShare/Pods/SwiftUIRefresh/README.md deleted file mode 100644 index 1ebd6980..00000000 --- a/ios/BikeShare/Pods/SwiftUIRefresh/README.md +++ /dev/null @@ -1,56 +0,0 @@ -SwiftUI-Refresh -=============== - -Maintainer: [@ldiqual](https://github.com/ldiqual) - -Native Pull To Refresh in SwiftUI. - -What is this? -------------- - -SwiftUI-Refresh adds a native `UIRefreshControl` to a SwiftUI List view. It does this by introspecting the view hierarchy to find the relevant `UITableView`, then adding a refresh control to it. - -Demo ----- - - - -Install -------- - -### SwiftPM - -``` -https://github.com/timbersoftware/SwiftUIRefresh.git -``` - -### Cocoapods - -``` -pod "SwiftUIRefresh" -``` - -Usage ------ - -``` -import SwiftUI -import SwiftUIRefresh - -struct ContentView: View { - - @State private var isShowing = false - var body: some View { - List { - Text("Item 1") - Text("Item 2") - } - .pullToRefresh(isShowing: $isShowing) { - DispatchQueue.main.asyncAfter(deadline: .now() + 1) { - self.isShowing = false - } - } - } -} -``` - diff --git a/ios/BikeShare/Pods/SwiftUIRefresh/Sources/PullToRefresh.swift b/ios/BikeShare/Pods/SwiftUIRefresh/Sources/PullToRefresh.swift deleted file mode 100644 index 51e2c514..00000000 --- a/ios/BikeShare/Pods/SwiftUIRefresh/Sources/PullToRefresh.swift +++ /dev/null @@ -1,93 +0,0 @@ -import SwiftUI -import Introspect - -private struct PullToRefresh: UIViewRepresentable { - - @Binding var isShowing: Bool - let onRefresh: () -> Void - - public init( - isShowing: Binding, - onRefresh: @escaping () -> Void - ) { - _isShowing = isShowing - self.onRefresh = onRefresh - } - - public class Coordinator { - let onRefresh: () -> Void - let isShowing: Binding - - init( - onRefresh: @escaping () -> Void, - isShowing: Binding - ) { - self.onRefresh = onRefresh - self.isShowing = isShowing - } - - @objc - func onValueChanged() { - isShowing.wrappedValue = true - onRefresh() - } - } - - public func makeUIView(context: UIViewRepresentableContext) -> UIView { - let view = UIView(frame: .zero) - view.isHidden = true - view.isUserInteractionEnabled = false - return view - } - - private func tableView(entry: UIView) -> UITableView? { - - // Search in ancestors - if let tableView = Introspect.findAncestor(ofType: UITableView.self, from: entry) { - return tableView - } - - guard let viewHost = Introspect.findViewHost(from: entry) else { - return nil - } - - // Search in siblings - return Introspect.previousSibling(containing: UITableView.self, from: viewHost) - } - - public func updateUIView(_ uiView: UIView, context: UIViewRepresentableContext) { - - DispatchQueue.main.asyncAfter(deadline: .now()) { - - guard let tableView = self.tableView(entry: uiView) else { - return - } - - if let refreshControl = tableView.refreshControl { - if self.isShowing { - refreshControl.beginRefreshing() - } else { - refreshControl.endRefreshing() - } - return - } - - let refreshControl = UIRefreshControl() - refreshControl.addTarget(context.coordinator, action: #selector(Coordinator.onValueChanged), for: .valueChanged) - tableView.refreshControl = refreshControl - } - } - - public func makeCoordinator() -> Coordinator { - return Coordinator(onRefresh: onRefresh, isShowing: $isShowing) - } -} - -extension View { - public func pullToRefresh(isShowing: Binding, onRefresh: @escaping () -> Void) -> some View { - return overlay( - PullToRefresh(isShowing: isShowing, onRefresh: onRefresh) - .frame(width: 0, height: 0) - ) - } -} diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-dummy.m b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-dummy.m deleted file mode 100644 index 32a240cc..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Introspect : NSObject -@end -@implementation PodsDummy_Introspect -@end diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-prefix.pch b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-prefix.pch deleted file mode 100644 index beb2a244..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-umbrella.h b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-umbrella.h deleted file mode 100644 index 573274a3..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double IntrospectVersionNumber; -FOUNDATION_EXPORT const unsigned char IntrospectVersionString[]; - diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.debug.xcconfig b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.debug.xcconfig deleted file mode 100644 index 9e8101a2..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.debug.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Introspect -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Introspect -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.modulemap b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.modulemap deleted file mode 100644 index 6093f160..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -module Introspect { - umbrella header "Introspect-umbrella.h" - - export * - module * { export * } -} diff --git a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.release.xcconfig b/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.release.xcconfig deleted file mode 100644 index 9e8101a2..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Introspect/Introspect.release.xcconfig +++ /dev/null @@ -1,13 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Introspect -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/Introspect -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.markdown b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.markdown deleted file mode 100644 index baa8bedc..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.markdown +++ /dev/null @@ -1,35 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## Introspect - -Copyright 2019 Timber Software - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -## SwiftUIRefresh - -Copyright (c) 2019 Timber Software (https://timber.so/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -Generated by CocoaPods - https://cocoapods.org diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.plist b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.plist deleted file mode 100644 index b720c014..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-acknowledgements.plist +++ /dev/null @@ -1,73 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright 2019 Timber Software - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - License - MIT - Title - Introspect - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2019 Timber Software (https://timber.so/) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - License - MIT - Title - SwiftUIRefresh - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-dummy.m b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-dummy.m deleted file mode 100644 index 91a5f8ec..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_BikeShare : NSObject -@end -@implementation PodsDummy_Pods_BikeShare -@end diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-input-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-input-files.xcfilelist deleted file mode 100644 index 380f82ec..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-input-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh -${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-output-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-output-files.xcfilelist deleted file mode 100644 index 14cb290a..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Debug-output-files.xcfilelist +++ /dev/null @@ -1 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/common.framework \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-input-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-input-files.xcfilelist deleted file mode 100644 index 380f82ec..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-input-files.xcfilelist +++ /dev/null @@ -1,2 +0,0 @@ -${PODS_ROOT}/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh -${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-output-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-output-files.xcfilelist deleted file mode 100644 index 14cb290a..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks-Release-output-files.xcfilelist +++ /dev/null @@ -1 +0,0 @@ -${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/common.framework \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh deleted file mode 100755 index 1f55068f..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-frameworks.sh +++ /dev/null @@ -1,186 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" -BCSYMBOLMAP_DIR="BCSymbolMaps" - - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then - # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied - find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do - echo "Installing $f" - install_bcsymbolmap "$f" "$destination" - rm "$f" - done - rmdir "${source}/${BCSYMBOLMAP_DIR}" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-umbrella.h b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-umbrella.h deleted file mode 100644 index 4088730b..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_BikeShareVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_BikeShareVersionString[]; - diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.debug.xcconfig b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.debug.xcconfig deleted file mode 100644 index 15cc1463..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.debug.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh" /usr/lib/swift -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh/SwiftUIRefresh.modulemap" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Introspect" -l"SwiftUIRefresh" -l"c++" -framework "common" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh/SwiftUIRefresh.modulemap" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh" -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap deleted file mode 100644 index 391c14a5..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -module Pods_BikeShare { - umbrella header "Pods-BikeShare-umbrella.h" - - export * - module * { export * } -} diff --git a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.release.xcconfig b/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.release.xcconfig deleted file mode 100644 index 15cc1463..00000000 --- a/ios/BikeShare/Pods/Target Support Files/Pods-BikeShare/Pods-BikeShare.release.xcconfig +++ /dev/null @@ -1,16 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks' -LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh" /usr/lib/swift -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh/SwiftUIRefresh.modulemap" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Introspect" -l"SwiftUIRefresh" -l"c++" -framework "common" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh/SwiftUIRefresh.modulemap" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh" -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-dummy.m b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-dummy.m deleted file mode 100644 index 4eb82482..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_SwiftUIRefresh : NSObject -@end -@implementation PodsDummy_SwiftUIRefresh -@end diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch deleted file mode 100644 index beb2a244..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-umbrella.h b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-umbrella.h deleted file mode 100644 index 7eb0fbc9..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double SwiftUIRefreshVersionNumber; -FOUNDATION_EXPORT const unsigned char SwiftUIRefreshVersionString[]; - diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.debug.xcconfig b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.debug.xcconfig deleted file mode 100644 index 9f357b83..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.debug.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftUIRefresh -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.modulemap b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.modulemap deleted file mode 100644 index 71523c0f..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -module SwiftUIRefresh { - umbrella header "SwiftUIRefresh-umbrella.h" - - export * - module * { export * } -} diff --git a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.release.xcconfig b/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.release.xcconfig deleted file mode 100644 index 9f357b83..00000000 --- a/ios/BikeShare/Pods/Target Support Files/SwiftUIRefresh/SwiftUIRefresh.release.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SwiftUIRefresh -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Introspect/Introspect.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}" -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SwiftUIRefresh -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES -SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Introspect" -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-input-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-input-files.xcfilelist deleted file mode 100644 index 31b402fc..00000000 --- a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-input-files.xcfilelist +++ /dev/null @@ -1 +0,0 @@ -${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework.dSYM \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-output-files.xcfilelist b/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-output-files.xcfilelist deleted file mode 100644 index 588ff750..00000000 --- a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms-output-files.xcfilelist +++ /dev/null @@ -1 +0,0 @@ -${DWARF_DSYM_FOLDER_PATH}/common.framework.dSYM \ No newline at end of file diff --git a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms.sh b/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms.sh deleted file mode 100755 index 1a789cc7..00000000 --- a/ios/BikeShare/Pods/Target Support Files/common/common-copy-dsyms.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - warn_missing_arch=${2:-true} - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - if [[ "$warn_missing_arch" == "true" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - fi - STRIP_BINARY_RETVAL=1 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=0 -} - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - warn_missing_arch=${2:-true} - if [ -r "$source" ]; then - # Copy the dSYM into the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .dSYM "$source")" - binary_name="$(ls "$source/Contents/Resources/DWARF")" - binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - - # Strip invalid architectures from the dSYM. - if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then - strip_invalid_archs "$binary" "$warn_missing_arch" - fi - if [[ $STRIP_BINARY_RETVAL == 0 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - mkdir -p "${DWARF_DSYM_FOLDER_PATH}" - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM" - fi - fi -} - -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -install_dsym "${PODS_ROOT}/../../../common/build/cocoapods/framework/common.framework.dSYM" diff --git a/ios/BikeShare/Pods/Target Support Files/common/common.debug.xcconfig b/ios/BikeShare/Pods/Target Support Files/common/common.debug.xcconfig deleted file mode 100644 index 7068101b..00000000 --- a/ios/BikeShare/Pods/Target Support Files/common/common.debug.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/common -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -KOTLIN_PROJECT_PATH = :common -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../common -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -PRODUCT_MODULE_NAME = common -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ios/BikeShare/Pods/Target Support Files/common/common.release.xcconfig b/ios/BikeShare/Pods/Target Support Files/common/common.release.xcconfig deleted file mode 100644 index 7068101b..00000000 --- a/ios/BikeShare/Pods/Target Support Files/common/common.release.xcconfig +++ /dev/null @@ -1,15 +0,0 @@ -CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/common -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../../common/build/cocoapods/framework" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -KOTLIN_PROJECT_PATH = :common -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../../common -PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -PRODUCT_MODULE_NAME = common -SKIP_INSTALL = YES -USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES