Update macOS app to use KMPNativeCoroutinesCombine
This commit is contained in:
parent
3b5c8026e2
commit
7765f2526b
40 changed files with 1689 additions and 137 deletions
|
@ -1,76 +1,41 @@
|
|||
import Foundation
|
||||
import Combine
|
||||
import common
|
||||
import KMPNativeCoroutinesCombine
|
||||
|
||||
|
||||
class PeopleInSpaceViewModel: ObservableObject {
|
||||
@Published var people = [Assignment]()
|
||||
@Published var issPosition = IssPosition(latitude: 0.0, longitude: 0.0)
|
||||
|
||||
private var subscription: AnyCancellable?
|
||||
private var positionCancellable: AnyCancellable?
|
||||
private var peopleCancellable: AnyCancellable?
|
||||
|
||||
private let repository: PeopleInSpaceRepository
|
||||
init(repository: PeopleInSpaceRepository) {
|
||||
self.repository = repository
|
||||
|
||||
subscription = IssPositionPublisher(repository: repository)
|
||||
.assign(to: \.issPosition, on: self)
|
||||
positionCancellable = createPublisher(for: repository.pollISSPositionNative())
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink(receiveCompletion: { completion in
|
||||
debugPrint(completion)
|
||||
}, receiveValue: { [weak self] value in
|
||||
self?.issPosition = value
|
||||
})
|
||||
}
|
||||
|
||||
func startObservingPeopleUpdates() {
|
||||
repository.startObservingPeopleUpdates(success: { data in
|
||||
self.people = data
|
||||
})
|
||||
peopleCancellable = createPublisher(for: repository.fetchPeopleAsFlowNative())
|
||||
.receive(on: DispatchQueue.main)
|
||||
.sink(receiveCompletion: { completion in
|
||||
debugPrint(completion)
|
||||
}, receiveValue: { [weak self] value in
|
||||
self?.people = value
|
||||
})
|
||||
}
|
||||
|
||||
func stopObservingPeopleUpdates() {
|
||||
repository.stopObservingPeopleUpdates()
|
||||
peopleCancellable?.cancel()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public struct IssPositionPublisher: Publisher {
|
||||
public typealias Output = IssPosition
|
||||
public typealias Failure = Never
|
||||
|
||||
private let repository: PeopleInSpaceRepository
|
||||
public init(repository: PeopleInSpaceRepository) {
|
||||
self.repository = repository
|
||||
}
|
||||
|
||||
public func receive<S: Subscriber>(subscriber: S) where S.Input == IssPosition, S.Failure == Failure {
|
||||
let subscription = IssPositionSubscription(repository: repository, subscriber: subscriber)
|
||||
subscriber.receive(subscription: subscription)
|
||||
}
|
||||
|
||||
final class IssPositionSubscription<S: Subscriber>: Subscription where S.Input == IssPosition, S.Failure == Failure {
|
||||
private var subscriber: S?
|
||||
private var job: Kotlinx_coroutines_coreJob? = nil
|
||||
|
||||
private let repository: PeopleInSpaceRepository
|
||||
|
||||
init(repository: PeopleInSpaceRepository, subscriber: S) {
|
||||
self.repository = repository
|
||||
self.subscriber = subscriber
|
||||
|
||||
job = repository.iosPollISSPosition().subscribe(
|
||||
scope: repository.iosScope,
|
||||
onEach: { position in
|
||||
subscriber.receive(position!)
|
||||
},
|
||||
onComplete: { subscriber.receive(completion: .finished) },
|
||||
onThrow: { error in debugPrint(error) }
|
||||
)
|
||||
}
|
||||
|
||||
func cancel() {
|
||||
subscriber = nil
|
||||
job?.cancel(cause: nil)
|
||||
}
|
||||
|
||||
func request(_ demand: Subscribers.Demand) {}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
target 'PeopleInSpace' do
|
||||
pod 'common', :path => '../../common'
|
||||
pod 'KMPNativeCoroutinesCombine', '0.8.0'
|
||||
end
|
||||
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
PODS:
|
||||
- common (1.0)
|
||||
- KMPNativeCoroutinesCombine (0.8.0):
|
||||
- KMPNativeCoroutinesCore (= 0.8.0)
|
||||
- KMPNativeCoroutinesCore (0.8.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- common (from `../../common`)
|
||||
- KMPNativeCoroutinesCombine (= 0.8.0)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- KMPNativeCoroutinesCombine
|
||||
- KMPNativeCoroutinesCore
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
common:
|
||||
|
@ -10,7 +19,9 @@ EXTERNAL SOURCES:
|
|||
|
||||
SPEC CHECKSUMS:
|
||||
common: ed5a58383c5a02f46882243487c7aac341a3064f
|
||||
KMPNativeCoroutinesCombine: cdb11619dbe26c69c27f1bdc50b0291d8fdbff8e
|
||||
KMPNativeCoroutinesCore: a833472b2d8aa40333dc3ff3ebeeeb7180423602
|
||||
|
||||
PODFILE CHECKSUM: 4a9ed74f1dcfe79bd3d28fe2f8ba019437e5cc29
|
||||
PODFILE CHECKSUM: 4c3532a0227a42a4cdf63df73c96962c3c9bfc06
|
||||
|
||||
COCOAPODS: 1.9.3
|
||||
COCOAPODS: 1.10.1
|
||||
|
|
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h
generated
Symbolic link
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h
|
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap
generated
Symbolic link
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap
generated
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap
|
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h
generated
Symbolic link
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h
generated
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h
|
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap
generated
Symbolic link
1
macOS/PeopleInSpace/Pods/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap
generated
Symbolic link
|
@ -0,0 +1 @@
|
|||
../../../Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap
|
60
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift
generated
Normal file
60
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Future.swift
generated
Normal file
|
@ -0,0 +1,60 @@
|
|||
//
|
||||
// Future.swift
|
||||
// KMPNativeCoroutinesCombine
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import KMPNativeCoroutinesCore
|
||||
|
||||
/// Creates an `AnyPublisher` for the provided `NativeSuspend`.
|
||||
/// - Parameter nativeSuspend: The native suspend function to await.
|
||||
/// - Returns: A publisher that either finishes with a single value or fails with an error.
|
||||
public func createFuture<Result, Failure: Error, Unit>(
|
||||
for nativeSuspend: @escaping NativeSuspend<Result, Failure, Unit>
|
||||
) -> AnyPublisher<Result, Failure> {
|
||||
return NativeSuspendFuture(nativeSuspend: nativeSuspend)
|
||||
.eraseToAnyPublisher()
|
||||
}
|
||||
|
||||
internal struct NativeSuspendFuture<Result, Failure: Error, Unit>: Publisher {
|
||||
|
||||
typealias Output = Result
|
||||
typealias Failure = Failure
|
||||
|
||||
let nativeSuspend: NativeSuspend<Result, Failure, Unit>
|
||||
|
||||
func receive<S>(subscriber: S) where S : Subscriber, Failure == S.Failure, Result == S.Input {
|
||||
let subscription = NativeSuspendSubscription(nativeSuspend: nativeSuspend, subscriber: subscriber)
|
||||
subscriber.receive(subscription: subscription)
|
||||
}
|
||||
}
|
||||
|
||||
internal class NativeSuspendSubscription<Result, Failure, Unit, S: Subscriber>: Subscription where S.Input == Result, S.Failure == Failure {
|
||||
|
||||
private var nativeCancellable: NativeCancellable<Unit>? = nil
|
||||
private var subscriber: S?
|
||||
|
||||
init(nativeSuspend: NativeSuspend<Result, Failure, Unit>, subscriber: S) {
|
||||
self.subscriber = subscriber
|
||||
nativeCancellable = nativeSuspend({ output, unit in
|
||||
if let subscriber = self.subscriber {
|
||||
_ = subscriber.receive(output)
|
||||
subscriber.receive(completion: .finished)
|
||||
}
|
||||
return unit
|
||||
}, { error, unit in
|
||||
self.subscriber?.receive(completion: .failure(error))
|
||||
return unit
|
||||
})
|
||||
}
|
||||
|
||||
func request(_ demand: Subscribers.Demand) { }
|
||||
|
||||
func cancel() {
|
||||
subscriber = nil
|
||||
_ = nativeCancellable?()
|
||||
nativeCancellable = nil
|
||||
}
|
||||
}
|
20
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift
generated
Normal file
20
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/FuturePublisher.swift
generated
Normal file
|
@ -0,0 +1,20 @@
|
|||
//
|
||||
// FuturePublisher.swift
|
||||
// KMPNativeCoroutinesCombine
|
||||
//
|
||||
// Created by Rick Clephas on 28/06/2021.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import KMPNativeCoroutinesCore
|
||||
|
||||
/// Creates an `AnyPublisher` for the provided `NativeSuspend` that returns a `NativeFlow`.
|
||||
/// - Parameter nativeSuspend: The native suspend function to await.
|
||||
/// - Returns: A publisher that publishes the collected values.
|
||||
public func createPublisher<Output, Failure: Error, Unit>(
|
||||
for nativeSuspend: @escaping NativeSuspend<NativeFlow<Output, Failure, Unit>, Failure, Unit>
|
||||
) -> AnyPublisher<Output, Failure> {
|
||||
return createFuture(for: nativeSuspend)
|
||||
.flatMap { createPublisher(for: $0) }
|
||||
.eraseToAnyPublisher()
|
||||
}
|
61
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift
generated
Normal file
61
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine/Publisher.swift
generated
Normal file
|
@ -0,0 +1,61 @@
|
|||
//
|
||||
// Publisher.swift
|
||||
// KMPNativeCoroutinesCombine
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
import Combine
|
||||
import KMPNativeCoroutinesCore
|
||||
|
||||
/// Creates an `AnyPublisher` for the provided `NativeFlow`.
|
||||
/// - Parameter nativeFlow: The native flow to collect.
|
||||
/// - Returns: A publisher that publishes the collected values.
|
||||
public func createPublisher<Output, Failure: Error, Unit>(
|
||||
for nativeFlow: @escaping NativeFlow<Output, Failure, Unit>
|
||||
) -> AnyPublisher<Output, Failure> {
|
||||
return NativeFlowPublisher(nativeFlow: nativeFlow)
|
||||
.eraseToAnyPublisher()
|
||||
}
|
||||
|
||||
internal struct NativeFlowPublisher<Output, Failure: Error, Unit>: Publisher {
|
||||
|
||||
typealias Output = Output
|
||||
typealias Failure = Failure
|
||||
|
||||
let nativeFlow: NativeFlow<Output, Failure, Unit>
|
||||
|
||||
func receive<S>(subscriber: S) where S : Subscriber, Failure == S.Failure, Output == S.Input {
|
||||
let subscription = NativeFlowSubscription(nativeFlow: nativeFlow, subscriber: subscriber)
|
||||
subscriber.receive(subscription: subscription)
|
||||
}
|
||||
}
|
||||
|
||||
internal class NativeFlowSubscription<Output, Failure, Unit, S: Subscriber>: Subscription where S.Input == Output, S.Failure == Failure {
|
||||
|
||||
private var nativeCancellable: NativeCancellable<Unit>? = nil
|
||||
private var subscriber: S?
|
||||
|
||||
init(nativeFlow: NativeFlow<Output, Failure, Unit>, subscriber: S) {
|
||||
self.subscriber = subscriber
|
||||
nativeCancellable = nativeFlow({ item, unit in
|
||||
_ = self.subscriber?.receive(item)
|
||||
return unit
|
||||
}, { error, unit in
|
||||
if let error = error {
|
||||
self.subscriber?.receive(completion: .failure(error))
|
||||
} else {
|
||||
self.subscriber?.receive(completion: .finished)
|
||||
}
|
||||
return unit
|
||||
})
|
||||
}
|
||||
|
||||
func request(_ demand: Subscribers.Demand) { }
|
||||
|
||||
func cancel() {
|
||||
subscriber = nil
|
||||
_ = nativeCancellable?()
|
||||
nativeCancellable = nil
|
||||
}
|
||||
}
|
21
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt
generated
Normal file
21
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/LICENSE.txt
generated
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
318
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md
generated
Normal file
318
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCombine/README.md
generated
Normal file
|
@ -0,0 +1,318 @@
|
|||
# KMP-NativeCoroutines
|
||||
|
||||
A library to use Kotlin Coroutines from Swift code in KMP apps.
|
||||
|
||||
## Why this library?
|
||||
|
||||
Both KMP and Kotlin Coroutines are amazing but together they have some limitations.
|
||||
|
||||
The most important limitation is cancellation support.
|
||||
Kotlin suspend functions are exposed to Swift as functions with a completion handler.
|
||||
This allows you to easily use them from your Swift code, but it doesn't support cancellation.
|
||||
|
||||
> While Swift 5.5 brings async functions to Swift, it doesn't solve this issue.
|
||||
> For interoperability with ObjC all function with a completion handler can be called like an async function.
|
||||
> This means starting with Swift 5.5 your Kotlin suspend functions will look like Swift async functions.
|
||||
> But that's just syntactic sugar, so there's still no cancellation support.
|
||||
|
||||
Besides cancellation support, ObjC doesn't support generics on protocols.
|
||||
So all the `Flow` interfaces lose their generic value type which make them hard to use.
|
||||
|
||||
This library solves both of these limitations :smile: .
|
||||
|
||||
## Compatibility
|
||||
|
||||
As of version `0.6.0` the library uses Kotlin version `1.5.30`.
|
||||
Compatibility versions for older Kotlin versions are also available:
|
||||
|
||||
|Version|Version suffix|Kotlin|Coroutines|
|
||||
|---|---|:---:|:---:|
|
||||
|_latest_|_no suffix_|1.5.30|1.5.2-native-mt|
|
||||
|_latest_|-kotlin-1.5.20|1.5.20|1.5.0-native-mt|
|
||||
|0.4.3|-kotlin-1.5.10|1.5.10|1.5.0-native-mt|
|
||||
|
||||
You can choose from a couple of Swift implementations.
|
||||
Depending on the implementation you can support as low as iOS 9, macOS 10.9, tvOS 9 and watchOS 3:
|
||||
|
||||
|Implementation|Swift|iOS|macOS|tvOS|watchOS|
|
||||
|---|:---:|:---:|:---:|:---:|:---:|
|
||||
|RxSwift|5.0|9.0|10.9|9.0|3.0|
|
||||
|Combine|5.0|13.0|10.15|13.0|6.0|
|
||||
|Async :construction:|5.5|13.0|10.15|13.0|6.0|
|
||||
|
||||
> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta!
|
||||
|
||||
## Installation
|
||||
|
||||
The library consists of a Kotlin and Swift part which you'll need to add to your project.
|
||||
The Kotlin part is available on Maven Central and the Swift part can be installed via CocoaPods
|
||||
or the Swift Package Manager.
|
||||
|
||||
Make sure to always use the same versions for all the libraries!
|
||||
|
||||
[![latest release](https://img.shields.io/github/v/release/rickclephas/KMP-NativeCoroutines?label=latest%20release&sort=semver)](https://github.com/rickclephas/KMP-NativeCoroutines/releases)
|
||||
|
||||
### Kotlin
|
||||
|
||||
For Kotlin just add the plugin to your `build.gradle.kts`:
|
||||
```kotlin
|
||||
plugins {
|
||||
id("com.rickclephas.kmp.nativecoroutines") version "<version>"
|
||||
}
|
||||
```
|
||||
|
||||
### Swift (CocoaPods)
|
||||
|
||||
Now for Swift you can choose from a couple of implementations.
|
||||
Add one or more of the following libraries to your `Podfile`:
|
||||
```ruby
|
||||
pod 'KMPNativeCoroutinesCombine' # Combine implementation
|
||||
pod 'KMPNativeCoroutinesRxSwift' # RxSwift implementation
|
||||
pod 'KMPNativeCoroutinesAsync' # Swift 5.5 Async/Await implementation
|
||||
```
|
||||
|
||||
### Swift (Swift Package Manager)
|
||||
|
||||
All Swift implementations are also available via the Swift Package Manager.
|
||||
|
||||
> **NOTE:** `KMPNativeCoroutinesAsync` requires Xcode 13.2 which is currently in beta.
|
||||
> To add the async implementation you should add the `-swift-async-await` suffix to the version.
|
||||
|
||||
Just add it to your `Package.swift` file:
|
||||
```swift
|
||||
dependencies: [
|
||||
.package(url: "git@github.com:rickclephas/KMP-NativeCoroutines.git", from: "<version>")
|
||||
]
|
||||
```
|
||||
|
||||
Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL:
|
||||
`git@github.com:rickclephas/KMP-NativeCoroutines.git`.
|
||||
|
||||
## Usage
|
||||
|
||||
Using your Kotlin Coroutines code from Swift is almost as easy as calling the Kotlin code.
|
||||
Just use the wrapper functions in Swift to get Observables, Publishers, AsyncStreams or async functions.
|
||||
|
||||
### Kotlin
|
||||
|
||||
The plugin will automagically generate the necessary code for you! :crystal_ball:
|
||||
|
||||
Your `Flow` properties/functions get a `Native` version:
|
||||
```kotlin
|
||||
class Clock {
|
||||
// Somewhere in your Kotlin code you define a Flow property
|
||||
val time: StateFlow<Long> // This can be any kind of Flow
|
||||
|
||||
// The plugin will generate this native property for you
|
||||
val timeNative
|
||||
get() = time.asNativeFlow()
|
||||
}
|
||||
```
|
||||
|
||||
In case of a `StateFlow` or `SharedFlow` property you also get a `NativeValue` or `NativeReplayCache` property:
|
||||
```kotlin
|
||||
// For the StateFlow defined above the plugin will generate this native value property
|
||||
val timeNativeValue
|
||||
get() = time.value
|
||||
|
||||
// In case of a SharedFlow the plugin would generate this native replay cache property
|
||||
val timeNativeReplayCache
|
||||
get() = time.replayCache
|
||||
```
|
||||
|
||||
The plugin also generates `Native` versions for all your suspend functions:
|
||||
```kotlin
|
||||
|
||||
class RandomLettersGenerator {
|
||||
// Somewhere in your Kotlin code you define a suspend function
|
||||
suspend fun getRandomLetters(): String {
|
||||
// Code to generate some random letters
|
||||
}
|
||||
|
||||
// The plugin will generate this native function for you
|
||||
fun getRandomLettersNative() =
|
||||
nativeSuspend { getRandomLetters() }
|
||||
}
|
||||
```
|
||||
|
||||
#### Global properties and functions
|
||||
|
||||
The plugin is currently unable to generate native versions for global properties and functions.
|
||||
In such cases you have to manually create the native versions in your Kotlin native code.
|
||||
|
||||
#### Custom suffix
|
||||
|
||||
If you don't like the naming of these generated properties/functions, you can easily change the suffix.
|
||||
For example add the following to your `build.gradle.kts` to use the suffix `Apple`:
|
||||
```kotlin
|
||||
nativeCoroutines {
|
||||
suffix = "Apple"
|
||||
}
|
||||
```
|
||||
|
||||
#### Custom CoroutineScope
|
||||
|
||||
For more control you can provide a custom `CoroutineScope` with the `NativeCoroutineScope` annotation:
|
||||
```kotlin
|
||||
class Clock {
|
||||
@NativeCoroutineScope
|
||||
internal val coroutineScope = CoroutineScope(job + Dispatchers.Default)
|
||||
}
|
||||
```
|
||||
|
||||
If you don't provide a `CoroutineScope` the default scope will be used which is defined as:
|
||||
```kotlin
|
||||
@SharedImmutable
|
||||
internal val defaultCoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
|
||||
```
|
||||
|
||||
#### Ignoring declarations
|
||||
|
||||
Use the `NativeCoroutinesIgnore` annotation to tell the plugin to ignore a property or function:
|
||||
```kotlin
|
||||
@NativeCoroutinesIgnore
|
||||
val ignoredFlowProperty: Flow<Int>
|
||||
|
||||
@NativeCoroutinesIgnore
|
||||
suspend fun ignoredSuspendFunction() { }
|
||||
```
|
||||
|
||||
### RxSwift
|
||||
|
||||
The RxSwift implementation provides a couple functions to get an `Observable` or `Single` for your Coroutines code.
|
||||
|
||||
For your `Flow`s use the `createObservable(for:)` function:
|
||||
```swift
|
||||
// Create an observable for your flow
|
||||
let observable = createObservable(for: clock.timeNative)
|
||||
|
||||
// Now use this observable as you would any other
|
||||
let disposable = observable.subscribe(onNext: { value in
|
||||
print("Received value: \(value)")
|
||||
}, onError: { error in
|
||||
print("Received error: \(error)")
|
||||
}, onCompleted: {
|
||||
print("Observable completed")
|
||||
}, onDisposed: {
|
||||
print("Observable disposed")
|
||||
})
|
||||
|
||||
// To cancel the flow (collection) just dispose the subscription
|
||||
disposable.dispose()
|
||||
```
|
||||
|
||||
For the suspend functions you should use the `createSingle(for:)` function:
|
||||
```swift
|
||||
// Create a single for the suspend function
|
||||
let single = createSingle(for: randomLettersGenerator.getRandomLettersNative())
|
||||
|
||||
// Now use this single as you would any other
|
||||
let disposable = single.subscribe(onSuccess: { value in
|
||||
print("Received value: \(value)")
|
||||
}, onFailure: { error in
|
||||
print("Received error: \(error)")
|
||||
}, onDisposed: {
|
||||
print("Single disposed")
|
||||
})
|
||||
|
||||
// To cancel the suspend function just dispose the subscription
|
||||
disposable.dispose()
|
||||
```
|
||||
|
||||
You can also use the `createObservable(for:)` function for suspend functions that return a `Flow`:
|
||||
```swift
|
||||
let observable = createObservable(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
```
|
||||
|
||||
**Note:** these functions create deferred `Observable`s and `Single`s.
|
||||
Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function.
|
||||
|
||||
### Combine
|
||||
|
||||
The Combine implementation provides a couple functions to get an `AnyPublisher` for your Coroutines code.
|
||||
|
||||
For your `Flow`s use the `createPublisher(for:)` function:
|
||||
```swift
|
||||
// Create an AnyPublisher for your flow
|
||||
let publisher = createPublisher(for: clock.timeNative)
|
||||
|
||||
// Now use this publisher as you would any other
|
||||
let cancellable = publisher.sink { completion in
|
||||
print("Received completion: \(completion)")
|
||||
} receiveValue: { value in
|
||||
print("Received value: \(value)")
|
||||
}
|
||||
|
||||
// To cancel the flow (collection) just cancel the publisher
|
||||
cancellable.cancel()
|
||||
```
|
||||
|
||||
For the suspend functions you should use the `createFuture(for:)` function:
|
||||
```swift
|
||||
// Create a Future/AnyPublisher for the suspend function
|
||||
let future = createFuture(for: randomLettersGenerator.getRandomLettersNative())
|
||||
|
||||
// Now use this future as you would any other
|
||||
let cancellable = future.sink { completion in
|
||||
print("Received completion: \(completion)")
|
||||
} receiveValue: { value in
|
||||
print("Received value: \(value)")
|
||||
}
|
||||
|
||||
// To cancel the suspend function just cancel the future
|
||||
cancellable.cancel()
|
||||
```
|
||||
|
||||
You can also use the `createPublisher(for:)` function for suspend functions that return a `Flow`:
|
||||
```swift
|
||||
let publisher = createPublisher(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
```
|
||||
|
||||
**Note:** these functions create deferred `AnyPublisher`s.
|
||||
Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function.
|
||||
|
||||
### Swift 5.5 Async/Await
|
||||
|
||||
> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta!
|
||||
|
||||
The Async implementation provides some functions to get async Swift functions and `AsyncStream`s.
|
||||
|
||||
Use the `asyncFunction(for:)` function to get an async function that can be awaited:
|
||||
```swift
|
||||
let handle = Task {
|
||||
do {
|
||||
let letters = try await asyncFunction(for: randomLettersGenerator.getRandomLettersNative())
|
||||
print("Got random letters: \(letters)")
|
||||
} catch {
|
||||
print("Failed with error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
// To cancel the suspend function just cancel the async task
|
||||
handle.cancel()
|
||||
```
|
||||
|
||||
or if you don't like these do-catches you can use the `asyncResult(for:)` function:
|
||||
```swift
|
||||
let result = await asyncResult(for: randomLettersGenerator.getRandomLettersNative())
|
||||
if case let .success(letters) = result {
|
||||
print("Got random letters: \(letters)")
|
||||
}
|
||||
```
|
||||
|
||||
For `Flow`s there is the `asyncStream(for:)` function to get an `AsyncStream`:
|
||||
```swift
|
||||
let handle = Task {
|
||||
do {
|
||||
let stream = asyncStream(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
for try await letters in stream {
|
||||
print("Got random letters: \(letters)")
|
||||
}
|
||||
} catch {
|
||||
print("Failed with error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
// To cancel the flow (collection) just cancel the async task
|
||||
handle.cancel()
|
||||
```
|
12
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift
generated
Normal file
12
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCallback.swift
generated
Normal file
|
@ -0,0 +1,12 @@
|
|||
//
|
||||
// NativeCallback.swift
|
||||
// KMPNativeCoroutinesCore
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
/// A callback with a single argument.
|
||||
///
|
||||
/// The return value is provided as the second argument.
|
||||
/// This way Swift doesn't known what it is/how to get it.
|
||||
public typealias NativeCallback<T, Unit> = (T, Unit) -> Unit
|
9
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift
generated
Normal file
9
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeCancellable.swift
generated
Normal file
|
@ -0,0 +1,9 @@
|
|||
//
|
||||
// NativeCancellable.swift
|
||||
// KMPNativeCoroutinesCore
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
/// A function that cancels the coroutines job.
|
||||
public typealias NativeCancellable<Unit> = () -> Unit
|
15
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift
generated
Normal file
15
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeFlow.swift
generated
Normal file
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// NativeFlow.swift
|
||||
// KMPNativeCoroutinesCore
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
/// A function that collects a Kotlin coroutines Flow via callbacks.
|
||||
///
|
||||
/// The function takes an `onItem` and `onComplete` callback
|
||||
/// and returns a cancellable that can be used to cancel the collection.
|
||||
public typealias NativeFlow<Output, Failure: Error, Unit> = (
|
||||
_ onItem: @escaping NativeCallback<Output, Unit>,
|
||||
_ onComplete: @escaping NativeCallback<Failure?, Unit>
|
||||
) -> NativeCancellable<Unit>
|
15
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift
generated
Normal file
15
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore/NativeSuspend.swift
generated
Normal file
|
@ -0,0 +1,15 @@
|
|||
//
|
||||
// NativeSuspend.swift
|
||||
// KMPNativeCoroutinesCore
|
||||
//
|
||||
// Created by Rick Clephas on 06/06/2021.
|
||||
//
|
||||
|
||||
/// A function that awaits a suspend function via callbacks.
|
||||
///
|
||||
/// The function takes an `onResult` and `onError` callback
|
||||
/// and returns a cancellable that can be used to cancel the suspend function.
|
||||
public typealias NativeSuspend<Result, Failure: Error, Unit> = (
|
||||
_ onResult: @escaping NativeCallback<Result, Unit>,
|
||||
_ onError: @escaping NativeCallback<Failure, Unit>
|
||||
) -> NativeCancellable<Unit>
|
21
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt
generated
Normal file
21
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/LICENSE.txt
generated
Normal file
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
318
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md
generated
Normal file
318
macOS/PeopleInSpace/Pods/KMPNativeCoroutinesCore/README.md
generated
Normal file
|
@ -0,0 +1,318 @@
|
|||
# KMP-NativeCoroutines
|
||||
|
||||
A library to use Kotlin Coroutines from Swift code in KMP apps.
|
||||
|
||||
## Why this library?
|
||||
|
||||
Both KMP and Kotlin Coroutines are amazing but together they have some limitations.
|
||||
|
||||
The most important limitation is cancellation support.
|
||||
Kotlin suspend functions are exposed to Swift as functions with a completion handler.
|
||||
This allows you to easily use them from your Swift code, but it doesn't support cancellation.
|
||||
|
||||
> While Swift 5.5 brings async functions to Swift, it doesn't solve this issue.
|
||||
> For interoperability with ObjC all function with a completion handler can be called like an async function.
|
||||
> This means starting with Swift 5.5 your Kotlin suspend functions will look like Swift async functions.
|
||||
> But that's just syntactic sugar, so there's still no cancellation support.
|
||||
|
||||
Besides cancellation support, ObjC doesn't support generics on protocols.
|
||||
So all the `Flow` interfaces lose their generic value type which make them hard to use.
|
||||
|
||||
This library solves both of these limitations :smile: .
|
||||
|
||||
## Compatibility
|
||||
|
||||
As of version `0.6.0` the library uses Kotlin version `1.5.30`.
|
||||
Compatibility versions for older Kotlin versions are also available:
|
||||
|
||||
|Version|Version suffix|Kotlin|Coroutines|
|
||||
|---|---|:---:|:---:|
|
||||
|_latest_|_no suffix_|1.5.30|1.5.2-native-mt|
|
||||
|_latest_|-kotlin-1.5.20|1.5.20|1.5.0-native-mt|
|
||||
|0.4.3|-kotlin-1.5.10|1.5.10|1.5.0-native-mt|
|
||||
|
||||
You can choose from a couple of Swift implementations.
|
||||
Depending on the implementation you can support as low as iOS 9, macOS 10.9, tvOS 9 and watchOS 3:
|
||||
|
||||
|Implementation|Swift|iOS|macOS|tvOS|watchOS|
|
||||
|---|:---:|:---:|:---:|:---:|:---:|
|
||||
|RxSwift|5.0|9.0|10.9|9.0|3.0|
|
||||
|Combine|5.0|13.0|10.15|13.0|6.0|
|
||||
|Async :construction:|5.5|13.0|10.15|13.0|6.0|
|
||||
|
||||
> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta!
|
||||
|
||||
## Installation
|
||||
|
||||
The library consists of a Kotlin and Swift part which you'll need to add to your project.
|
||||
The Kotlin part is available on Maven Central and the Swift part can be installed via CocoaPods
|
||||
or the Swift Package Manager.
|
||||
|
||||
Make sure to always use the same versions for all the libraries!
|
||||
|
||||
[![latest release](https://img.shields.io/github/v/release/rickclephas/KMP-NativeCoroutines?label=latest%20release&sort=semver)](https://github.com/rickclephas/KMP-NativeCoroutines/releases)
|
||||
|
||||
### Kotlin
|
||||
|
||||
For Kotlin just add the plugin to your `build.gradle.kts`:
|
||||
```kotlin
|
||||
plugins {
|
||||
id("com.rickclephas.kmp.nativecoroutines") version "<version>"
|
||||
}
|
||||
```
|
||||
|
||||
### Swift (CocoaPods)
|
||||
|
||||
Now for Swift you can choose from a couple of implementations.
|
||||
Add one or more of the following libraries to your `Podfile`:
|
||||
```ruby
|
||||
pod 'KMPNativeCoroutinesCombine' # Combine implementation
|
||||
pod 'KMPNativeCoroutinesRxSwift' # RxSwift implementation
|
||||
pod 'KMPNativeCoroutinesAsync' # Swift 5.5 Async/Await implementation
|
||||
```
|
||||
|
||||
### Swift (Swift Package Manager)
|
||||
|
||||
All Swift implementations are also available via the Swift Package Manager.
|
||||
|
||||
> **NOTE:** `KMPNativeCoroutinesAsync` requires Xcode 13.2 which is currently in beta.
|
||||
> To add the async implementation you should add the `-swift-async-await` suffix to the version.
|
||||
|
||||
Just add it to your `Package.swift` file:
|
||||
```swift
|
||||
dependencies: [
|
||||
.package(url: "git@github.com:rickclephas/KMP-NativeCoroutines.git", from: "<version>")
|
||||
]
|
||||
```
|
||||
|
||||
Or add it in Xcode by going to `File` > `Add Packages...` and providing the URL:
|
||||
`git@github.com:rickclephas/KMP-NativeCoroutines.git`.
|
||||
|
||||
## Usage
|
||||
|
||||
Using your Kotlin Coroutines code from Swift is almost as easy as calling the Kotlin code.
|
||||
Just use the wrapper functions in Swift to get Observables, Publishers, AsyncStreams or async functions.
|
||||
|
||||
### Kotlin
|
||||
|
||||
The plugin will automagically generate the necessary code for you! :crystal_ball:
|
||||
|
||||
Your `Flow` properties/functions get a `Native` version:
|
||||
```kotlin
|
||||
class Clock {
|
||||
// Somewhere in your Kotlin code you define a Flow property
|
||||
val time: StateFlow<Long> // This can be any kind of Flow
|
||||
|
||||
// The plugin will generate this native property for you
|
||||
val timeNative
|
||||
get() = time.asNativeFlow()
|
||||
}
|
||||
```
|
||||
|
||||
In case of a `StateFlow` or `SharedFlow` property you also get a `NativeValue` or `NativeReplayCache` property:
|
||||
```kotlin
|
||||
// For the StateFlow defined above the plugin will generate this native value property
|
||||
val timeNativeValue
|
||||
get() = time.value
|
||||
|
||||
// In case of a SharedFlow the plugin would generate this native replay cache property
|
||||
val timeNativeReplayCache
|
||||
get() = time.replayCache
|
||||
```
|
||||
|
||||
The plugin also generates `Native` versions for all your suspend functions:
|
||||
```kotlin
|
||||
|
||||
class RandomLettersGenerator {
|
||||
// Somewhere in your Kotlin code you define a suspend function
|
||||
suspend fun getRandomLetters(): String {
|
||||
// Code to generate some random letters
|
||||
}
|
||||
|
||||
// The plugin will generate this native function for you
|
||||
fun getRandomLettersNative() =
|
||||
nativeSuspend { getRandomLetters() }
|
||||
}
|
||||
```
|
||||
|
||||
#### Global properties and functions
|
||||
|
||||
The plugin is currently unable to generate native versions for global properties and functions.
|
||||
In such cases you have to manually create the native versions in your Kotlin native code.
|
||||
|
||||
#### Custom suffix
|
||||
|
||||
If you don't like the naming of these generated properties/functions, you can easily change the suffix.
|
||||
For example add the following to your `build.gradle.kts` to use the suffix `Apple`:
|
||||
```kotlin
|
||||
nativeCoroutines {
|
||||
suffix = "Apple"
|
||||
}
|
||||
```
|
||||
|
||||
#### Custom CoroutineScope
|
||||
|
||||
For more control you can provide a custom `CoroutineScope` with the `NativeCoroutineScope` annotation:
|
||||
```kotlin
|
||||
class Clock {
|
||||
@NativeCoroutineScope
|
||||
internal val coroutineScope = CoroutineScope(job + Dispatchers.Default)
|
||||
}
|
||||
```
|
||||
|
||||
If you don't provide a `CoroutineScope` the default scope will be used which is defined as:
|
||||
```kotlin
|
||||
@SharedImmutable
|
||||
internal val defaultCoroutineScope = CoroutineScope(SupervisorJob() + Dispatchers.Default)
|
||||
```
|
||||
|
||||
#### Ignoring declarations
|
||||
|
||||
Use the `NativeCoroutinesIgnore` annotation to tell the plugin to ignore a property or function:
|
||||
```kotlin
|
||||
@NativeCoroutinesIgnore
|
||||
val ignoredFlowProperty: Flow<Int>
|
||||
|
||||
@NativeCoroutinesIgnore
|
||||
suspend fun ignoredSuspendFunction() { }
|
||||
```
|
||||
|
||||
### RxSwift
|
||||
|
||||
The RxSwift implementation provides a couple functions to get an `Observable` or `Single` for your Coroutines code.
|
||||
|
||||
For your `Flow`s use the `createObservable(for:)` function:
|
||||
```swift
|
||||
// Create an observable for your flow
|
||||
let observable = createObservable(for: clock.timeNative)
|
||||
|
||||
// Now use this observable as you would any other
|
||||
let disposable = observable.subscribe(onNext: { value in
|
||||
print("Received value: \(value)")
|
||||
}, onError: { error in
|
||||
print("Received error: \(error)")
|
||||
}, onCompleted: {
|
||||
print("Observable completed")
|
||||
}, onDisposed: {
|
||||
print("Observable disposed")
|
||||
})
|
||||
|
||||
// To cancel the flow (collection) just dispose the subscription
|
||||
disposable.dispose()
|
||||
```
|
||||
|
||||
For the suspend functions you should use the `createSingle(for:)` function:
|
||||
```swift
|
||||
// Create a single for the suspend function
|
||||
let single = createSingle(for: randomLettersGenerator.getRandomLettersNative())
|
||||
|
||||
// Now use this single as you would any other
|
||||
let disposable = single.subscribe(onSuccess: { value in
|
||||
print("Received value: \(value)")
|
||||
}, onFailure: { error in
|
||||
print("Received error: \(error)")
|
||||
}, onDisposed: {
|
||||
print("Single disposed")
|
||||
})
|
||||
|
||||
// To cancel the suspend function just dispose the subscription
|
||||
disposable.dispose()
|
||||
```
|
||||
|
||||
You can also use the `createObservable(for:)` function for suspend functions that return a `Flow`:
|
||||
```swift
|
||||
let observable = createObservable(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
```
|
||||
|
||||
**Note:** these functions create deferred `Observable`s and `Single`s.
|
||||
Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function.
|
||||
|
||||
### Combine
|
||||
|
||||
The Combine implementation provides a couple functions to get an `AnyPublisher` for your Coroutines code.
|
||||
|
||||
For your `Flow`s use the `createPublisher(for:)` function:
|
||||
```swift
|
||||
// Create an AnyPublisher for your flow
|
||||
let publisher = createPublisher(for: clock.timeNative)
|
||||
|
||||
// Now use this publisher as you would any other
|
||||
let cancellable = publisher.sink { completion in
|
||||
print("Received completion: \(completion)")
|
||||
} receiveValue: { value in
|
||||
print("Received value: \(value)")
|
||||
}
|
||||
|
||||
// To cancel the flow (collection) just cancel the publisher
|
||||
cancellable.cancel()
|
||||
```
|
||||
|
||||
For the suspend functions you should use the `createFuture(for:)` function:
|
||||
```swift
|
||||
// Create a Future/AnyPublisher for the suspend function
|
||||
let future = createFuture(for: randomLettersGenerator.getRandomLettersNative())
|
||||
|
||||
// Now use this future as you would any other
|
||||
let cancellable = future.sink { completion in
|
||||
print("Received completion: \(completion)")
|
||||
} receiveValue: { value in
|
||||
print("Received value: \(value)")
|
||||
}
|
||||
|
||||
// To cancel the suspend function just cancel the future
|
||||
cancellable.cancel()
|
||||
```
|
||||
|
||||
You can also use the `createPublisher(for:)` function for suspend functions that return a `Flow`:
|
||||
```swift
|
||||
let publisher = createPublisher(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
```
|
||||
|
||||
**Note:** these functions create deferred `AnyPublisher`s.
|
||||
Meaning every subscription will trigger the collection of the `Flow` or execution of the suspend function.
|
||||
|
||||
### Swift 5.5 Async/Await
|
||||
|
||||
> :construction: : the Async implementation requires Xcode 13.2 which is currently in beta!
|
||||
|
||||
The Async implementation provides some functions to get async Swift functions and `AsyncStream`s.
|
||||
|
||||
Use the `asyncFunction(for:)` function to get an async function that can be awaited:
|
||||
```swift
|
||||
let handle = Task {
|
||||
do {
|
||||
let letters = try await asyncFunction(for: randomLettersGenerator.getRandomLettersNative())
|
||||
print("Got random letters: \(letters)")
|
||||
} catch {
|
||||
print("Failed with error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
// To cancel the suspend function just cancel the async task
|
||||
handle.cancel()
|
||||
```
|
||||
|
||||
or if you don't like these do-catches you can use the `asyncResult(for:)` function:
|
||||
```swift
|
||||
let result = await asyncResult(for: randomLettersGenerator.getRandomLettersNative())
|
||||
if case let .success(letters) = result {
|
||||
print("Got random letters: \(letters)")
|
||||
}
|
||||
```
|
||||
|
||||
For `Flow`s there is the `asyncStream(for:)` function to get an `AsyncStream`:
|
||||
```swift
|
||||
let handle = Task {
|
||||
do {
|
||||
let stream = asyncStream(for: randomLettersGenerator.getRandomLettersFlowNative())
|
||||
for try await letters in stream {
|
||||
print("Got random letters: \(letters)")
|
||||
}
|
||||
} catch {
|
||||
print("Failed with error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
// To cancel the flow (collection) just cancel the async task
|
||||
handle.cancel()
|
||||
```
|
15
macOS/PeopleInSpace/Pods/Manifest.lock
generated
15
macOS/PeopleInSpace/Pods/Manifest.lock
generated
|
@ -1,8 +1,17 @@
|
|||
PODS:
|
||||
- common (1.0)
|
||||
- KMPNativeCoroutinesCombine (0.8.0):
|
||||
- KMPNativeCoroutinesCore (= 0.8.0)
|
||||
- KMPNativeCoroutinesCore (0.8.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- common (from `../../common`)
|
||||
- KMPNativeCoroutinesCombine (= 0.8.0)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- KMPNativeCoroutinesCombine
|
||||
- KMPNativeCoroutinesCore
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
common:
|
||||
|
@ -10,7 +19,9 @@ EXTERNAL SOURCES:
|
|||
|
||||
SPEC CHECKSUMS:
|
||||
common: ed5a58383c5a02f46882243487c7aac341a3064f
|
||||
KMPNativeCoroutinesCombine: cdb11619dbe26c69c27f1bdc50b0291d8fdbff8e
|
||||
KMPNativeCoroutinesCore: a833472b2d8aa40333dc3ff3ebeeeb7180423602
|
||||
|
||||
PODFILE CHECKSUM: 4a9ed74f1dcfe79bd3d28fe2f8ba019437e5cc29
|
||||
PODFILE CHECKSUM: 4c3532a0227a42a4cdf63df73c96962c3c9bfc06
|
||||
|
||||
COCOAPODS: 1.9.3
|
||||
COCOAPODS: 1.10.1
|
||||
|
|
564
macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj
generated
564
macOS/PeopleInSpace/Pods/Pods.xcodeproj/project.pbxproj
generated
|
@ -20,35 +20,105 @@
|
|||
/* End PBXAggregateTarget section */
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
7EE04E32660FEA2555A49E1495986AF0 /* Pods-PeopleInSpace-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */; };
|
||||
043C42C08203AD7285BDB21C47D33249 /* Pods-PeopleInSpace-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */; };
|
||||
3736EF6166F11F146BF0224EF85DCD33 /* Publisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */; };
|
||||
410E20CC9003F5209E289FC65A2DD68B /* Pods-PeopleInSpace-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; };
|
||||
4D058353F02CB5ADCD8D002099B1DF7A /* KMPNativeCoroutinesCore-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */; };
|
||||
4DC8F1E3DC92D51E273BCEBF689FBE81 /* NativeFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */; };
|
||||
67CD9BF971445F04D19C8A3F0E694D03 /* NativeSuspend.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */; };
|
||||
7E6C22677B35403CD19CD97CF5C9C55B /* NativeCancellable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */; };
|
||||
81017431C9331986689A0A08AFA75E2B /* FuturePublisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */; };
|
||||
8AD216478639C6A89F4A5681F0167FC2 /* NativeCallback.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44756A68E369D299A81D14A655157263 /* NativeCallback.swift */; };
|
||||
AD6E8E9276C772339C578AF8B668AA82 /* KMPNativeCoroutinesCore-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; };
|
||||
BA5CB03EB636E2CAB97BF33EC29BE249 /* KMPNativeCoroutinesCombine-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */; settings = {ATTRIBUTES = (Project, ); }; };
|
||||
D449674759C5FEEC3D6CC8EB235862CA /* KMPNativeCoroutinesCombine-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */; };
|
||||
F665CC033BA40B1DD8175B0419E51CAF /* Future.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
8231E61C22B0B0267D6B822E259A45F3 /* PBXContainerItemProxy */ = {
|
||||
47DB3C25400C1F423D29F65D8870E9CB /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 3F9FD9D97D14F53EE028871E5A26555A;
|
||||
remoteInfo = KMPNativeCoroutinesCombine;
|
||||
};
|
||||
78AA26295B54DF9A6A1F5180093F3E80 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = FFFB6783B79B68DA14E36A00A348B0B3;
|
||||
remoteInfo = KMPNativeCoroutinesCore;
|
||||
};
|
||||
9BBF0F64698ABF7695026003A2064F3C /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 8217FBB9D1218C346C0781D0B8F2BBE8;
|
||||
remoteInfo = common;
|
||||
};
|
||||
A0A09942BB536170555BACB2BE6D6FD1 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = FFFB6783B79B68DA14E36A00A348B0B3;
|
||||
remoteInfo = KMPNativeCoroutinesCore;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PeopleInSpace-umbrella.h"; sourceTree = "<group>"; };
|
||||
00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCombine.debug.xcconfig; sourceTree = "<group>"; };
|
||||
092A4CE06CEC277508371925DC20C57F /* common.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.release.xcconfig; sourceTree = "<group>"; };
|
||||
2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.release.xcconfig"; sourceTree = "<group>"; };
|
||||
4085E4F5221F23B6ACC7AD5F5DD5311C /* Pods-PeopleInSpace-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PeopleInSpace-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libKMPNativeCoroutinesCombine.a; path = libKMPNativeCoroutinesCombine.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
23785D2EF87CC7217936C2A2C05400F6 /* KMPNativeCoroutinesCombine.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KMPNativeCoroutinesCombine.modulemap; sourceTree = "<group>"; };
|
||||
2436EB57A89CB0131F220CB06E4D318F /* Pods-PeopleInSpace-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-PeopleInSpace-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Future.swift; path = KMPNativeCoroutinesCombine/Future.swift; sourceTree = "<group>"; };
|
||||
2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCombine.release.xcconfig; sourceTree = "<group>"; };
|
||||
36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KMPNativeCoroutinesCombine-dummy.m"; sourceTree = "<group>"; };
|
||||
441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCore.debug.xcconfig; sourceTree = "<group>"; };
|
||||
44756A68E369D299A81D14A655157263 /* NativeCallback.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeCallback.swift; path = KMPNativeCoroutinesCore/NativeCallback.swift; sourceTree = "<group>"; };
|
||||
56081C4E77068795768A5CF0E879AE38 /* KMPNativeCoroutinesCombine-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCombine-prefix.pch"; sourceTree = "<group>"; };
|
||||
56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCombine-umbrella.h"; sourceTree = "<group>"; };
|
||||
611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeSuspend.swift; path = KMPNativeCoroutinesCore/NativeSuspend.swift; sourceTree = "<group>"; };
|
||||
702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = KMPNativeCoroutinesCore.release.xcconfig; sourceTree = "<group>"; };
|
||||
73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Publisher.swift; path = KMPNativeCoroutinesCombine/Publisher.swift; sourceTree = "<group>"; };
|
||||
75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeCancellable.swift; path = KMPNativeCoroutinesCore/NativeCancellable.swift; sourceTree = "<group>"; };
|
||||
77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = "libPods-PeopleInSpace.a"; path = "libPods-PeopleInSpace.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
8467F04D2D129DA89380F1ED04CEF090 /* KMPNativeCoroutinesCore-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCore-prefix.pch"; sourceTree = "<group>"; };
|
||||
935FFB47BC518C20191CB08A3C39EBD9 /* KMPNativeCoroutinesCore.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = KMPNativeCoroutinesCore.modulemap; sourceTree = "<group>"; };
|
||||
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; };
|
||||
B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PeopleInSpace-dummy.m"; sourceTree = "<group>"; };
|
||||
C4B5AB0FF97F3A1FE65541C1328FB85C /* Pods-PeopleInSpace-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PeopleInSpace-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "KMPNativeCoroutinesCore-dummy.m"; sourceTree = "<group>"; };
|
||||
AD61EC1E173CDE25748A37C965465600 /* Pods-PeopleInSpace.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-PeopleInSpace.modulemap"; sourceTree = "<group>"; };
|
||||
B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "KMPNativeCoroutinesCore-umbrella.h"; sourceTree = "<group>"; };
|
||||
BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = NativeFlow.swift; path = KMPNativeCoroutinesCore/NativeFlow.swift; sourceTree = "<group>"; };
|
||||
CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PeopleInSpace-dummy.m"; sourceTree = "<group>"; };
|
||||
DA2E698EFAE75544A6E4F612819CCB8B /* common.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = common.framework; path = build/cocoapods/framework/common.framework; sourceTree = "<group>"; };
|
||||
E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libKMPNativeCoroutinesCore.a; path = libKMPNativeCoroutinesCore.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = common.debug.xcconfig; sourceTree = "<group>"; };
|
||||
EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PeopleInSpace.release.xcconfig"; sourceTree = "<group>"; };
|
||||
F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = FuturePublisher.swift; path = KMPNativeCoroutinesCombine/FuturePublisher.swift; sourceTree = "<group>"; };
|
||||
FA445701BEFB74B91B7F7202B33193BD /* Pods-PeopleInSpace-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-PeopleInSpace-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
FAA6D45CC6E2EA32EC08EB9FB08994D2 /* common.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = common.podspec; sourceTree = "<group>"; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
E4E62A015C1A66A0F419698716F724CE /* Frameworks */ = {
|
||||
9267A726B52622ED0E999F5C5BEDC1B1 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F6A23041D604F1E204DEC95A52D6A66E /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
FFD7C6DF3A4A8D1CF620C630992D63A1 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
|
@ -69,6 +139,52 @@
|
|||
path = ../../../common;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */,
|
||||
E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */,
|
||||
793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
3771862DC0EABC5A0E74A521F0266C03 /* KMPNativeCoroutinesCombine */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
2ACDC0A0AEEA49523A259A9D243C3EF5 /* Future.swift */,
|
||||
F860A0723C9C947E65E02533615A6529 /* FuturePublisher.swift */,
|
||||
73149DE97EFF466A1568E5444D7CD0D8 /* Publisher.swift */,
|
||||
5FDACE6DF4ACC2F870346DC9CCB58B8A /* Support Files */,
|
||||
);
|
||||
name = KMPNativeCoroutinesCombine;
|
||||
path = KMPNativeCoroutinesCombine;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
42C631582119F1E69C50DA48CD0F397F /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3771862DC0EABC5A0E74A521F0266C03 /* KMPNativeCoroutinesCombine */,
|
||||
79C13BC4ACA87457CAE6DDBD85FA1B5D /* KMPNativeCoroutinesCore */,
|
||||
);
|
||||
name = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
45FE54D9A7CB692C4A82AC6A2AF342EF /* Pods-PeopleInSpace */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
AD61EC1E173CDE25748A37C965465600 /* Pods-PeopleInSpace.modulemap */,
|
||||
FA445701BEFB74B91B7F7202B33193BD /* Pods-PeopleInSpace-acknowledgements.markdown */,
|
||||
2436EB57A89CB0131F220CB06E4D318F /* Pods-PeopleInSpace-acknowledgements.plist */,
|
||||
CF68B67E775C58C4C4F3EDCBCA259CCF /* Pods-PeopleInSpace-dummy.m */,
|
||||
0053595AACBFEC654010ADCF2653DC81 /* Pods-PeopleInSpace-umbrella.h */,
|
||||
77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */,
|
||||
EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */,
|
||||
);
|
||||
name = "Pods-PeopleInSpace";
|
||||
path = "Target Support Files/Pods-PeopleInSpace";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4A33BB545106CE2199669A404AA652FC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -77,12 +193,31 @@
|
|||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7E33595295125D9ADC3DD69A856B53D6 /* Products */ = {
|
||||
5FDACE6DF4ACC2F870346DC9CCB58B8A /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */,
|
||||
23785D2EF87CC7217936C2A2C05400F6 /* KMPNativeCoroutinesCombine.modulemap */,
|
||||
36CC12E1AB4CF26105A57551B45F158C /* KMPNativeCoroutinesCombine-dummy.m */,
|
||||
56081C4E77068795768A5CF0E879AE38 /* KMPNativeCoroutinesCombine-prefix.pch */,
|
||||
56730A2BB8C6B21DC3C1DE2D1D464E68 /* KMPNativeCoroutinesCombine-umbrella.h */,
|
||||
00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */,
|
||||
2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */,
|
||||
);
|
||||
name = Products;
|
||||
name = "Support Files";
|
||||
path = "../Target Support Files/KMPNativeCoroutinesCombine";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
79C13BC4ACA87457CAE6DDBD85FA1B5D /* KMPNativeCoroutinesCore */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
44756A68E369D299A81D14A655157263 /* NativeCallback.swift */,
|
||||
75183D40F3E75DC5F1D0B0B070D5B04F /* NativeCancellable.swift */,
|
||||
BE05ED93C5134B9D56393B182882436A /* NativeFlow.swift */,
|
||||
611593A13CAA4F1FA1570FF3916625D0 /* NativeSuspend.swift */,
|
||||
CC43999398E46B9480F21D63C0373047 /* Support Files */,
|
||||
);
|
||||
name = KMPNativeCoroutinesCore;
|
||||
path = KMPNativeCoroutinesCore;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8911087DF480A62FEBFB1D31E5F595A4 /* Pod */ = {
|
||||
|
@ -103,17 +238,26 @@
|
|||
path = "../macOS/PeopleInSpace/Pods/Target Support Files/common";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
A7BA680F75ECFA065C7E839926F3E718 /* Pods-PeopleInSpace */ = {
|
||||
B31E03038FAE969EF9A6693F405940EA /* Targets Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
C4B5AB0FF97F3A1FE65541C1328FB85C /* Pods-PeopleInSpace-acknowledgements.markdown */,
|
||||
4085E4F5221F23B6ACC7AD5F5DD5311C /* Pods-PeopleInSpace-acknowledgements.plist */,
|
||||
B940C188B389195C78FD350311951B45 /* Pods-PeopleInSpace-dummy.m */,
|
||||
94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */,
|
||||
2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */,
|
||||
45FE54D9A7CB692C4A82AC6A2AF342EF /* Pods-PeopleInSpace */,
|
||||
);
|
||||
name = "Pods-PeopleInSpace";
|
||||
path = "Target Support Files/Pods-PeopleInSpace";
|
||||
name = "Targets Support Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CC43999398E46B9480F21D63C0373047 /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
935FFB47BC518C20191CB08A3C39EBD9 /* KMPNativeCoroutinesCore.modulemap */,
|
||||
A0C62779E9F25B9D466FEC7CC23B1D67 /* KMPNativeCoroutinesCore-dummy.m */,
|
||||
8467F04D2D129DA89380F1ED04CEF090 /* KMPNativeCoroutinesCore-prefix.pch */,
|
||||
B276657920D376EF3A9EBCE35D0D8F1E /* KMPNativeCoroutinesCore-umbrella.h */,
|
||||
441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */,
|
||||
702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "../Target Support Files/KMPNativeCoroutinesCore";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CF1408CF629C7361332E53B88F7BD30C = {
|
||||
|
@ -122,8 +266,9 @@
|
|||
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
|
||||
E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */,
|
||||
D89477F20FB1DE18A04690586D7808C4 /* Frameworks */,
|
||||
7E33595295125D9ADC3DD69A856B53D6 /* Products */,
|
||||
E31BFE6621534631A9AB8E33B5D052A7 /* Targets Support Files */,
|
||||
42C631582119F1E69C50DA48CD0F397F /* Pods */,
|
||||
14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */,
|
||||
B31E03038FAE969EF9A6693F405940EA /* Targets Support Files */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
|
@ -134,14 +279,6 @@
|
|||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E31BFE6621534631A9AB8E33B5D052A7 /* Targets Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
A7BA680F75ECFA065C7E839926F3E718 /* Pods-PeopleInSpace */,
|
||||
);
|
||||
name = "Targets Support Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E363132CB4A8517D710D319A73DD8CB9 /* Development Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -153,34 +290,90 @@
|
|||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
D2F76021650D1455345732B70977A3FC /* Headers */ = {
|
||||
5F9C687B032D88BC5138FDD0F0294935 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
410E20CC9003F5209E289FC65A2DD68B /* Pods-PeopleInSpace-umbrella.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
8D98F7FBA7911C76B4490172AD63D3E5 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
BA5CB03EB636E2CAB97BF33EC29BE249 /* KMPNativeCoroutinesCombine-umbrella.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
F45FED5EF8C697E2C7261D7234E7876B /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
AD6E8E9276C772339C578AF8B668AA82 /* KMPNativeCoroutinesCore-umbrella.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */ = {
|
||||
3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = BEE7419E71C054760BD15B7423CFF907 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */;
|
||||
buildConfigurationList = 2ED9FB6D099CCE4F4978F62F7663ED7C /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCombine" */;
|
||||
buildPhases = (
|
||||
D2F76021650D1455345732B70977A3FC /* Headers */,
|
||||
D305D7457D6577A950CFE60B3043D652 /* Sources */,
|
||||
E4E62A015C1A66A0F419698716F724CE /* Frameworks */,
|
||||
8D98F7FBA7911C76B4490172AD63D3E5 /* Headers */,
|
||||
9CEA02A290EF1B802DB096A30846A9F5 /* Sources */,
|
||||
9267A726B52622ED0E999F5C5BEDC1B1 /* Frameworks */,
|
||||
5F73E2D3BBEE7795EBFEEB65642B871D /* Copy generated compatibility header */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
57232FE50E2497447CFACBE2757A8222 /* PBXTargetDependency */,
|
||||
DE102CF6445EDDB7EAA484EE0352D047 /* PBXTargetDependency */,
|
||||
);
|
||||
name = KMPNativeCoroutinesCombine;
|
||||
productName = KMPNativeCoroutinesCombine;
|
||||
productReference = 1BC4A026DBC6C2982B828355463B2569 /* libKMPNativeCoroutinesCombine.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = E0B01867EA2B9108E49B01132E5D2B37 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */;
|
||||
buildPhases = (
|
||||
5F9C687B032D88BC5138FDD0F0294935 /* Headers */,
|
||||
DA57476879C9AF7FEE9745D963C6B187 /* Sources */,
|
||||
FFD7C6DF3A4A8D1CF620C630992D63A1 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
CA65EF2D19634B520AE4B11C70E822D9 /* PBXTargetDependency */,
|
||||
D35DFA056BF6EBA699088C91A0049D19 /* PBXTargetDependency */,
|
||||
70DC7965A62EDDBF458AFDBD3571CFFE /* PBXTargetDependency */,
|
||||
);
|
||||
name = "Pods-PeopleInSpace";
|
||||
productName = "Pods-PeopleInSpace";
|
||||
productReference = 793C7F500A5E2FF09F28299CA517AC3F /* libPods-PeopleInSpace.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2B4D7B0804DDDDD535EBCDB2916D5BCB /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCore" */;
|
||||
buildPhases = (
|
||||
F45FED5EF8C697E2C7261D7234E7876B /* Headers */,
|
||||
18779BCA9D1123CA855810C0AAE5A6D0 /* Sources */,
|
||||
F6A23041D604F1E204DEC95A52D6A66E /* Frameworks */,
|
||||
7E593ECA3A8E68EB509565C728C28237 /* Copy generated compatibility header */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = KMPNativeCoroutinesCore;
|
||||
productName = KMPNativeCoroutinesCore;
|
||||
productReference = E32954243B605448566BC0C0B0BCF70D /* libKMPNativeCoroutinesCore.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
|
@ -199,11 +392,13 @@
|
|||
Base,
|
||||
);
|
||||
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
|
||||
productRefGroup = 7E33595295125D9ADC3DD69A856B53D6 /* Products */;
|
||||
productRefGroup = 14FBC9D6FC7ED711FC3A3AFCD36A010B /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8217FBB9D1218C346C0781D0B8F2BBE8 /* common */,
|
||||
3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */,
|
||||
FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */,
|
||||
C17638F5D623F54F5BC5696E85FCF8A3 /* Pods-PeopleInSpace */,
|
||||
);
|
||||
};
|
||||
|
@ -220,33 +415,123 @@
|
|||
shellPath = /bin/sh;
|
||||
shellScript = " if [ \"YES\" = \"$COCOAPODS_SKIP_KOTLIN_BUILD\" ]; then\n echo \"Skipping Gradle build task invocation due to COCOAPODS_SKIP_KOTLIN_BUILD 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 -Pkotlin.native.cocoapods.cflags=\"$OTHER_CFLAGS\" -Pkotlin.native.cocoapods.paths.headers=\"$HEADER_SEARCH_PATHS\" -Pkotlin.native.cocoapods.paths.frameworks=\"$FRAMEWORK_SEARCH_PATHS\"\n";
|
||||
};
|
||||
5F73E2D3BBEE7795EBFEEB65642B871D /* Copy generated compatibility header */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h",
|
||||
"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap",
|
||||
"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-umbrella.h",
|
||||
);
|
||||
name = "Copy generated compatibility header";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap",
|
||||
"${BUILT_PRODUCTS_DIR}/KMPNativeCoroutinesCombine-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/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-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";
|
||||
};
|
||||
7E593ECA3A8E68EB509565C728C28237 /* Copy generated compatibility header */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${DERIVED_SOURCES_DIR}/${PRODUCT_MODULE_NAME}-Swift.h",
|
||||
"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap",
|
||||
"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-umbrella.h",
|
||||
);
|
||||
name = "Copy generated compatibility header";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"${BUILT_PRODUCTS_DIR}/${PRODUCT_MODULE_NAME}.modulemap",
|
||||
"${BUILT_PRODUCTS_DIR}/KMPNativeCoroutinesCore-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/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap\" \"${MODULE_MAP_PATH}\"\nditto \"${PODS_ROOT}/Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-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";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D305D7457D6577A950CFE60B3043D652 /* Sources */ = {
|
||||
18779BCA9D1123CA855810C0AAE5A6D0 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
7EE04E32660FEA2555A49E1495986AF0 /* Pods-PeopleInSpace-dummy.m in Sources */,
|
||||
4D058353F02CB5ADCD8D002099B1DF7A /* KMPNativeCoroutinesCore-dummy.m in Sources */,
|
||||
8AD216478639C6A89F4A5681F0167FC2 /* NativeCallback.swift in Sources */,
|
||||
7E6C22677B35403CD19CD97CF5C9C55B /* NativeCancellable.swift in Sources */,
|
||||
4DC8F1E3DC92D51E273BCEBF689FBE81 /* NativeFlow.swift in Sources */,
|
||||
67CD9BF971445F04D19C8A3F0E694D03 /* NativeSuspend.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
9CEA02A290EF1B802DB096A30846A9F5 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
F665CC033BA40B1DD8175B0419E51CAF /* Future.swift in Sources */,
|
||||
81017431C9331986689A0A08AFA75E2B /* FuturePublisher.swift in Sources */,
|
||||
D449674759C5FEEC3D6CC8EB235862CA /* KMPNativeCoroutinesCombine-dummy.m in Sources */,
|
||||
3736EF6166F11F146BF0224EF85DCD33 /* Publisher.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
DA57476879C9AF7FEE9745D963C6B187 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
043C42C08203AD7285BDB21C47D33249 /* Pods-PeopleInSpace-dummy.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
57232FE50E2497447CFACBE2757A8222 /* PBXTargetDependency */ = {
|
||||
70DC7965A62EDDBF458AFDBD3571CFFE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = common;
|
||||
target = 8217FBB9D1218C346C0781D0B8F2BBE8 /* common */;
|
||||
targetProxy = 8231E61C22B0B0267D6B822E259A45F3 /* PBXContainerItemProxy */;
|
||||
targetProxy = 9BBF0F64698ABF7695026003A2064F3C /* PBXContainerItemProxy */;
|
||||
};
|
||||
CA65EF2D19634B520AE4B11C70E822D9 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = KMPNativeCoroutinesCombine;
|
||||
target = 3F9FD9D97D14F53EE028871E5A26555A /* KMPNativeCoroutinesCombine */;
|
||||
targetProxy = 47DB3C25400C1F423D29F65D8870E9CB /* PBXContainerItemProxy */;
|
||||
};
|
||||
D35DFA056BF6EBA699088C91A0049D19 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = KMPNativeCoroutinesCore;
|
||||
target = FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */;
|
||||
targetProxy = 78AA26295B54DF9A6A1F5180093F3E80 /* PBXContainerItemProxy */;
|
||||
};
|
||||
DE102CF6445EDDB7EAA484EE0352D047 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = KMPNativeCoroutinesCore;
|
||||
target = FFFB6783B79B68DA14E36A00A348B0B3 /* KMPNativeCoroutinesCore */;
|
||||
targetProxy = A0A09942BB536170555BACB2BE6D6FD1 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
0253CCDEE11BB2E876CF8C6EBDC6E1A8 /* Release */ = {
|
||||
0AE172D8F2A4843BFACAD21A0ED26541 /* 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";
|
||||
|
@ -269,6 +554,7 @@
|
|||
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;
|
||||
|
@ -303,10 +589,29 @@
|
|||
};
|
||||
name = Release;
|
||||
};
|
||||
6DC6BBF7D2A721A4E91A75A28EEB8E83 /* Debug */ = {
|
||||
178DF5E36D59F8FD6C6680014C4EC930 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
SDKROOT = macosx;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
808E544862838153672EA12FCC127D9A /* 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";
|
||||
|
@ -329,6 +634,7 @@
|
|||
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;
|
||||
|
@ -367,20 +673,69 @@
|
|||
};
|
||||
name = Debug;
|
||||
};
|
||||
80DB47D66BFD15CAB66D0E949A3F916A /* Debug */ = {
|
||||
A6AED7D3BEE730887C83F60FD7AFEE1C /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 94E5CDD5D764030A85FEEB8A2E3D7F10 /* Pods-PeopleInSpace.debug.xcconfig */;
|
||||
baseConfigurationReference = EEEC7F6E823C77314E6D7F04F0B659C2 /* Pods-PeopleInSpace.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
MODULEMAP_FILE = "Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
B97A6B72EDA86EE6FA21497F49168EBA /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2CB824F75C95F744CD060A677ADEF508 /* KMPNativeCoroutinesCombine.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_MODULE_NAME = KMPNativeCoroutinesCombine;
|
||||
PRODUCT_NAME = KMPNativeCoroutinesCombine;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
C077C674C6469568DB938C668E829AE1 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 77A6C896A2C42904FB007F52F8CEFAB8 /* Pods-PeopleInSpace.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
MODULEMAP_FILE = "Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap";
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
|
@ -390,32 +745,39 @@
|
|||
};
|
||||
name = Debug;
|
||||
};
|
||||
86D2A2EFA4F2CF72E22F58CF8CD6B995 /* Debug */ = {
|
||||
D3707D8F3BE7987DB96E0F0911DCC65A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = EB3F91873EE86E12ADFA4BF9F5D786D8 /* common.debug.xcconfig */;
|
||||
baseConfigurationReference = 702E8C690C894B05B2B335B3222E38BE /* KMPNativeCoroutinesCore.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/../Frameworks",
|
||||
);
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_MODULE_NAME = KMPNativeCoroutinesCore;
|
||||
PRODUCT_NAME = KMPNativeCoroutinesCore;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
name = Release;
|
||||
};
|
||||
A131A2412A163203FF1534E11094A448 /* Release */ = {
|
||||
EC20AF0F50816F95DC12A275149D93D6 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 092A4CE06CEC277508371925DC20C57F /* common.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
COMBINE_HIDPI_IMAGES = YES;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -426,46 +788,92 @@
|
|||
};
|
||||
name = Release;
|
||||
};
|
||||
D6A7904CAD11E3F3726C99F86480B560 /* Release */ = {
|
||||
F401A5F613D876B8143283F0DE7F0E58 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 2574321D10AA6E9E090925AD61FC5281 /* Pods-PeopleInSpace.release.xcconfig */;
|
||||
baseConfigurationReference = 441594932398928E8B523A7C8A149DDE /* KMPNativeCoroutinesCore.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
CODE_SIGN_IDENTITY = "-";
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore-prefix.pch";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.9;
|
||||
MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_MODULE_NAME = KMPNativeCoroutinesCore;
|
||||
PRODUCT_NAME = KMPNativeCoroutinesCore;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Release;
|
||||
name = Debug;
|
||||
};
|
||||
F4684F8D37EB6F50D84EAFBA3EDB9AAE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 00E9CDC40C89F2C4236A1FCF1C2C333D /* KMPNativeCoroutinesCombine.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
|
||||
CLANG_ENABLE_OBJC_WEAK = NO;
|
||||
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
|
||||
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
|
||||
EXECUTABLE_PREFIX = lib;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine-prefix.pch";
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.15;
|
||||
MODULEMAP_FILE = Headers/Public/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_MODULE_NAME = KMPNativeCoroutinesCombine;
|
||||
PRODUCT_NAME = KMPNativeCoroutinesCombine;
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = macosx;
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
|
||||
SWIFT_VERSION = 5.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
2B4D7B0804DDDDD535EBCDB2916D5BCB /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCore" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
6DC6BBF7D2A721A4E91A75A28EEB8E83 /* Debug */,
|
||||
0253CCDEE11BB2E876CF8C6EBDC6E1A8 /* Release */,
|
||||
F401A5F613D876B8143283F0DE7F0E58 /* Debug */,
|
||||
D3707D8F3BE7987DB96E0F0911DCC65A /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
BEE7419E71C054760BD15B7423CFF907 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */ = {
|
||||
2ED9FB6D099CCE4F4978F62F7663ED7C /* Build configuration list for PBXNativeTarget "KMPNativeCoroutinesCombine" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
80DB47D66BFD15CAB66D0E949A3F916A /* Debug */,
|
||||
D6A7904CAD11E3F3726C99F86480B560 /* Release */,
|
||||
F4684F8D37EB6F50D84EAFBA3EDB9AAE /* Debug */,
|
||||
B97A6B72EDA86EE6FA21497F49168EBA /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
808E544862838153672EA12FCC127D9A /* Debug */,
|
||||
0AE172D8F2A4843BFACAD21A0ED26541 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
E0B01867EA2B9108E49B01132E5D2B37 /* Build configuration list for PBXNativeTarget "Pods-PeopleInSpace" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
C077C674C6469568DB938C668E829AE1 /* Debug */,
|
||||
A6AED7D3BEE730887C83F60FD7AFEE1C /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
|
@ -473,8 +881,8 @@
|
|||
F11FEA02DA0EC11D42BB6656A90E71FA /* Build configuration list for PBXAggregateTarget "common" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
86D2A2EFA4F2CF72E22F58CF8CD6B995 /* Debug */,
|
||||
A131A2412A163203FF1534E11094A448 /* Release */,
|
||||
178DF5E36D59F8FD6C6680014C4EC930 /* Debug */,
|
||||
EC20AF0F50816F95DC12A275149D93D6 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_KMPNativeCoroutinesCombine : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_KMPNativeCoroutinesCombine
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
FOUNDATION_EXPORT double KMPNativeCoroutinesCombineVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char KMPNativeCoroutinesCombineVersionString[];
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.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_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCombine
|
||||
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}/KMPNativeCoroutinesCore"
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,6 @@
|
|||
module KMPNativeCoroutinesCombine {
|
||||
umbrella header "KMPNativeCoroutinesCombine-umbrella.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.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_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCombine
|
||||
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}/KMPNativeCoroutinesCore"
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
|
@ -0,0 +1,5 @@
|
|||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_KMPNativeCoroutinesCore : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_KMPNativeCoroutinesCore
|
||||
@end
|
|
@ -0,0 +1,12 @@
|
|||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
FOUNDATION_EXPORT double KMPNativeCoroutinesCoreVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char KMPNativeCoroutinesCoreVersionString[];
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore
|
||||
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_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCore
|
||||
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
|
|
@ -0,0 +1,6 @@
|
|||
module KMPNativeCoroutinesCore {
|
||||
umbrella header "KMPNativeCoroutinesCore-umbrella.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore
|
||||
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_ROOT = ${SRCROOT}
|
||||
PODS_TARGET_SRCROOT = ${PODS_ROOT}/KMPNativeCoroutinesCore
|
||||
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
|
|
@ -1,3 +1,53 @@
|
|||
# Acknowledgements
|
||||
This application makes use of the following third party libraries:
|
||||
|
||||
## KMPNativeCoroutinesCombine
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
||||
|
||||
|
||||
## KMPNativeCoroutinesCore
|
||||
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
||||
|
||||
Generated by CocoaPods - https://cocoapods.org
|
||||
|
|
|
@ -12,6 +12,68 @@
|
|||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>MIT</string>
|
||||
<key>Title</key>
|
||||
<string>KMPNativeCoroutinesCombine</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>MIT License
|
||||
|
||||
Copyright (c) 2021 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.
|
||||
</string>
|
||||
<key>License</key>
|
||||
<string>MIT</string>
|
||||
<key>Title</key>
|
||||
<string>KMPNativeCoroutinesCore</string>
|
||||
<key>Type</key>
|
||||
<string>PSGroupSpecifier</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FooterText</key>
|
||||
<string>Generated by CocoaPods - https://cocoapods.org</string>
|
||||
|
|
16
macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h
generated
Normal file
16
macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace-umbrella.h
generated
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifdef __OBJC__
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#else
|
||||
#ifndef FOUNDATION_EXPORT
|
||||
#if defined(__cplusplus)
|
||||
#define FOUNDATION_EXPORT extern "C"
|
||||
#else
|
||||
#define FOUNDATION_EXPORT extern
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
FOUNDATION_EXPORT double Pods_PeopleInSpaceVersionNumber;
|
||||
FOUNDATION_EXPORT const unsigned char Pods_PeopleInSpaceVersionString[];
|
||||
|
|
@ -1,8 +1,15 @@
|
|||
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
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "common"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore"
|
||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"KMPNativeCoroutinesCombine" -l"KMPNativeCoroutinesCore" -l"c++" -framework "Combine" -framework "common"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.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}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore"
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||
|
|
6
macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap
generated
Normal file
6
macOS/PeopleInSpace/Pods/Target Support Files/Pods-PeopleInSpace/Pods-PeopleInSpace.modulemap
generated
Normal file
|
@ -0,0 +1,6 @@
|
|||
module Pods_PeopleInSpace {
|
||||
umbrella header "Pods-PeopleInSpace-umbrella.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
|
@ -1,8 +1,15 @@
|
|||
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
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "common"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore"
|
||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.modulemap"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"KMPNativeCoroutinesCombine" -l"KMPNativeCoroutinesCore" -l"c++" -framework "Combine" -framework "common"
|
||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCombine/KMPNativeCoroutinesCombine.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore/KMPNativeCoroutinesCore.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}/KMPNativeCoroutinesCombine" "${PODS_CONFIGURATION_BUILD_DIR}/KMPNativeCoroutinesCore"
|
||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
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
|
||||
|
@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
|
|||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
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
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
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
|
||||
|
@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR}
|
|||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue