diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6b358f2..67b6c7e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -28,6 +28,12 @@ jobs: run: ./gradlew :napier:iosX64Test --stacktrace - name: Run jvm tests run: ./gradlew :napier:jvmTest --stacktrace + - name: Run macos tests + run: ./gradlew :napier:macosX64Test --stacktrace + - name: Run watchos tests + run: ./gradlew :napier:watchosX64Test --stacktrace + - name: Run tvos tests + run: ./gradlew :napier:tvosX64Test --stacktrace - name: Bundle the build report if: failure() diff --git a/README.md b/README.md index 736aba5..9c0e23d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ ![logo][logo] Napier is a logger library for Kotlin Multiplatform. -It supports for the android, ios, jvm, js. +It supports for the Android, Darwin(iOS, macOS, watchOS, tvOS), JVM, JavaScript. Logs written in common module are displayed on logger viewer of each platform. -* Android +## Preview + +### Android format: `[Class name]$[Method name]: [Your log]` @@ -12,21 +14,23 @@ uses the `android.util.Log`(Logcat) ![preview-android][preview-android] -* ios +### Darwin(iOS, macOS, watchOS, tvOS) format: `[Date time][Symbol][Log level][Class name].[Method name] - [Your log]` +Added `[async]` label at the end, if it is called from suspend functions. + uses the `print` ![preview-ios][preview-ios] -* js +### JavaScript uses the `console.log` ![preview-js][preview-js] -* jvm +### JVM uses the `java.util.logging.Logger` @@ -73,7 +77,7 @@ You can download this library from MavenCentral or jCenter repository. * Maven central -You can download this from `1.4.1`. +You can download this from `2.0.0`. Package name is `io.github.aakira` ```groovy @@ -175,6 +179,10 @@ fun debugBuild() { } ``` +|argument|type|description| +|-|-| +|coroutinesSuffix|Boolean|Added `[async]` label at the end, if it is called from suspend functions| + * Call initialize code from ios project. ```swift @@ -198,6 +206,36 @@ Napier.takeLogarithm() | ERROR | Napier.e() | | ASSERT | Napier.wtf()| +## Run background thread + +You can use this library on the background thread on iOS using [Kotlin.coroutines](https://github.com/Kotlin/kotlinx.coroutines) as native-mt. + +* Define scope + +```kotlin +internal val mainScope = SharedScope(Dispatchers.Main) + +internal val backgroundScope = SharedScope(Dispatchers.Default) + +internal class SharedScope(private val context: CoroutineContext) : CoroutineScope { + private val job = Job() + private val exceptionHandler = CoroutineExceptionHandler { _, throwable -> + println("[Coroutine Exception] $throwable") + } + + override val coroutineContext: CoroutineContext + get() = context + job + exceptionHandler +} +``` + +* Usage + +```kotlin +backgroundScope.launch { + suspendFunction() +} +``` + ## Advancement You can inject custom `Antilog`. diff --git a/android/src/main/java/io/github/aakira/napier/sample/CrashlyticsAntilog.kt b/android/src/main/java/io/github/aakira/napier/sample/CrashlyticsAntilog.kt index 85d599b..20bee58 100644 --- a/android/src/main/java/io/github/aakira/napier/sample/CrashlyticsAntilog.kt +++ b/android/src/main/java/io/github/aakira/napier/sample/CrashlyticsAntilog.kt @@ -3,18 +3,18 @@ package io.github.aakira.napier.sample import android.content.Context import com.google.firebase.crashlytics.FirebaseCrashlytics import io.github.aakira.napier.Antilog -import io.github.aakira.napier.Napier +import io.github.aakira.napier.LogLevel class CrashlyticsAntilog(private val context: Context) : Antilog() { override fun performLog( - priority: Napier.Level, + priority: LogLevel, tag: String?, throwable: Throwable?, message: String? ) { // send only error log - if (priority < Napier.Level.ERROR) return + if (priority < LogLevel.ERROR) return throwable?.let { when (it) { diff --git a/arts/screen-shot-ios.jpg b/arts/screen-shot-ios.jpg new file mode 100644 index 0000000..67b83c7 Binary files /dev/null and b/arts/screen-shot-ios.jpg differ diff --git a/buildSrc/src/main/kotlin/dependencies/Dep.kt b/buildSrc/src/main/kotlin/dependencies/Dep.kt index ea00e19..413c6b7 100644 --- a/buildSrc/src/main/kotlin/dependencies/Dep.kt +++ b/buildSrc/src/main/kotlin/dependencies/Dep.kt @@ -2,7 +2,7 @@ package dependencies object Dep { - private const val kotlin = "1.5.0" + private const val kotlin = "1.5.21" object GradlePlugin { const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Dep.kotlin}" @@ -20,7 +20,7 @@ object Dep { } object Coroutines { - private const val version = "1.5.0-RC" + private const val version = "1.5.1-native-mt" const val core = "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version" } diff --git a/buildSrc/src/main/kotlin/dependencies/Versions.kt b/buildSrc/src/main/kotlin/dependencies/Versions.kt index 8706853..232113f 100644 --- a/buildSrc/src/main/kotlin/dependencies/Versions.kt +++ b/buildSrc/src/main/kotlin/dependencies/Versions.kt @@ -1,8 +1,8 @@ package dependencies object Versions { - const val versionCode = 15 - const val versionName = "1.5.0" + const val versionCode = 18 + const val versionName = "2.0.0" // android const val androidVersionCode = 1 @@ -10,6 +10,5 @@ object Versions { const val compileSdkVersion = 30 const val buildToolsVersion = "29.0.3" const val minSdkVersion = 16 - const val instantAppMinSdkVersion = 23 const val targetSdkVersion = 28 } diff --git a/ios/Napier.xcodeproj/project.pbxproj b/ios/Napier.xcodeproj/project.pbxproj index 716da5a..8449eae 100644 --- a/ios/Napier.xcodeproj/project.pbxproj +++ b/ios/Napier.xcodeproj/project.pbxproj @@ -3,13 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 51; + objectVersion = 50; objects = { /* Begin PBXBuildFile section */ 3B3988B1264ADA500055407D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3988B0264ADA500055407D /* GoogleService-Info.plist */; }; - 3B3988B3264AE4F50055407D /* Common.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B3988B2264AE4F40055407D /* Common.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 74AC91897E121EEADF59069F /* Pods_Napier.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 236CB35798B6FF37795E2A6A /* Pods_Napier.framework */; }; + 625D2A51333F356CAFD0D528 /* Pods_Napier.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 236CB35798B6FF37795E2A6A /* Pods_Napier.framework */; }; 7CFB659A22013CF600BD05FC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CFB659922013CF600BD05FC /* AppDelegate.swift */; }; 7CFB659C22013CF600BD05FC /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CFB659B22013CF600BD05FC /* ViewController.swift */; }; 7CFB659F22013CF600BD05FC /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7CFB659D22013CF600BD05FC /* Main.storyboard */; }; @@ -17,25 +16,10 @@ 7CFB65A422013CF900BD05FC /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7CFB65A222013CF900BD05FC /* LaunchScreen.storyboard */; }; /* End PBXBuildFile section */ -/* Begin PBXCopyFilesBuildPhase section */ - 7CFB65CA22013D5200BD05FC /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 3B3988B3264AE4F50055407D /* Common.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 14D73DDEDA418BBBD3C23B9B /* Pods-Napier.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Napier.release.xcconfig"; path = "Target Support Files/Pods-Napier/Pods-Napier.release.xcconfig"; sourceTree = ""; }; 236CB35798B6FF37795E2A6A /* Pods_Napier.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Napier.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B3988B0264ADA500055407D /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - 3B3988B2264AE4F40055407D /* Common.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Common.framework; path = "../mpp-sample/build/xcode-frameworks/Common.framework"; sourceTree = ""; }; 6F88F8388EB37A3B9C7069DF /* Pods-Napier.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Napier.debug.xcconfig"; path = "Target Support Files/Pods-Napier/Pods-Napier.debug.xcconfig"; sourceTree = ""; }; 7CFB659622013CF500BD05FC /* Napier.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Napier.app; sourceTree = BUILT_PRODUCTS_DIR; }; 7CFB659922013CF600BD05FC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -51,7 +35,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 74AC91897E121EEADF59069F /* Pods_Napier.framework in Frameworks */, + 625D2A51333F356CAFD0D528 /* Pods_Napier.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -78,7 +62,6 @@ 7CFB658D22013CF500BD05FC = { isa = PBXGroup; children = ( - 3B3988B2264AE4F40055407D /* Common.framework */, 7CFB659822013CF500BD05FC /* Napier */, 7CFB659722013CF500BD05FC /* Products */, 10E92F91406E001698737DB9 /* Pods */, @@ -120,9 +103,8 @@ 7CFB659222013CF500BD05FC /* Sources */, 7CFB659322013CF500BD05FC /* Frameworks */, 7CFB659422013CF500BD05FC /* Resources */, - 7CFB65CA22013D5200BD05FC /* Embed Frameworks */, 7C44D7BC221548AD002EEF8F /* Crashlytics */, - 9440D0487B4C902A85F73734 /* [CP] Embed Pods Frameworks */, + 095E9721F85EF8B8A60C2E7E /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -181,6 +163,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 095E9721F85EF8B8A60C2E7E /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 55963836C9E5F6516FE3DBE8 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -238,24 +237,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "cd $SRCROOT/..\n./gradlew :mpp-sample:packForXcode -PXCODE_CONFIGURATION=${CONFIGURATION}\n"; - }; - 9440D0487B4C902A85F73734 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Napier/Pods-Napier-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "cd $SRCROOT/..\n./gradlew :mpp-sample:compileKotlinIosX64\n"; }; /* End PBXShellScriptBuildPhase section */ diff --git a/ios/Napier/AppDelegate.swift b/ios/Napier/AppDelegate.swift index 5af17bb..1b545a6 100644 --- a/ios/Napier/AppDelegate.swift +++ b/ios/Napier/AppDelegate.swift @@ -1,6 +1,6 @@ import UIKit import Firebase -import Common +import mpp_sample @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { diff --git a/ios/Napier/ViewController.swift b/ios/Napier/ViewController.swift index 43ab1ee..bae8e1e 100644 --- a/ios/Napier/ViewController.swift +++ b/ios/Napier/ViewController.swift @@ -1,5 +1,5 @@ import UIKit -import Common +import mpp_sample final class ViewController: UIViewController { override func viewDidLoad() { diff --git a/ios/Podfile b/ios/Podfile index 6241e44..cf12a05 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -4,4 +4,5 @@ target 'Napier' do use_frameworks! pod 'Firebase/Crashlytics' + pod 'mpp_sample', :path => '../mpp-sample' end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index efe050b..f18b89b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -34,6 +34,7 @@ PODS: - GoogleUtilities/Environment - GoogleUtilities/UserDefaults (7.3.1): - GoogleUtilities/Logger + - mpp_sample (1.0.0) - nanopb (2.30908.0): - nanopb/decode (= 2.30908.0) - nanopb/encode (= 2.30908.0) @@ -43,6 +44,7 @@ PODS: DEPENDENCIES: - Firebase/Crashlytics + - mpp_sample (from `../mpp-sample`) SPEC REPOS: trunk: @@ -56,6 +58,10 @@ SPEC REPOS: - nanopb - PromisesObjC +EXTERNAL SOURCES: + mpp_sample: + :path: "../mpp-sample" + SPEC CHECKSUMS: Firebase: fffddd0bab8677d07376538365faa93ff3889b39 FirebaseCore: ec566d917b2195fc2610aeb148dae99f57a788f9 @@ -64,9 +70,10 @@ SPEC CHECKSUMS: FirebaseInstallations: bf2ec8dbf36ff4c91af6b9a003d15855757680c1 GoogleDataTransport: cd9db2180fcecd8da1b561aea31e3e56cf834aa7 GoogleUtilities: e1d9ed4e544fc32a93e00e721400cbc3f377200d + mpp_sample: 07fdbc60934b60a9bbfb833df6298899fe345026 nanopb: a0ba3315591a9ae0a16a309ee504766e90db0c96 PromisesObjC: 3113f7f76903778cf4a0586bd1ab89329a0b7b97 -PODFILE CHECKSUM: 2822d85bb609b66f886d949716d5f863dc426322 +PODFILE CHECKSUM: 441ae05d1695723ea9a68d3223ef8b6460bbec0f -COCOAPODS: 1.10.0 +COCOAPODS: 1.10.1 diff --git a/js/build.gradle.kts b/js/build.gradle.kts index 321b471..84559b4 100644 --- a/js/build.gradle.kts +++ b/js/build.gradle.kts @@ -14,15 +14,15 @@ dependencies { } kotlin { - target { + js { browser { // execute :js:browserRun to launch dev server runTask { devServer = KotlinWebpackConfig.DevServer( - true, false, true, true, false, - 8080, - null, - listOf("${projectDir}/src/main/resources".toString()) + open = true, + port = 8080, + proxy = null, + contentBase = mutableListOf("${projectDir}/src/main/resources") ) outputFileName = "main.js" } diff --git a/macOS/Podfile b/macOS/Podfile new file mode 100644 index 0000000..b982458 --- /dev/null +++ b/macOS/Podfile @@ -0,0 +1,10 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'macOS (macOS)' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for macOS (macOS) + pod 'mpp_sample', :path => '../mpp-sample' +end diff --git a/macOS/Podfile.lock b/macOS/Podfile.lock new file mode 100644 index 0000000..5862c4c --- /dev/null +++ b/macOS/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - mpp_sample (1.0.0) + +DEPENDENCIES: + - mpp_sample (from `../mpp-sample`) + +EXTERNAL SOURCES: + mpp_sample: + :path: "../mpp-sample" + +SPEC CHECKSUMS: + mpp_sample: 07fdbc60934b60a9bbfb833df6298899fe345026 + +PODFILE CHECKSUM: bc4ce6f8ddff432aa3bca804121efe1d46ba7a07 + +COCOAPODS: 1.10.1 diff --git a/macOS/Pods/Local Podspecs/mpp_sample.podspec.json b/macOS/Pods/Local Podspecs/mpp_sample.podspec.json new file mode 100644 index 0000000..eb7b285 --- /dev/null +++ b/macOS/Pods/Local Podspecs/mpp_sample.podspec.json @@ -0,0 +1,39 @@ +{ + "name": "mpp_sample", + "version": "1.0.0", + "homepage": "https://github.com/AAkira/Napier", + "source": { + "git": "Not Published", + "tag": "Cocoapods/mpp_sample/1.0.0" + }, + "authors": "", + "license": "", + "summary": "CocoaPods library", + "static_framework": true, + "vendored_frameworks": "build/cocoapods/framework/mpp_sample.framework", + "libraries": "c++", + "module_name": "mpp_sample_umbrella", + "pod_target_xcconfig": { + "KOTLIN_TARGET[sdk=iphonesimulator*]": "ios_x64", + "KOTLIN_TARGET[sdk=iphoneos*]": "ios_arm", + "KOTLIN_TARGET[sdk=watchsimulator*]": "watchos_x64", + "KOTLIN_TARGET[sdk=watchos*]": "watchos_arm", + "KOTLIN_TARGET[sdk=appletvsimulator*]": "tvos_x64", + "KOTLIN_TARGET[sdk=appletvos*]": "tvos_arm64", + "KOTLIN_TARGET[sdk=macosx*]": "macos_x64" + }, + "script_phases": [ + { + "name": "Build mpp_sample", + "execution_position": "before_compile", + "shell_path": "/bin/sh", + "script": " set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" :mpp-sample:syncFramework -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET -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" + } + ], + "platforms": { + "osx": null, + "ios": null, + "tvos": null, + "watchos": null + } +} diff --git a/macOS/Pods/Manifest.lock b/macOS/Pods/Manifest.lock new file mode 100644 index 0000000..5862c4c --- /dev/null +++ b/macOS/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - mpp_sample (1.0.0) + +DEPENDENCIES: + - mpp_sample (from `../mpp-sample`) + +EXTERNAL SOURCES: + mpp_sample: + :path: "../mpp-sample" + +SPEC CHECKSUMS: + mpp_sample: 07fdbc60934b60a9bbfb833df6298899fe345026 + +PODFILE CHECKSUM: bc4ce6f8ddff432aa3bca804121efe1d46ba7a07 + +COCOAPODS: 1.10.1 diff --git a/macOS/Pods/Pods.xcodeproj/project.pbxproj b/macOS/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..67475ad --- /dev/null +++ b/macOS/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,548 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXAggregateTarget section */ + 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */ = { + isa = PBXAggregateTarget; + buildConfigurationList = C8461E57243705CFA5C9C5247BD5AB9D /* Build configuration list for PBXAggregateTarget "mpp_sample" */; + buildPhases = ( + 3FC3EA628192C67993A01162848AFF70 /* [CP-User] Build mpp_sample */, + ); + dependencies = ( + ); + name = mpp_sample; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 3627E883B85E79C1051F3585D56386EB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */; }; + F222339A0A70BC6197C3F64CF83B1104 /* Pods-macOS (macOS)-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D2546A927EC2426BBAADC138EE9F2786 /* Pods-macOS (macOS)-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F921AC5E4352F41F47031C9E88C1CAD2 /* Pods-macOS (macOS)-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 898FF93EA83A5D2E1E9BB3B228044FAB /* Pods-macOS (macOS)-dummy.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + FFF457A0E4441AA6B566251DBEB23C5F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2BDBC3602D396D415E60A5F264B74513; + remoteInfo = mpp_sample; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 06A8BDAEE8559382B8E8B267E5CA8509 /* Pods-macOS (macOS)-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-macOS (macOS)-acknowledgements.markdown"; sourceTree = ""; }; + 0A7FEDB5ED839ED9AFEEA1848DDD6107 /* Pods-macOS (macOS)-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-macOS (macOS)-acknowledgements.plist"; sourceTree = ""; }; + 4FC28BB28AD8B5DAD6EB4312C16283EE /* mpp_sample.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = mpp_sample.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 65A6A0D337C93365911A50A659878EF3 /* Pods-macOS (macOS).release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-macOS (macOS).release.xcconfig"; sourceTree = ""; }; + 69019109C812397440EEF62AE096FBB1 /* mpp_sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = mpp_sample.debug.xcconfig; sourceTree = ""; }; + 6997DCEB911AF65BF7ED87E0B241F592 /* Pods_macOS__macOS_.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_macOS__macOS_.framework; path = "Pods-macOS (macOS).framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 7B155E60863ED57DBA5B6D29A5E56DAE /* mpp_sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = mpp_sample.release.xcconfig; sourceTree = ""; }; + 898FF93EA83A5D2E1E9BB3B228044FAB /* Pods-macOS (macOS)-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-macOS (macOS)-dummy.m"; sourceTree = ""; }; + 9BB2034F40CC2A4DEE79B6350408C083 /* Pods-macOS (macOS)-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-macOS (macOS)-Info.plist"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; + D2546A927EC2426BBAADC138EE9F2786 /* Pods-macOS (macOS)-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-macOS (macOS)-umbrella.h"; sourceTree = ""; }; + E5F57260DD0E5D0C781B3EB300D63186 /* mpp_sample.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpp_sample.framework; path = build/cocoapods/framework/mpp_sample.framework; sourceTree = ""; }; + E604699A5F30EC86AB9A2EFFEB5E8474 /* Pods-macOS (macOS).debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-macOS (macOS).debug.xcconfig"; sourceTree = ""; }; + FF4740D62809262CA6FE62B4F31F9143 /* Pods-macOS (macOS).modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-macOS (macOS).modulemap"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + AF2F9C056CA0481F6CF2DC32737773A2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3627E883B85E79C1051F3585D56386EB /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 027117B9890F34BDECAEEA1D11ED4FCE /* Pod */ = { + isa = PBXGroup; + children = ( + 4FC28BB28AD8B5DAD6EB4312C16283EE /* mpp_sample.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + 61BCC45D2B1395AFE99A298C9CB3809D /* Products */ = { + isa = PBXGroup; + children = ( + 6997DCEB911AF65BF7ED87E0B241F592 /* Pods_macOS__macOS_.framework */, + ); + name = Products; + sourceTree = ""; + }; + 8EC019D30B23311CA85531BB8E8907EB /* Frameworks */ = { + isa = PBXGroup; + children = ( + E5F57260DD0E5D0C781B3EB300D63186 /* mpp_sample.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + AF199AEE59247EBAA5D92E2E2B31877A /* Development Pods */ = { + isa = PBXGroup; + children = ( + BBAD2EA0ADD04D47C2ACC625CD4A27CD /* mpp_sample */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + BBAD2EA0ADD04D47C2ACC625CD4A27CD /* mpp_sample */ = { + isa = PBXGroup; + children = ( + 8EC019D30B23311CA85531BB8E8907EB /* Frameworks */, + 027117B9890F34BDECAEEA1D11ED4FCE /* Pod */, + E2A7085C6E4AB8BAB26921F8A526EE2E /* Support Files */, + ); + name = mpp_sample; + path = "../../mpp-sample"; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + AF199AEE59247EBAA5D92E2E2B31877A /* Development Pods */, + E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */, + 61BCC45D2B1395AFE99A298C9CB3809D /* Products */, + F50475D0FC2C42EDA26D88AC4E530E9D /* Targets Support Files */, + ); + sourceTree = ""; + }; + D1197DD0B194EA0887C93DC310FFE038 /* Pods-macOS (macOS) */ = { + isa = PBXGroup; + children = ( + FF4740D62809262CA6FE62B4F31F9143 /* Pods-macOS (macOS).modulemap */, + 06A8BDAEE8559382B8E8B267E5CA8509 /* Pods-macOS (macOS)-acknowledgements.markdown */, + 0A7FEDB5ED839ED9AFEEA1848DDD6107 /* Pods-macOS (macOS)-acknowledgements.plist */, + 898FF93EA83A5D2E1E9BB3B228044FAB /* Pods-macOS (macOS)-dummy.m */, + 9BB2034F40CC2A4DEE79B6350408C083 /* Pods-macOS (macOS)-Info.plist */, + D2546A927EC2426BBAADC138EE9F2786 /* Pods-macOS (macOS)-umbrella.h */, + E604699A5F30EC86AB9A2EFFEB5E8474 /* Pods-macOS (macOS).debug.xcconfig */, + 65A6A0D337C93365911A50A659878EF3 /* Pods-macOS (macOS).release.xcconfig */, + ); + name = "Pods-macOS (macOS)"; + path = "Target Support Files/Pods-macOS (macOS)"; + sourceTree = ""; + }; + E0A1E60606E0BF6E2E10F1F01350DFE8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + E2A8756CA1FF5258A0344D53C5C60EC1 /* OS X */, + ); + name = Frameworks; + sourceTree = ""; + }; + E2A7085C6E4AB8BAB26921F8A526EE2E /* Support Files */ = { + isa = PBXGroup; + children = ( + 69019109C812397440EEF62AE096FBB1 /* mpp_sample.debug.xcconfig */, + 7B155E60863ED57DBA5B6D29A5E56DAE /* mpp_sample.release.xcconfig */, + ); + name = "Support Files"; + path = "../macOS/Pods/Target Support Files/mpp_sample"; + sourceTree = ""; + }; + E2A8756CA1FF5258A0344D53C5C60EC1 /* OS X */ = { + isa = PBXGroup; + children = ( + C1430F003D39D9906881A6AC724B7931 /* Cocoa.framework */, + ); + name = "OS X"; + sourceTree = ""; + }; + F50475D0FC2C42EDA26D88AC4E530E9D /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + D1197DD0B194EA0887C93DC310FFE038 /* Pods-macOS (macOS) */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 7E37AC9282AABC064198AABBE3C2ABE3 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + F222339A0A70BC6197C3F64CF83B1104 /* Pods-macOS (macOS)-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 7DFC271DD133C0C8A6E205D0E2537B50 /* Pods-macOS (macOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = F60FA366E06DCEB34C9F41A4DE0D0624 /* Build configuration list for PBXNativeTarget "Pods-macOS (macOS)" */; + buildPhases = ( + 7E37AC9282AABC064198AABBE3C2ABE3 /* Headers */, + 5B3C2CEBF271B59835D1A688721E288A /* Sources */, + AF2F9C056CA0481F6CF2DC32737773A2 /* Frameworks */, + 10D163C434823AC5F8E0BA7B351052AF /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3FB186592083F42CBB6B3CD5A3CED1C3 /* PBXTargetDependency */, + ); + name = "Pods-macOS (macOS)"; + productName = "Pods-macOS (macOS)"; + productReference = 6997DCEB911AF65BF7ED87E0B241F592 /* Pods_macOS__macOS_.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = 61BCC45D2B1395AFE99A298C9CB3809D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */, + 7DFC271DD133C0C8A6E205D0E2537B50 /* Pods-macOS (macOS) */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 10D163C434823AC5F8E0BA7B351052AF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3FC3EA628192C67993A01162848AFF70 /* [CP-User] Build mpp_sample */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] Build mpp_sample"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = " set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" :mpp-sample:syncFramework -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET -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"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5B3C2CEBF271B59835D1A688721E288A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F921AC5E4352F41F47031C9E88C1CAD2 /* Pods-macOS (macOS)-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3FB186592083F42CBB6B3CD5A3CED1C3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = mpp_sample; + target = 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */; + targetProxy = FFF457A0E4441AA6B566251DBEB23C5F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 2200FEA27DC17D6F1BF546AF0FEB665B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 65A6A0D337C93365911A50A659878EF3 /* Pods-macOS (macOS).release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MODULEMAP_FILE = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 4C88A0984C4E8023CFFAC5817D5B0020 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7B155E60863ED57DBA5B6D29A5E56DAE /* mpp_sample.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; + COMBINE_HIDPI_IMAGES = YES; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.6; + SDKROOT = macosx; + }; + name = Release; + }; + 82E73717A2562031D5E1F4D85DD1A982 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Release; + }; + D39E634FC2CFF97419EB3682DD2807FA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + E9F53836D077948FE63C571CB8A61F86 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 69019109C812397440EEF62AE096FBB1 /* mpp_sample.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; + }; + FCBFE92B3830D47122A8E6565476D045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E604699A5F30EC86AB9A2EFFEB5E8474 /* Pods-macOS (macOS).debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MACOSX_DEPLOYMENT_TARGET = 11.0; + MODULEMAP_FILE = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D39E634FC2CFF97419EB3682DD2807FA /* Debug */, + 82E73717A2562031D5E1F4D85DD1A982 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8461E57243705CFA5C9C5247BD5AB9D /* Build configuration list for PBXAggregateTarget "mpp_sample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E9F53836D077948FE63C571CB8A61F86 /* Debug */, + 4C88A0984C4E8023CFFAC5817D5B0020 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F60FA366E06DCEB34C9F41A4DE0D0624 /* Build configuration list for PBXNativeTarget "Pods-macOS (macOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCBFE92B3830D47122A8E6565476D045 /* Debug */, + 2200FEA27DC17D6F1BF546AF0FEB665B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-macOS (macOS).xcscheme b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-macOS (macOS).xcscheme new file mode 100644 index 0000000..78122d8 --- /dev/null +++ b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-macOS (macOS).xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme new file mode 100644 index 0000000..24f4e6e --- /dev/null +++ b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..f6a1375 --- /dev/null +++ b/macOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,25 @@ + + + + + SchemeUserState + + Pods-macOS (macOS).xcscheme + + isShown + + orderHint + 1 + + mpp_sample.xcscheme + + isShown + + orderHint + 0 + + + SuppressBuildableAutocreation + + + diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-Info.plist b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.markdown b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.plist b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-dummy.m b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-dummy.m new file mode 100644 index 0000000..9a2347c --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_macOS__macOS_ : NSObject +@end +@implementation PodsDummy_Pods_macOS__macOS_ +@end diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-umbrella.h b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-umbrella.h new file mode 100644 index 0000000..e748dea --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS)-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_macOS__macOS_VersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_macOS__macOS_VersionString[]; + diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).debug.xcconfig b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).debug.xcconfig new file mode 100644 index 0000000..38775fb --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).debug.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "mpp_sample" +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).modulemap b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).modulemap new file mode 100644 index 0000000..91e492c --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).modulemap @@ -0,0 +1,6 @@ +framework module Pods_macOS__macOS_ { + umbrella header "Pods-macOS (macOS)-umbrella.h" + + export * + module * { export * } +} diff --git a/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).release.xcconfig b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).release.xcconfig new file mode 100644 index 0000000..38775fb --- /dev/null +++ b/macOS/Pods/Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).release.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "mpp_sample" +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig b/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig new file mode 100644 index 0000000..e70f820 --- /dev/null +++ b/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig @@ -0,0 +1,19 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/mpp_sample +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_TARGET[sdk=appletvos*] = tvos_arm64 +KOTLIN_TARGET[sdk=appletvsimulator*] = tvos_x64 +KOTLIN_TARGET[sdk=iphoneos*] = ios_arm +KOTLIN_TARGET[sdk=iphonesimulator*] = ios_x64 +KOTLIN_TARGET[sdk=macosx*] = macos_x64 +KOTLIN_TARGET[sdk=watchos*] = watchos_arm +KOTLIN_TARGET[sdk=watchsimulator*] = watchos_x64 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../mpp-sample +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig b/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig new file mode 100644 index 0000000..e70f820 --- /dev/null +++ b/macOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig @@ -0,0 +1,19 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/mpp_sample +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_TARGET[sdk=appletvos*] = tvos_arm64 +KOTLIN_TARGET[sdk=appletvsimulator*] = tvos_x64 +KOTLIN_TARGET[sdk=iphoneos*] = ios_arm +KOTLIN_TARGET[sdk=iphonesimulator*] = ios_x64 +KOTLIN_TARGET[sdk=macosx*] = macos_x64 +KOTLIN_TARGET[sdk=watchos*] = watchos_arm +KOTLIN_TARGET[sdk=watchsimulator*] = watchos_x64 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../mpp-sample +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/macOS/Shared/Assets.xcassets/AccentColor.colorset/Contents.json b/macOS/Shared/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/macOS/Shared/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macOS/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json b/macOS/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..c136eaf --- /dev/null +++ b/macOS/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,148 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macOS/Shared/Assets.xcassets/Contents.json b/macOS/Shared/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/macOS/Shared/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macOS/Shared/ContentView.swift b/macOS/Shared/ContentView.swift new file mode 100644 index 0000000..0ec9f8a --- /dev/null +++ b/macOS/Shared/ContentView.swift @@ -0,0 +1,14 @@ +import SwiftUI + +struct ContentView: View { + var body: some View { + Text("Hello, world!") + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/macOS/Shared/macOSApp.swift b/macOS/Shared/macOSApp.swift new file mode 100644 index 0000000..b9cc95e --- /dev/null +++ b/macOS/Shared/macOSApp.swift @@ -0,0 +1,47 @@ +import SwiftUI +import Cocoa +import mpp_sample + +@main +struct macOSApp: App { + @NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate + + var body: some Scene { + WindowGroup { + ContentView() + } + } +} + +class AppDelegate: NSObject, NSApplicationDelegate { + func applicationDidFinishLaunching(_ notification: Notification) { + #if DEBUG + // Debug build + + // init napier + NapierProxyKt.debugBuild() + + #else + // Others(Release build) + + // init firebase crashlytics + FirebaseApp.configure() + + // init napier + NapierProxyKt.releaseBuild(antilog: CrashlyticsAntilog( + crashlyticsAddLog: { priority, tag, message in + Crashlytics.crashlytics().log("\(String(describing: tag)): \(String(describing: message))") + }, + crashlyticsSendLog: { throwable in + Crashlytics.crashlytics().record(error: throwable) + })) + #endif + + let sample = Sample() + sample.hello() + + sample.suspendHelloKt() + + sample.handleError() + } +} diff --git a/macOS/Tests iOS/Info.plist b/macOS/Tests iOS/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/macOS/Tests iOS/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/macOS/Tests iOS/Tests_iOS.swift b/macOS/Tests iOS/Tests_iOS.swift new file mode 100644 index 0000000..f9b403c --- /dev/null +++ b/macOS/Tests iOS/Tests_iOS.swift @@ -0,0 +1,35 @@ +import XCTest + +class Tests_iOS: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/macOS/Tests macOS/Info.plist b/macOS/Tests macOS/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/macOS/Tests macOS/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/macOS/Tests macOS/Tests_macOS.swift b/macOS/Tests macOS/Tests_macOS.swift new file mode 100644 index 0000000..97c5ff2 --- /dev/null +++ b/macOS/Tests macOS/Tests_macOS.swift @@ -0,0 +1,35 @@ +import XCTest + +class Tests_macOS: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/macOS/iOS/Info.plist b/macOS/iOS/Info.plist new file mode 100644 index 0000000..efc211a --- /dev/null +++ b/macOS/iOS/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UIApplicationSupportsIndirectInputEvents + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/macOS/macOS.xcodeproj/project.pbxproj b/macOS/macOS.xcodeproj/project.pbxproj new file mode 100644 index 0000000..63eb31c --- /dev/null +++ b/macOS/macOS.xcodeproj/project.pbxproj @@ -0,0 +1,707 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 3B773B1E26C8DF80008123DC /* macOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B773AF526C8DF7E008123DC /* macOSApp.swift */; }; + 3B773B1F26C8DF80008123DC /* macOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B773AF526C8DF7E008123DC /* macOSApp.swift */; }; + 3B773B2026C8DF80008123DC /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B773AF626C8DF7E008123DC /* ContentView.swift */; }; + 3B773B2126C8DF80008123DC /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B773AF626C8DF7E008123DC /* ContentView.swift */; }; + 3B773B2226C8DF80008123DC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3B773AF726C8DF7F008123DC /* Assets.xcassets */; }; + 3B773B2326C8DF80008123DC /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3B773AF726C8DF7F008123DC /* Assets.xcassets */; }; + A8D77B5FB4CC2796C205CCE5 /* Pods_macOS__macOS_.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F33B47CA8A29ADCBD3710DDB /* Pods_macOS__macOS_.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 3B773B0D26C8DF80008123DC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3B773AF026C8DF7E008123DC /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3B773AFB26C8DF7F008123DC; + remoteInfo = "macOS (iOS)"; + }; + 3B773B1826C8DF80008123DC /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3B773AF026C8DF7E008123DC /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3B773B0326C8DF7F008123DC; + remoteInfo = "macOS (macOS)"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 05AAF53D4B4534B405B50C00 /* Pods-macOS (macOS).debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS (macOS).debug.xcconfig"; path = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).debug.xcconfig"; sourceTree = ""; }; + 3B773AF526C8DF7E008123DC /* macOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = macOSApp.swift; sourceTree = ""; }; + 3B773AF626C8DF7E008123DC /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 3B773AF726C8DF7F008123DC /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3B773AFC26C8DF7F008123DC /* macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B773B0426C8DF7F008123DC /* macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B773B0626C8DF7F008123DC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3B773B0726C8DF80008123DC /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = ""; }; + 3B773B0C26C8DF80008123DC /* Tests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B773B1726C8DF80008123DC /* Tests macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests macOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + D10652CC9753C8B4B72C2429 /* Pods-macOS (macOS).release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-macOS (macOS).release.xcconfig"; path = "Target Support Files/Pods-macOS (macOS)/Pods-macOS (macOS).release.xcconfig"; sourceTree = ""; }; + F33B47CA8A29ADCBD3710DDB /* Pods_macOS__macOS_.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_macOS__macOS_.framework; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3B773AF926C8DF7F008123DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0126C8DF7F008123DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A8D77B5FB4CC2796C205CCE5 /* Pods_macOS__macOS_.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0926C8DF80008123DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B1426C8DF80008123DC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 36D1861B74BDC2E58FF7D139 /* Pods */ = { + isa = PBXGroup; + children = ( + 05AAF53D4B4534B405B50C00 /* Pods-macOS (macOS).debug.xcconfig */, + D10652CC9753C8B4B72C2429 /* Pods-macOS (macOS).release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 3B773AEF26C8DF7E008123DC = { + isa = PBXGroup; + children = ( + 3B773AF426C8DF7E008123DC /* Shared */, + 3B773B0526C8DF7F008123DC /* macOS */, + 3B773AFD26C8DF7F008123DC /* Products */, + 36D1861B74BDC2E58FF7D139 /* Pods */, + ECD003D332C404557D385849 /* Frameworks */, + ); + sourceTree = ""; + }; + 3B773AF426C8DF7E008123DC /* Shared */ = { + isa = PBXGroup; + children = ( + 3B773AF526C8DF7E008123DC /* macOSApp.swift */, + 3B773AF626C8DF7E008123DC /* ContentView.swift */, + 3B773AF726C8DF7F008123DC /* Assets.xcassets */, + ); + path = Shared; + sourceTree = ""; + }; + 3B773AFD26C8DF7F008123DC /* Products */ = { + isa = PBXGroup; + children = ( + 3B773AFC26C8DF7F008123DC /* macOS.app */, + 3B773B0426C8DF7F008123DC /* macOS.app */, + 3B773B0C26C8DF80008123DC /* Tests iOS.xctest */, + 3B773B1726C8DF80008123DC /* Tests macOS.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 3B773B0526C8DF7F008123DC /* macOS */ = { + isa = PBXGroup; + children = ( + 3B773B0626C8DF7F008123DC /* Info.plist */, + 3B773B0726C8DF80008123DC /* macOS.entitlements */, + ); + path = macOS; + sourceTree = ""; + }; + ECD003D332C404557D385849 /* Frameworks */ = { + isa = PBXGroup; + children = ( + F33B47CA8A29ADCBD3710DDB /* Pods_macOS__macOS_.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3B773AFB26C8DF7F008123DC /* macOS (iOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B773B2626C8DF80008123DC /* Build configuration list for PBXNativeTarget "macOS (iOS)" */; + buildPhases = ( + 3B773AF826C8DF7F008123DC /* Sources */, + 3B773AF926C8DF7F008123DC /* Frameworks */, + 3B773AFA26C8DF7F008123DC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "macOS (iOS)"; + productName = "macOS (iOS)"; + productReference = 3B773AFC26C8DF7F008123DC /* macOS.app */; + productType = "com.apple.product-type.application"; + }; + 3B773B0326C8DF7F008123DC /* macOS (macOS) */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B773B2926C8DF80008123DC /* Build configuration list for PBXNativeTarget "macOS (macOS)" */; + buildPhases = ( + 20BF56BC11CE65063CDEB732 /* [CP] Check Pods Manifest.lock */, + 3B773B0026C8DF7F008123DC /* Sources */, + 3B773B0126C8DF7F008123DC /* Frameworks */, + 3B773B0226C8DF7F008123DC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "macOS (macOS)"; + productName = "macOS (macOS)"; + productReference = 3B773B0426C8DF7F008123DC /* macOS.app */; + productType = "com.apple.product-type.application"; + }; + 3B773B0B26C8DF80008123DC /* Tests iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B773B2C26C8DF80008123DC /* Build configuration list for PBXNativeTarget "Tests iOS" */; + buildPhases = ( + 3B773B0826C8DF80008123DC /* Sources */, + 3B773B0926C8DF80008123DC /* Frameworks */, + 3B773B0A26C8DF80008123DC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3B773B0E26C8DF80008123DC /* PBXTargetDependency */, + ); + name = "Tests iOS"; + productName = "Tests iOS"; + productReference = 3B773B0C26C8DF80008123DC /* Tests iOS.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + 3B773B1626C8DF80008123DC /* Tests macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3B773B2F26C8DF80008123DC /* Build configuration list for PBXNativeTarget "Tests macOS" */; + buildPhases = ( + 3B773B1326C8DF80008123DC /* Sources */, + 3B773B1426C8DF80008123DC /* Frameworks */, + 3B773B1526C8DF80008123DC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3B773B1926C8DF80008123DC /* PBXTargetDependency */, + ); + name = "Tests macOS"; + productName = "Tests macOS"; + productReference = 3B773B1726C8DF80008123DC /* Tests macOS.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 3B773AF026C8DF7E008123DC /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1220; + LastUpgradeCheck = 1220; + TargetAttributes = { + 3B773AFB26C8DF7F008123DC = { + CreatedOnToolsVersion = 12.2; + }; + 3B773B0326C8DF7F008123DC = { + CreatedOnToolsVersion = 12.2; + }; + 3B773B0B26C8DF80008123DC = { + CreatedOnToolsVersion = 12.2; + TestTargetID = 3B773AFB26C8DF7F008123DC; + }; + 3B773B1626C8DF80008123DC = { + CreatedOnToolsVersion = 12.2; + TestTargetID = 3B773B0326C8DF7F008123DC; + }; + }; + }; + buildConfigurationList = 3B773AF326C8DF7E008123DC /* Build configuration list for PBXProject "macOS" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 3B773AEF26C8DF7E008123DC; + productRefGroup = 3B773AFD26C8DF7F008123DC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3B773AFB26C8DF7F008123DC /* macOS (iOS) */, + 3B773B0326C8DF7F008123DC /* macOS (macOS) */, + 3B773B0B26C8DF80008123DC /* Tests iOS */, + 3B773B1626C8DF80008123DC /* Tests macOS */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3B773AFA26C8DF7F008123DC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B773B2226C8DF80008123DC /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0226C8DF7F008123DC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B773B2326C8DF80008123DC /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0A26C8DF80008123DC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B1526C8DF80008123DC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 20BF56BC11CE65063CDEB732 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-macOS (macOS)-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3B773AF826C8DF7F008123DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B773B2026C8DF80008123DC /* ContentView.swift in Sources */, + 3B773B1E26C8DF80008123DC /* macOSApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0026C8DF7F008123DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3B773B2126C8DF80008123DC /* ContentView.swift in Sources */, + 3B773B1F26C8DF80008123DC /* macOSApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B0826C8DF80008123DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3B773B1326C8DF80008123DC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3B773B0E26C8DF80008123DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3B773AFB26C8DF7F008123DC /* macOS (iOS) */; + targetProxy = 3B773B0D26C8DF80008123DC /* PBXContainerItemProxy */; + }; + 3B773B1926C8DF80008123DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3B773B0326C8DF7F008123DC /* macOS (macOS) */; + targetProxy = 3B773B1826C8DF80008123DC /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3B773B2426C8DF80008123DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 3B773B2526C8DF80008123DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 3B773B2726C8DF80008123DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + ENABLE_BITCODE = NO; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = iOS/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.macOS; + PRODUCT_NAME = macOS; + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 3B773B2826C8DF80008123DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + ENABLE_BITCODE = NO; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = iOS/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.macOS; + PRODUCT_NAME = macOS; + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3B773B2A26C8DF80008123DC /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 05AAF53D4B4534B405B50C00 /* Pods-macOS (macOS).debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.macOS; + PRODUCT_NAME = macOS; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 3B773B2B26C8DF80008123DC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D10652CC9753C8B4B72C2429 /* Pods-macOS (macOS).release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = macOS/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.macOS; + PRODUCT_NAME = macOS; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 3B773B2D26C8DF80008123DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "Tests iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 14.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "io.github.aakira.napier.Tests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = "macOS (iOS)"; + }; + name = Debug; + }; + 3B773B2E26C8DF80008123DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = "Tests iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 14.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "io.github.aakira.napier.Tests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = "macOS (iOS)"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3B773B3026C8DF80008123DC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "Tests macOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_BUNDLE_IDENTIFIER = "io.github.aakira.napier.Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = "macOS (macOS)"; + }; + name = Debug; + }; + 3B773B3126C8DF80008123DC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "Tests macOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.15; + PRODUCT_BUNDLE_IDENTIFIER = "io.github.aakira.napier.Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SWIFT_VERSION = 5.0; + TEST_TARGET_NAME = "macOS (macOS)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3B773AF326C8DF7E008123DC /* Build configuration list for PBXProject "macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B773B2426C8DF80008123DC /* Debug */, + 3B773B2526C8DF80008123DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3B773B2626C8DF80008123DC /* Build configuration list for PBXNativeTarget "macOS (iOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B773B2726C8DF80008123DC /* Debug */, + 3B773B2826C8DF80008123DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3B773B2926C8DF80008123DC /* Build configuration list for PBXNativeTarget "macOS (macOS)" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B773B2A26C8DF80008123DC /* Debug */, + 3B773B2B26C8DF80008123DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3B773B2C26C8DF80008123DC /* Build configuration list for PBXNativeTarget "Tests iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B773B2D26C8DF80008123DC /* Debug */, + 3B773B2E26C8DF80008123DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3B773B2F26C8DF80008123DC /* Build configuration list for PBXNativeTarget "Tests macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3B773B3026C8DF80008123DC /* Debug */, + 3B773B3126C8DF80008123DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 3B773AF026C8DF7E008123DC /* Project object */; +} diff --git a/macOS/macOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/macOS/macOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/macOS/macOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macOS/macOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macOS/macOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macOS/macOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate b/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..b7c9c4d Binary files /dev/null and b/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/akira.aratani.xcuserdatad/UserInterfaceState.xcuserstate b/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/akira.aratani.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..798e3bc Binary files /dev/null and b/macOS/macOS.xcodeproj/project.xcworkspace/xcuserdata/akira.aratani.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/macOS/macOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist b/macOS/macOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..06f9974 --- /dev/null +++ b/macOS/macOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + macOS (iOS).xcscheme_^#shared#^_ + + orderHint + 2 + + macOS (macOS).xcscheme_^#shared#^_ + + orderHint + 3 + + + + diff --git a/macOS/macOS.xcodeproj/xcuserdata/akira.aratani.xcuserdatad/xcschemes/xcschememanagement.plist b/macOS/macOS.xcodeproj/xcuserdata/akira.aratani.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..9b18e6f --- /dev/null +++ b/macOS/macOS.xcodeproj/xcuserdata/akira.aratani.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,19 @@ + + + + + SchemeUserState + + macOS (iOS).xcscheme_^#shared#^_ + + orderHint + 0 + + macOS (macOS).xcscheme_^#shared#^_ + + orderHint + 1 + + + + diff --git a/macOS/macOS.xcworkspace/contents.xcworkspacedata b/macOS/macOS.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..7bfb4f8 --- /dev/null +++ b/macOS/macOS.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/macOS/macOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macOS/macOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macOS/macOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macOS/macOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate b/macOS/macOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..9f80eb8 Binary files /dev/null and b/macOS/macOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/macOS/macOS/Info.plist b/macOS/macOS/Info.plist new file mode 100644 index 0000000..bacbc56 --- /dev/null +++ b/macOS/macOS/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + + diff --git a/macOS/macOS/macOS.entitlements b/macOS/macOS/macOS.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/macOS/macOS/macOS.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/mpp-sample/build.gradle.kts b/mpp-sample/build.gradle.kts index 33a0c76..6672a1e 100644 --- a/mpp-sample/build.gradle.kts +++ b/mpp-sample/build.gradle.kts @@ -1,26 +1,33 @@ import dependencies.Dep import dependencies.Versions -import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { kotlin("multiplatform") id("com.android.library") + kotlin("native.cocoapods") } +version = "1.0.0" + +val ideaActive = System.getProperty("idea.active") == "true" + kotlin { android() - ios { - binaries { - framework { - baseName = "Common" - } - } - } js { browser() } jvm() + // darwin + macosX64() + if (ideaActive.not()) { + ios() + watchos() + } else { + iosX64() + watchosX64() + } + sourceSets { val commonMain by getting { dependencies { @@ -35,18 +42,44 @@ kotlin { implementation(Dep.Kotlin.jvm) } } - val iosMain by getting val jsMain by getting { dependencies { implementation(Dep.Kotlin.js) } } - val jvmMain by getting { dependencies { implementation(Dep.Kotlin.jvm) } } + + // apple + val darwinMain by creating { + dependsOn(commonMain) + } + val macosX64Main by getting { + dependsOn(darwinMain) + } + if (ideaActive.not()) { + val iosMain by getting { + dependsOn(darwinMain) + } + val watchosMain by getting { + dependsOn(darwinMain) + } + } else { + val iosX64Main by getting { + dependsOn(darwinMain) + } + val watchosX64Main by getting { + dependsOn(darwinMain) + } + } + } + + cocoapods { + summary = "CocoaPods library" + homepage = "https://github.com/AAkira/Napier" } } @@ -67,19 +100,3 @@ android { } } } - -val packForXcode by tasks.creating(Sync::class) { - group = "build" - val mode = System.getenv("CONFIGURATION") ?: "DEBUG" - val sdkName = System.getenv("SDK_NAME") ?: "iphonesimulator" - val targetName = "ios" + if (sdkName.startsWith("iphoneos")) "Arm64" else "X64" - val framework = - kotlin.targets.getByName(targetName).binaries.getFramework(mode) - inputs.property("mode", mode) - dependsOn(framework.linkTask) - val targetDir = File(buildDir, "xcode-frameworks") - from({ framework.outputDirectory }) - into(targetDir) -} - -tasks.getByName("build").dependsOn(packForXcode) diff --git a/mpp-sample/mpp_sample.podspec b/mpp-sample/mpp_sample.podspec new file mode 100644 index 0000000..c0114f1 --- /dev/null +++ b/mpp-sample/mpp_sample.podspec @@ -0,0 +1,46 @@ +Pod::Spec.new do |spec| + spec.name = 'mpp_sample' + spec.version = '1.0.0' + spec.homepage = 'https://github.com/AAkira/Napier' + spec.source = { :git => "Not Published", :tag => "Cocoapods/#{spec.name}/#{spec.version}" } + spec.authors = '' + spec.license = '' + spec.summary = 'CocoaPods library' + + spec.static_framework = true + spec.vendored_frameworks = "build/cocoapods/framework/mpp_sample.framework" + spec.libraries = "c++" + spec.module_name = "#{spec.name}_umbrella" + + + + + + spec.pod_target_xcconfig = { + 'KOTLIN_TARGET[sdk=iphonesimulator*]' => 'ios_x64', + 'KOTLIN_TARGET[sdk=iphoneos*]' => 'ios_arm', + 'KOTLIN_TARGET[sdk=watchsimulator*]' => 'watchos_x64', + 'KOTLIN_TARGET[sdk=watchos*]' => 'watchos_arm', + 'KOTLIN_TARGET[sdk=appletvsimulator*]' => 'tvos_x64', + 'KOTLIN_TARGET[sdk=appletvos*]' => 'tvos_arm64', + 'KOTLIN_TARGET[sdk=macosx*]' => 'macos_x64' + } + + spec.script_phases = [ + { + :name => 'Build mpp_sample', + :execution_position => :before_compile, + :shell_path => '/bin/sh', + :script => <<-SCRIPT + set -ev + REPO_ROOT="$PODS_TARGET_SRCROOT" + "$REPO_ROOT/../gradlew" -p "$REPO_ROOT" :mpp-sample:syncFramework \ + -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET \ + -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" + SCRIPT + } + ] +end \ No newline at end of file diff --git a/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt new file mode 100644 index 0000000..ef16626 --- /dev/null +++ b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt @@ -0,0 +1,21 @@ +package io.github.aakira.napier.mppsample + +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Job +import kotlin.coroutines.CoroutineContext + +internal val mainScope = SharedScope(Dispatchers.Main) + +internal val backgroundScope = SharedScope(Dispatchers.Default) + +internal class SharedScope(private val context: CoroutineContext) : CoroutineScope { + private val job = Job() + private val exceptionHandler = CoroutineExceptionHandler { _, throwable -> + println("[Coroutine Exception] $throwable") + } + + override val coroutineContext: CoroutineContext + get() = context + job + exceptionHandler +} diff --git a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt similarity index 82% rename from mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt rename to mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt index 4575d69..b4dc377 100644 --- a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt +++ b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CoroutineProxy.kt @@ -3,7 +3,7 @@ package io.github.aakira.napier.mppsample import kotlinx.coroutines.launch fun Sample.suspendHelloKt() { - NativeScope().launch { + backgroundScope.launch { suspendHello() } } diff --git a/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt new file mode 100644 index 0000000..c271fe6 --- /dev/null +++ b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt @@ -0,0 +1,27 @@ +package com.github.aakira.napier.mppsample + +import io.github.aakira.napier.Antilog +import io.github.aakira.napier.LogLevel + +class CrashlyticsAntilog( + private val crashlyticsAddLog: (priority: Int, tag: String?, message: String?) -> Unit, + private val crashlyticsSendLog: (throwable: Throwable) -> Unit +) : Antilog() { + + override fun performLog(priority: LogLevel, tag: String?, throwable: Throwable?, message: String?) { + // send only error log + if (priority < LogLevel.ERROR) return + + crashlyticsAddLog.invoke(priority.ordinal, tag, message) + + throwable?.let { + when { + // e.g. http exception, add a customized your exception message +// it is KtorException -> { +// crashlyticsAddLog.invoke(priority.ordinal, "HTTP Exception", it.response?.errorBody.toString()) +// } + } + crashlyticsSendLog.invoke(it) + } + } +} diff --git a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/NapierProxy.kt b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/NapierProxy.kt similarity index 100% rename from mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/NapierProxy.kt rename to mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/NapierProxy.kt diff --git a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/RunBlocking.kt b/mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/RunBlocking.kt similarity index 100% rename from mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/RunBlocking.kt rename to mpp-sample/src/darwinMain/kotlin/io/github/aakira/napier/mppsample/RunBlocking.kt diff --git a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt b/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt deleted file mode 100644 index 60dab59..0000000 --- a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/Coroutine.kt +++ /dev/null @@ -1,22 +0,0 @@ -package io.github.aakira.napier.mppsample - -import kotlinx.coroutines.* -import platform.darwin.dispatch_async -import platform.darwin.dispatch_get_main_queue -import kotlin.coroutines.CoroutineContext - -internal class NativeScope : CoroutineScope { - private val context = MainDispatcher() - private val job = Job() - private val exceptionHandler = CoroutineExceptionHandler { _, _ -> } - - override val coroutineContext: CoroutineContext - get() = context + job + exceptionHandler -} - -private class MainDispatcher : CoroutineDispatcher() { - - override fun dispatch(context: CoroutineContext, block: Runnable) { - dispatch_async(dispatch_get_main_queue()) { block.run() } - } -} diff --git a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt b/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt deleted file mode 100644 index 84330f6..0000000 --- a/mpp-sample/src/iosMain/kotlin/io/github/aakira/napier/mppsample/CrashlyticsAntilog.kt +++ /dev/null @@ -1,34 +0,0 @@ -package io.github.aakira.napier.mppsample - -import io.github.aakira.napier.Antilog -import io.github.aakira.napier.Napier - -class CrashlyticsAntilog( - private val crashlyticsAddLog: (priority: Int, tag: String?, message: String?) -> Unit, - private val crashlyticsSendLog: (throwable: Throwable) -> Unit -) : Antilog() { - - override fun performLog( - priority: Napier.Level, - tag: String?, - throwable: Throwable?, - message: String? - ) { - // send only error log - if (priority < Napier.Level.ERROR) return - - throwable?.let { - when (it) { - // e.g. http exception, add a customized your exception message -// KtorException -> { -// crashlyticsAddLog.invoke( -// priority.ordinal, -// "HTTP Exception", -// it.response?.errorBody.toString(), -// ) -// } - else -> crashlyticsSendLog.invoke(it) - } - } - } -} diff --git a/napier/build.gradle.kts b/napier/build.gradle.kts index 7bbabf7..8dd3221 100644 --- a/napier/build.gradle.kts +++ b/napier/build.gradle.kts @@ -8,21 +8,56 @@ plugins { apply(from = rootProject.file("./gradle/publish.gradle.kts")) +val ideaActive = System.getProperty("idea.active") == "true" + kotlin { android { publishAllLibraryVariants() } - ios { - binaries { - framework() - } - } - js { + js(BOTH) { browser() nodejs() } jvm() + // darwin + macosX64() + if (ideaActive.not()) { + // darwin + ios { + binaries { + framework() + } + } + watchos { + binaries { + framework() + } + } + tvos { + binaries { + framework() + } + } + } else { + // darwin + iosX64 { + binaries { + framework() + } + } + watchosX64 { + binaries { + framework() + } + } + tvosX64 { + binaries { + framework() + } + } + } + sourceSets { val commonMain by getting { dependencies { @@ -45,14 +80,7 @@ kotlin { implementation(Dep.Test.jvm) } } - val iosMain by getting { - dependencies { - } - } - val iosTest by getting { - dependencies { - } - } + val jsMain by getting { dependencies { implementation(Dep.Kotlin.js) @@ -74,6 +102,60 @@ kotlin { implementation(Dep.Test.jvm) } } + + val darwinMain by creating { + dependsOn(commonMain) + } + val darwinTest by creating { + dependsOn(commonTest) + } + val macosX64Main by getting { + dependsOn(darwinMain) + } + val macosX64Test by getting { + dependsOn(darwinMain) + } + if (ideaActive.not()) { + // apple + val iosMain by getting { + dependsOn(darwinMain) + } + val iosTest by getting { + dependsOn(darwinTest) + } + val watchosMain by getting { + dependsOn(darwinMain) + } + val watchosTest by getting { + dependsOn(darwinTest) + } + val tvosMain by getting { + dependsOn(darwinMain) + } + val tvosTest by getting { + dependsOn(darwinTest) + } + } else { + // apple + val iosX64Main by getting { + dependsOn(darwinMain) + } + val iosX64Test by getting { + dependsOn(darwinTest) + } + val watchosX64Main by getting { + dependsOn(darwinMain) + } + val watchosX64Test by getting { + dependsOn(darwinTest) + } + val tvosX64Main by getting { + dependsOn(darwinMain) + } + val tvosX64Test by getting { + dependsOn(darwinTest) + } + } } } diff --git a/napier/src/androidMain/kotlin/io/github/aakira/napier/DebugAntilog.kt b/napier/src/androidMain/kotlin/io/github/aakira/napier/DebugAntilog.kt index 7b86057..d09668b 100644 --- a/napier/src/androidMain/kotlin/io/github/aakira/napier/DebugAntilog.kt +++ b/napier/src/androidMain/kotlin/io/github/aakira/napier/DebugAntilog.kt @@ -6,7 +6,7 @@ import java.io.PrintWriter import java.io.StringWriter import java.util.regex.Pattern -class DebugAntilog(private val defaultTag: String = "app") : Antilog() { +actual class DebugAntilog actual constructor(private val defaultTag: String) : Antilog() { companion object { private const val MAX_LOG_LENGTH = 4000 @@ -16,7 +16,12 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { private val anonymousClass = Pattern.compile("(\\$\\d+)+$") - override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + override fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { val debugTag = tag ?: performTag(defaultTag) @@ -31,7 +36,7 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { val length = fullMessage.length if (length <= MAX_LOG_LENGTH) { // Fast path for small messages which can fit in a single call. - if (priority == Napier.Level.ASSERT) { + if (priority == LogLevel.ASSERT) { Log.wtf(debugTag, fullMessage) } else { Log.println(priority.toValue(), debugTag, fullMessage) @@ -95,12 +100,12 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { return sw.toString() } - private fun Napier.Level.toValue() = when (this) { - Napier.Level.VERBOSE -> Log.VERBOSE - Napier.Level.DEBUG -> Log.DEBUG - Napier.Level.INFO -> Log.INFO - Napier.Level.WARNING -> Log.WARN - Napier.Level.ERROR -> Log.ERROR - Napier.Level.ASSERT -> Log.ASSERT + private fun LogLevel.toValue() = when (this) { + LogLevel.VERBOSE -> Log.VERBOSE + LogLevel.DEBUG -> Log.DEBUG + LogLevel.INFO -> Log.INFO + LogLevel.WARNING -> Log.WARN + LogLevel.ERROR -> Log.ERROR + LogLevel.ASSERT -> Log.ASSERT } } diff --git a/napier/src/androidMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt b/napier/src/androidMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt new file mode 100644 index 0000000..30f7636 --- /dev/null +++ b/napier/src/androidMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt @@ -0,0 +1,3 @@ +package io.github.aakira.napier.atomic + +internal actual class AtomicRef actual constructor(actual var value: T) diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/Antilog.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/Antilog.kt index 6cc9b1f..bfd3d60 100644 --- a/napier/src/commonMain/kotlin/io/github/aakira/napier/Antilog.kt +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/Antilog.kt @@ -2,17 +2,27 @@ package io.github.aakira.napier abstract class Antilog { - open fun isEnable(priority: Napier.Level, tag: String?) = true + open fun isEnable(priority: LogLevel, tag: String?) = true - fun log(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + fun log(priority: LogLevel, tag: String?, throwable: Throwable?, message: String?) { if (isEnable(priority, tag)) { performLog(priority, tag, throwable, message) } } - internal fun rawLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + internal fun rawLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { performLog(priority, tag, throwable, message) } - protected abstract fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) + protected abstract fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) } diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/DebugAntilog.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/DebugAntilog.kt new file mode 100644 index 0000000..7318127 --- /dev/null +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/DebugAntilog.kt @@ -0,0 +1,3 @@ +package io.github.aakira.napier + +expect class DebugAntilog(defaultTag: String = "app") : Antilog \ No newline at end of file diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/LogLevel.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/LogLevel.kt new file mode 100644 index 0000000..756c2af --- /dev/null +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/LogLevel.kt @@ -0,0 +1,11 @@ +package io.github.aakira.napier + +enum class LogLevel { + VERBOSE, + DEBUG, + INFO, + WARNING, + ERROR, + ASSERT, +} + diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/Napier.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/Napier.kt index d076b70..c914e79 100644 --- a/napier/src/commonMain/kotlin/io/github/aakira/napier/Napier.kt +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/Napier.kt @@ -1,8 +1,7 @@ package io.github.aakira.napier -import kotlin.native.concurrent.ThreadLocal +import io.github.aakira.napier.atomic.AtomicMutableList -@ThreadLocal object Napier { enum class Level { @@ -14,74 +13,84 @@ object Napier { ASSERT, } - private val baseArray = mutableListOf() + private val baseArray = AtomicMutableList() fun base(antilog: Antilog) { baseArray.add(antilog) } - fun isEnable(priority: Level, tag: String?) = baseArray.any { it.isEnable(priority, tag) } + fun isEnable(priority: LogLevel, tag: String?) = baseArray.any { it.isEnable(priority, tag) } @PublishedApi - internal fun rawLog(priority: Level, tag: String?, throwable: Throwable?, message: String?) { + internal fun rawLog(priority: LogLevel, tag: String?, throwable: Throwable?, message: String?) { baseArray.forEach { it.rawLog(priority, tag, throwable, message) } } fun v(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.VERBOSE, tag, throwable, message) + log(LogLevel.VERBOSE, tag, throwable, message) } fun v(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.VERBOSE, tag, throwable, message) + log(LogLevel.VERBOSE, tag, throwable, message) } fun i(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.INFO, tag, throwable, message) + log(LogLevel.INFO, tag, throwable, message) } fun i(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.INFO, tag, throwable, message) + log(LogLevel.INFO, tag, throwable, message) } fun d(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.DEBUG, tag, throwable, message) + log(LogLevel.DEBUG, tag, throwable, message) } fun d(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.DEBUG, tag, throwable, message) + log(LogLevel.DEBUG, tag, throwable, message) } fun w(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.WARNING, tag, throwable, message) + log(LogLevel.WARNING, tag, throwable, message) } fun w(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.WARNING, tag, throwable, message) + log(LogLevel.WARNING, tag, throwable, message) } fun e(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.ERROR, tag, throwable, message) + log(LogLevel.ERROR, tag, throwable, message) } fun e(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.ERROR, tag, throwable, message) + log(LogLevel.ERROR, tag, throwable, message) } fun wtf(message: String, throwable: Throwable? = null, tag: String? = null) { - log(Level.ASSERT, tag, throwable, message) + log(LogLevel.ASSERT, tag, throwable, message) } fun wtf(message: () -> String, throwable: Throwable? = null, tag: String? = null) { - log(Level.ASSERT, tag, throwable, message) + log(LogLevel.ASSERT, tag, throwable, message) } - fun log(priority: Level, tag: String? = null, throwable: Throwable? = null, message: String) { + fun log( + priority: LogLevel, + tag: String? = null, + throwable: Throwable? = null, + message: String + ) { if (isEnable(priority, tag)) { rawLog(priority, tag, throwable, message) } } - fun log(priority: Level, tag: String? = null, throwable: Throwable? = null, message: () -> String) { + fun log( + priority: LogLevel, + tag: String? = null, + throwable: Throwable? = null, + message: () -> String, + ) { if (isEnable(priority, tag)) { rawLog(priority, tag, throwable, message()) } diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicMutableList.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicMutableList.kt new file mode 100644 index 0000000..d644af7 --- /dev/null +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicMutableList.kt @@ -0,0 +1,54 @@ +package io.github.aakira.napier.atomic + +internal class AtomicMutableList(value: List) : AbstractList() { + constructor() : this(listOf()) + + private val atomicReference = AtomicRef(value) + + fun add(element: T, index: Int = count()) = + modify(+1) { + add(index, element) + } + + fun remove(t: T) = + modify(-1) { + remove(t) + } + + fun clear() = + modify(-size) { + clear() + } + + fun removeAt(index: Int): T = + modify(-1) { + removeAt(index) + } + + fun set(index: Int, element: T): T = + modify(0) { + set(index, element) + } + + fun dropAll(): List { + val result = atomicReference.value + atomicReference.value = listOf() + return result + } + + override val size: Int get() = atomicReference.value.size + override fun isEmpty(): Boolean = atomicReference.value.isEmpty() + override fun contains(element: T): Boolean = atomicReference.value.contains(element) + override fun get(index: Int): T = atomicReference.value[index] + override fun indexOf(element: T): Int = atomicReference.value.indexOf(element) + override fun lastIndexOf(element: T): Int = atomicReference.value.lastIndexOf(element) + override fun iterator(): Iterator = atomicReference.value.iterator() + + private fun modify(capacityDiff: Int, block: ArrayList.() -> R): R { + val newValue = ArrayList(size + capacityDiff) + newValue.addAll(this) + val result = block(newValue) + atomicReference.value = newValue + return result + } +} diff --git a/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt b/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt new file mode 100644 index 0000000..d14e107 --- /dev/null +++ b/napier/src/commonMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt @@ -0,0 +1,5 @@ +package io.github.aakira.napier.atomic + +internal expect class AtomicRef(value: T) { + var value: T +} diff --git a/napier/src/commonTest/kotlin/io/github/aakira/napier/NapierTest.kt b/napier/src/commonTest/kotlin/io/github/aakira/napier/NapierTest.kt index 69b66ed..39ef63f 100644 --- a/napier/src/commonTest/kotlin/io/github/aakira/napier/NapierTest.kt +++ b/napier/src/commonTest/kotlin/io/github/aakira/napier/NapierTest.kt @@ -1,5 +1,6 @@ package io.github.aakira.napier +import io.github.aakira.napier.atomic.AtomicMutableList import kotlin.test.Test import kotlin.test.assertEquals @@ -12,7 +13,7 @@ class NapierTest { ) private data class Expected( - val priority: Napier.Level, + val priority: LogLevel, val tag: String?, val throwable: Throwable?, val message: String? @@ -22,9 +23,14 @@ class NapierTest { @Test fun `Check output log`() { - val output = ArrayList() + val output = AtomicMutableList() Napier.base(object : Antilog() { - override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + override fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { output.add(Expected(priority, tag, throwable, message)) } }) @@ -34,7 +40,7 @@ class NapierTest { "verbose", { Napier.v("hello") }, Expected( - Napier.Level.VERBOSE, + LogLevel.VERBOSE, null, null, "hello" @@ -44,7 +50,7 @@ class NapierTest { "debug", { Napier.d("hello") }, Expected( - Napier.Level.DEBUG, + LogLevel.DEBUG, null, null, "hello" @@ -54,7 +60,7 @@ class NapierTest { "info", { Napier.i("hello") }, Expected( - Napier.Level.INFO, + LogLevel.INFO, null, null, "hello" @@ -64,7 +70,7 @@ class NapierTest { "warning", { Napier.w("hello") }, Expected( - Napier.Level.WARNING, + LogLevel.WARNING, null, null, "hello" @@ -74,7 +80,7 @@ class NapierTest { "error", { Napier.e("hello") }, Expected( - Napier.Level.ERROR, + LogLevel.ERROR, null, null, "hello" @@ -84,7 +90,7 @@ class NapierTest { "assert", { Napier.wtf("hello") }, Expected( - Napier.Level.ASSERT, + LogLevel.ASSERT, null, null, "hello" @@ -95,7 +101,7 @@ class NapierTest { "tag verbose", { Napier.v("hello", null, "tag") }, Expected( - Napier.Level.VERBOSE, + LogLevel.VERBOSE, "tag", null, "hello" @@ -105,7 +111,7 @@ class NapierTest { "tag debug", { Napier.d("hello", null, "tag") }, Expected( - Napier.Level.DEBUG, + LogLevel.DEBUG, "tag", null, "hello" @@ -115,7 +121,7 @@ class NapierTest { "tag info", { Napier.i("hello", null, "tag") }, Expected( - Napier.Level.INFO, + LogLevel.INFO, "tag", null, "hello" @@ -125,7 +131,7 @@ class NapierTest { "tag warning", { Napier.w("hello", null, "tag") }, Expected( - Napier.Level.WARNING, + LogLevel.WARNING, "tag", null, "hello" @@ -135,7 +141,7 @@ class NapierTest { "tag error", { Napier.e("hello", null, "tag") }, Expected( - Napier.Level.ERROR, + LogLevel.ERROR, "tag", null, "hello" @@ -145,7 +151,7 @@ class NapierTest { "tag assert", { Napier.wtf("hello", null, "tag") }, Expected( - Napier.Level.ASSERT, + LogLevel.ASSERT, "tag", null, "hello" @@ -156,7 +162,7 @@ class NapierTest { "throwable verbose", { Napier.v("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.VERBOSE, + LogLevel.VERBOSE, "tag", CustomThrowable("error"), "hello" @@ -166,7 +172,7 @@ class NapierTest { "throwable debug", { Napier.d("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.DEBUG, + LogLevel.DEBUG, "tag", CustomThrowable("error"), "hello" @@ -176,7 +182,7 @@ class NapierTest { "throwable info", { Napier.i("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.INFO, + LogLevel.INFO, "tag", CustomThrowable("error"), "hello" @@ -186,7 +192,7 @@ class NapierTest { "throwable warning", { Napier.w("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.WARNING, + LogLevel.WARNING, "tag", CustomThrowable("error"), "hello" @@ -196,7 +202,7 @@ class NapierTest { "throwable error", { Napier.e("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.ERROR, + LogLevel.ERROR, "tag", CustomThrowable("error"), "hello" @@ -206,7 +212,7 @@ class NapierTest { "throwable assert", { Napier.wtf("hello", CustomThrowable("error"), "tag") }, Expected( - Napier.Level.ASSERT, + LogLevel.ASSERT, "tag", CustomThrowable("error"), "hello" diff --git a/napier/src/iosMain/kotlin/io/github/aakira/napier/DebugAntilog.kt b/napier/src/darwinMain/kotlin/io/github/aakira/napier/DebugAntilog.kt similarity index 51% rename from napier/src/iosMain/kotlin/io/github/aakira/napier/DebugAntilog.kt rename to napier/src/darwinMain/kotlin/io/github/aakira/napier/DebugAntilog.kt index 3da677c..da425fc 100644 --- a/napier/src/iosMain/kotlin/io/github/aakira/napier/DebugAntilog.kt +++ b/napier/src/darwinMain/kotlin/io/github/aakira/napier/DebugAntilog.kt @@ -6,7 +6,11 @@ import platform.Foundation.NSThread private const val CALL_STACK_INDEX = 8 -class DebugAntilog(private val defaultTag: String = "app") : Antilog() { +actual class DebugAntilog( + private val defaultTag: String = "app", + private val coroutinesSuffix: Boolean = true, +) : Antilog() { + actual constructor(defaultTag: String) : this(defaultTag, coroutinesSuffix = true) var crashAssert = false @@ -14,24 +18,29 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { dateFormat = "MM-dd HH:mm:ss.SSS" } - private val tagMap: HashMap = hashMapOf( - Napier.Level.VERBOSE to "💜 VERBOSE", - Napier.Level.DEBUG to "💚 DEBUG", - Napier.Level.INFO to "💙 INFO", - Napier.Level.WARNING to "💛 WARN", - Napier.Level.ERROR to "❤️ ERROR", - Napier.Level.ASSERT to "💞 ASSERT" + private val tagMap: HashMap = hashMapOf( + LogLevel.VERBOSE to "💜 VERBOSE", + LogLevel.DEBUG to "💚 DEBUG", + LogLevel.INFO to "💙 INFO", + LogLevel.WARNING to "💛 WARN", + LogLevel.ERROR to "❤️ ERROR", + LogLevel.ASSERT to "💞 ASSERT" ) - override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { - if (priority == Napier.Level.ASSERT) { + override fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { + if (priority == LogLevel.ASSERT) { assert(crashAssert) { buildLog(priority, tag, message) } } else { println(buildLog(priority, tag, message)) } } - fun setTag(level: Napier.Level, tag: String) { + fun setTag(level: LogLevel, tag: String) { tagMap[level] = tag } @@ -41,7 +50,7 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { private fun getCurrentTime() = dateFormatter.stringFromDate(NSDate()) - private fun buildLog(priority: Napier.Level, tag: String?, message: String?): String { + private fun buildLog(priority: LogLevel, tag: String?, message: String?): String { return "${getCurrentTime()} ${tagMap[priority]} ${tag ?: performTag(defaultTag)} - $message" } @@ -60,9 +69,16 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { var tag = string tag = tag.substringBeforeLast('$') tag = tag.substringBeforeLast('(') - tag = tag.substring(tag.lastIndexOf(".", tag.lastIndexOf(".") - 1) + 1) - tag = tag.replace("$", "") - tag = tag.replace("COROUTINE", "") + if (tag.contains("$")) { + // coroutines + tag = tag.substring(tag.lastIndexOf(".", tag.lastIndexOf(".") - 1) + 1) + tag = tag.replace("$", "") + tag = tag.replace("COROUTINE", if (coroutinesSuffix) "[async]" else "") + } else { + // others + tag = tag.substringAfterLast(".") + tag = tag.replace("#", ".") + } return tag } } diff --git a/napier/src/darwinMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt b/napier/src/darwinMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt new file mode 100644 index 0000000..54ff37d --- /dev/null +++ b/napier/src/darwinMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt @@ -0,0 +1,13 @@ +package io.github.aakira.napier.atomic + +import kotlin.native.concurrent.AtomicReference +import kotlin.native.concurrent.freeze + +internal actual class AtomicRef actual constructor(value: T) { + private val atomicRef = AtomicReference(value.freeze()) + actual var value: T + get() = atomicRef.value + set(value) { + atomicRef.value = value.freeze() + } +} diff --git a/napier/src/darwinTest/kotlin/io/github/aakira/napier/NapierIosTest.kt b/napier/src/darwinTest/kotlin/io/github/aakira/napier/NapierIosTest.kt new file mode 100644 index 0000000..0b2b52c --- /dev/null +++ b/napier/src/darwinTest/kotlin/io/github/aakira/napier/NapierIosTest.kt @@ -0,0 +1,49 @@ +package io.github.aakira.napier + +import kotlin.test.Test +import kotlin.test.assertEquals + +class NapierIosTest { + + @Test + fun `Check createStackElementTag`() { + val debugAntilog = DebugAntilog() + + val sampleHello = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0eb3d kfun:io.github.aakira.napier.mppsample.Sample#hello(){}kotlin.String + 205" + ) + assertEquals("Sample.hello", sampleHello) + + val handleError = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0f57c kfun:io.github.aakira.napier.mppsample.Sample#handleError(){} + 412" + ) + assertEquals("Sample.handleError", handleError) + + val coroutine = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0f0e2 kfun:io.github.aakira.napier.mppsample.Sample.\$suspendHelloCOROUTINE\$2#invokeSuspend(kotlin.Result){}kotlin.Any? + 930" + ) + assertEquals("Sample.suspendHello[async]", coroutine) + } + + @Test + fun `Check createStackElementTag without coroutines suffix`() { + val debugAntilog = DebugAntilog( + coroutinesSuffix = false, + ) + + val sampleHello = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0eb3d kfun:io.github.aakira.napier.mppsample.Sample#hello(){}kotlin.String + 205" + ) + assertEquals("Sample.hello", sampleHello) + + val handleError = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0f57c kfun:io.github.aakira.napier.mppsample.Sample#handleError(){} + 412" + ) + assertEquals("Sample.handleError", handleError) + + val coroutine = debugAntilog.createStackElementTag( + "8 Napier 0x0000000100f0f0e2 kfun:io.github.aakira.napier.mppsample.Sample.\$suspendHelloCOROUTINE\$2#invokeSuspend(kotlin.Result){}kotlin.Any? + 930" + ) + assertEquals("Sample.suspendHello", coroutine) + } +} diff --git a/napier/src/iosTest/kotlin/io/github/aakira/napier/TestRunBlocking.kt b/napier/src/darwinTest/kotlin/io/github/aakira/napier/TestRunBlocking.kt similarity index 100% rename from napier/src/iosTest/kotlin/io/github/aakira/napier/TestRunBlocking.kt rename to napier/src/darwinTest/kotlin/io/github/aakira/napier/TestRunBlocking.kt diff --git a/napier/src/iosTest/kotlin/io/github/aakira/napier/Coroutine.kt b/napier/src/iosTest/kotlin/io/github/aakira/napier/Coroutine.kt deleted file mode 100644 index 75df6d3..0000000 --- a/napier/src/iosTest/kotlin/io/github/aakira/napier/Coroutine.kt +++ /dev/null @@ -1,22 +0,0 @@ -package io.github.aakira.napier - -import kotlinx.coroutines.* -import platform.darwin.dispatch_async -import platform.darwin.dispatch_get_main_queue -import kotlin.coroutines.CoroutineContext - -internal class NativeScope : CoroutineScope { - private val context = MainDispatcher() - private val job = Job() - private val exceptionHandler = CoroutineExceptionHandler { _, _ -> } - - override val coroutineContext: CoroutineContext - get() = context + job + exceptionHandler -} - -private class MainDispatcher : CoroutineDispatcher() { - - override fun dispatch(context: CoroutineContext, block: Runnable) { - dispatch_async(dispatch_get_main_queue()) { block.run() } - } -} diff --git a/napier/src/iosTest/kotlin/io/github/aakira/napier/NapierIosTest.kt b/napier/src/iosTest/kotlin/io/github/aakira/napier/NapierIosTest.kt deleted file mode 100644 index c96f53a..0000000 --- a/napier/src/iosTest/kotlin/io/github/aakira/napier/NapierIosTest.kt +++ /dev/null @@ -1,28 +0,0 @@ -package io.github.aakira.napier - -import io.github.aakira.napier.DebugAntilog -import kotlin.test.Test -import kotlin.test.assertEquals - -class NapierIosTest { - - @Test - fun `Check createStackElementTag`() { - val debugAntilog = DebugAntilog() - - val sampleHello = debugAntilog.createStackElementTag( - "::: 8 Common 0x000000010db38cb3 kfun:io.github.aakira.napier.mppsample.Sample.hello()kotlin.String + 211" - ) - assertEquals("Sample.hello", sampleHello) - - val handleError = debugAntilog.createStackElementTag( - "::: 8 Common 0x000000010db396c0 kfun:io.github.aakira.napier.mppsample.Sample.handleError() + 432" - ) - assertEquals("Sample.handleError", handleError) - - val coroutine = debugAntilog.createStackElementTag( - "::: 8 Common 0x000000010db39132 kfun:io.github.aakira.napier.mppsample.Sample.\$suspendHelloCOROUTINE\$0.invokeSuspend(kotlin.Result)kotlin.Any? + 626" - ) - assertEquals("Sample.suspendHello", coroutine) - } -} diff --git a/napier/src/jsMain/kotlin/io/github/aakira/napier/DebugAntilog.kt b/napier/src/jsMain/kotlin/io/github/aakira/napier/DebugAntilog.kt index 16ce4f6..6eb1744 100644 --- a/napier/src/jsMain/kotlin/io/github/aakira/napier/DebugAntilog.kt +++ b/napier/src/jsMain/kotlin/io/github/aakira/napier/DebugAntilog.kt @@ -1,11 +1,13 @@ package io.github.aakira.napier -import io.github.aakira.napier.Antilog -import io.github.aakira.napier.Napier +actual class DebugAntilog actual constructor(private val defaultTag: String) : Antilog() { -class DebugAntilog(private val defaultTag: String = "app") : Antilog() { - - override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + override fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { val logTag = tag ?: defaultTag val fullMessage = if (message != null) { @@ -17,12 +19,12 @@ class DebugAntilog(private val defaultTag: String = "app") : Antilog() { } else throwable?.message ?: return when (priority) { - Napier.Level.VERBOSE -> console.log("VERBOSE $logTag : $fullMessage") - Napier.Level.DEBUG -> console.log("DEBUG $logTag : $fullMessage") - Napier.Level.INFO -> console.info("INFO $logTag : $fullMessage") - Napier.Level.WARNING -> console.warn("WARNING $logTag : $fullMessage") - Napier.Level.ERROR -> console.error("ERROR $logTag : $fullMessage") - Napier.Level.ASSERT -> console.error("ASSERT $logTag : $fullMessage") + LogLevel.VERBOSE -> console.log("VERBOSE $logTag : $fullMessage") + LogLevel.DEBUG -> console.log("DEBUG $logTag : $fullMessage") + LogLevel.INFO -> console.info("INFO $logTag : $fullMessage") + LogLevel.WARNING -> console.warn("WARNING $logTag : $fullMessage") + LogLevel.ERROR -> console.error("ERROR $logTag : $fullMessage") + LogLevel.ASSERT -> console.error("ASSERT $logTag : $fullMessage") } } } diff --git a/napier/src/jsMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt b/napier/src/jsMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt new file mode 100644 index 0000000..30f7636 --- /dev/null +++ b/napier/src/jsMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt @@ -0,0 +1,3 @@ +package io.github.aakira.napier.atomic + +internal actual class AtomicRef actual constructor(actual var value: T) diff --git a/napier/src/jvmMain/kotlin/io/github/aakira/napier/DebugAntilog.kt b/napier/src/jvmMain/kotlin/io/github/aakira/napier/DebugAntilog.kt index 9176a35..41f66dd 100644 --- a/napier/src/jvmMain/kotlin/io/github/aakira/napier/DebugAntilog.kt +++ b/napier/src/jvmMain/kotlin/io/github/aakira/napier/DebugAntilog.kt @@ -9,10 +9,11 @@ import java.util.logging.Logger import java.util.logging.SimpleFormatter import java.util.regex.Pattern -class DebugAntilog( +actual class DebugAntilog( private val defaultTag: String = "app", private val handler: List = listOf() ) : Antilog() { + actual constructor(defaultTag: String) : this(defaultTag, handler = listOf()) companion object { private const val CALL_STACK_INDEX = 8 @@ -37,16 +38,21 @@ class DebugAntilog( private val anonymousClass = Pattern.compile("(\\$\\d+)+$") - private val tagMap: HashMap = hashMapOf( - Napier.Level.VERBOSE to "[VERBOSE]", - Napier.Level.DEBUG to "[DEBUG]", - Napier.Level.INFO to "[INFO]", - Napier.Level.WARNING to "[WARN]", - Napier.Level.ERROR to "[ERROR]", - Napier.Level.ASSERT to "[ASSERT]" + private val tagMap: HashMap = hashMapOf( + LogLevel.VERBOSE to "[VERBOSE]", + LogLevel.DEBUG to "[DEBUG]", + LogLevel.INFO to "[INFO]", + LogLevel.WARNING to "[WARN]", + LogLevel.ERROR to "[ERROR]", + LogLevel.ASSERT to "[ASSERT]" ) - override fun performLog(priority: Napier.Level, tag: String?, throwable: Throwable?, message: String?) { + override fun performLog( + priority: LogLevel, + tag: String?, + throwable: Throwable?, + message: String?, + ) { val debugTag = tag ?: performTag(defaultTag) @@ -59,16 +65,16 @@ class DebugAntilog( } else throwable?.stackTraceString ?: return when (priority) { - Napier.Level.VERBOSE -> logger.finest(buildLog(priority, debugTag, fullMessage)) - Napier.Level.DEBUG -> logger.fine(buildLog(priority, debugTag, fullMessage)) - Napier.Level.INFO -> logger.info(buildLog(priority, debugTag, fullMessage)) - Napier.Level.WARNING -> logger.warning(buildLog(priority, debugTag, fullMessage)) - Napier.Level.ERROR -> logger.severe(buildLog(priority, debugTag, fullMessage)) - Napier.Level.ASSERT -> logger.severe(buildLog(priority, debugTag, fullMessage)) + LogLevel.VERBOSE -> logger.finest(buildLog(priority, debugTag, fullMessage)) + LogLevel.DEBUG -> logger.fine(buildLog(priority, debugTag, fullMessage)) + LogLevel.INFO -> logger.info(buildLog(priority, debugTag, fullMessage)) + LogLevel.WARNING -> logger.warning(buildLog(priority, debugTag, fullMessage)) + LogLevel.ERROR -> logger.severe(buildLog(priority, debugTag, fullMessage)) + LogLevel.ASSERT -> logger.severe(buildLog(priority, debugTag, fullMessage)) } } - internal fun buildLog(priority: Napier.Level, tag: String?, message: String?): String { + internal fun buildLog(priority: LogLevel, tag: String?, message: String?): String { return "${tagMap[priority]} ${tag ?: performTag(defaultTag)} - $message" } diff --git a/napier/src/jvmMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt b/napier/src/jvmMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt new file mode 100644 index 0000000..30f7636 --- /dev/null +++ b/napier/src/jvmMain/kotlin/io/github/aakira/napier/atomic/AtomicRef.kt @@ -0,0 +1,3 @@ +package io.github.aakira.napier.atomic + +internal actual class AtomicRef actual constructor(actual var value: T) diff --git a/napier/src/jvmTest/kotlin/io/github/aakira/napier/NapierJvmTest.kt b/napier/src/jvmTest/kotlin/io/github/aakira/napier/NapierJvmTest.kt index ef96cbc..456a0db 100644 --- a/napier/src/jvmTest/kotlin/io/github/aakira/napier/NapierJvmTest.kt +++ b/napier/src/jvmTest/kotlin/io/github/aakira/napier/NapierJvmTest.kt @@ -1,7 +1,5 @@ package io.github.aakira.napier -import io.github.aakira.napier.DebugAntilog -import io.github.aakira.napier.Napier import org.junit.Test import kotlin.test.assertEquals import kotlin.test.assertNotEquals @@ -13,15 +11,21 @@ class NapierJvmTest { @Test fun `Check createStackElementTag`() { assertEquals("Hoge", debugAntilog.createStackElementTag("io.github.aakira.napier.Hoge")) - assertEquals("Hoge2", debugAntilog.createStackElementTag("AA\$io.github.aakira.napier.Hoge2")) - assertNotEquals("default", debugAntilog.createStackElementTag("io.github.aakira.napier.Hoge3\$default")) + assertEquals( + "Hoge2", + debugAntilog.createStackElementTag("AA\$io.github.aakira.napier.Hoge2") + ) + assertNotEquals( + "default", + debugAntilog.createStackElementTag("io.github.aakira.napier.Hoge3\$default") + ) } @Test fun `Check buildLog`() { assertEquals( "[VERBOSE] defaultTag - message", - debugAntilog.buildLog(Napier.Level.VERBOSE, "defaultTag", "message") + debugAntilog.buildLog(LogLevel.VERBOSE, "defaultTag", "message") ) } } diff --git a/watchOS/Podfile b/watchOS/Podfile new file mode 100644 index 0000000..5eaae16 --- /dev/null +++ b/watchOS/Podfile @@ -0,0 +1,35 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'watchOS' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for watchOS + + target 'watchOSTests' do + inherit! :search_paths + # Pods for testing + end + + target 'watchOSUITests' do + # Pods for testing + end + +end + +target 'watchOS WatchKit App' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for watchOS WatchKit App + +end + +target 'watchOS WatchKit Extension' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for watchOS WatchKit Extension + pod 'mpp_sample', :path => '../mpp-sample' +end diff --git a/watchOS/Podfile.lock b/watchOS/Podfile.lock new file mode 100644 index 0000000..10f11f2 --- /dev/null +++ b/watchOS/Podfile.lock @@ -0,0 +1,16 @@ +PODS: + - mpp_sample (1.0.0) + +DEPENDENCIES: + - mpp_sample (from `../mpp-sample`) + +EXTERNAL SOURCES: + mpp_sample: + :path: "../mpp-sample" + +SPEC CHECKSUMS: + mpp_sample: 07fdbc60934b60a9bbfb833df6298899fe345026 + +PODFILE CHECKSUM: b3436ce517ca1a0cce102f45d61571a87947fefe + +COCOAPODS: 1.10.1 diff --git a/watchOS/Pods/Local Podspecs/mpp_sample.podspec.json b/watchOS/Pods/Local Podspecs/mpp_sample.podspec.json new file mode 100644 index 0000000..eb7b285 --- /dev/null +++ b/watchOS/Pods/Local Podspecs/mpp_sample.podspec.json @@ -0,0 +1,39 @@ +{ + "name": "mpp_sample", + "version": "1.0.0", + "homepage": "https://github.com/AAkira/Napier", + "source": { + "git": "Not Published", + "tag": "Cocoapods/mpp_sample/1.0.0" + }, + "authors": "", + "license": "", + "summary": "CocoaPods library", + "static_framework": true, + "vendored_frameworks": "build/cocoapods/framework/mpp_sample.framework", + "libraries": "c++", + "module_name": "mpp_sample_umbrella", + "pod_target_xcconfig": { + "KOTLIN_TARGET[sdk=iphonesimulator*]": "ios_x64", + "KOTLIN_TARGET[sdk=iphoneos*]": "ios_arm", + "KOTLIN_TARGET[sdk=watchsimulator*]": "watchos_x64", + "KOTLIN_TARGET[sdk=watchos*]": "watchos_arm", + "KOTLIN_TARGET[sdk=appletvsimulator*]": "tvos_x64", + "KOTLIN_TARGET[sdk=appletvos*]": "tvos_arm64", + "KOTLIN_TARGET[sdk=macosx*]": "macos_x64" + }, + "script_phases": [ + { + "name": "Build mpp_sample", + "execution_position": "before_compile", + "shell_path": "/bin/sh", + "script": " set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" :mpp-sample:syncFramework -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET -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" + } + ], + "platforms": { + "osx": null, + "ios": null, + "tvos": null, + "watchos": null + } +} diff --git a/watchOS/Pods/Manifest.lock b/watchOS/Pods/Manifest.lock new file mode 100644 index 0000000..10f11f2 --- /dev/null +++ b/watchOS/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - mpp_sample (1.0.0) + +DEPENDENCIES: + - mpp_sample (from `../mpp-sample`) + +EXTERNAL SOURCES: + mpp_sample: + :path: "../mpp-sample" + +SPEC CHECKSUMS: + mpp_sample: 07fdbc60934b60a9bbfb833df6298899fe345026 + +PODFILE CHECKSUM: b3436ce517ca1a0cce102f45d61571a87947fefe + +COCOAPODS: 1.10.1 diff --git a/watchOS/Pods/Pods.xcodeproj/project.pbxproj b/watchOS/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c8ab509 --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,1222 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXAggregateTarget section */ + 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */ = { + isa = PBXAggregateTarget; + buildConfigurationList = C8461E57243705CFA5C9C5247BD5AB9D /* Build configuration list for PBXAggregateTarget "mpp_sample" */; + buildPhases = ( + 3FC3EA628192C67993A01162848AFF70 /* [CP-User] Build mpp_sample */, + ); + dependencies = ( + ); + name = mpp_sample; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 05B9D630676A4E1928A214A21A598B4B /* Pods-watchOSTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = B0161C81B4622D69A6AAE812ED51481E /* Pods-watchOSTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 0D9E22F2A25D0D076DDFAACA12CB35F8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCE35B7430FD7C91E8CC808A3540CF2E /* Foundation.framework */; }; + 1B413DB28D56D3521F9BDC442D578931 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D0A982A9433AACEF8A61353293CF443 /* Foundation.framework */; }; + 23499A3BE98527A0C56B3826717DFCF8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D0A982A9433AACEF8A61353293CF443 /* Foundation.framework */; }; + 3C726380CD4D1DACBDD3C468A1681293 /* Pods-watchOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B9FBC75AB39CF748796538514C7326F0 /* Pods-watchOS-dummy.m */; }; + 4D05AE7412EDAF9C3C99CD0FF40A6E04 /* Pods-watchOS WatchKit App-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B8DB9BBEA90752B5CA12F60C5630ABB /* Pods-watchOS WatchKit App-dummy.m */; }; + 4EEE83115F0816C5BDFAB91917CCC268 /* Pods-watchOS WatchKit App-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EFF4E231F7DED632055CCD0FCACD666B /* Pods-watchOS WatchKit App-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 518A80C457ECD2E925D7D4CAB92625E7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FCE35B7430FD7C91E8CC808A3540CF2E /* Foundation.framework */; }; + 51A107A22702D91F795A7450479D6ADF /* Pods-watchOS-watchOSUITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 65EB451B2C8D42968745FA556D117E32 /* Pods-watchOS-watchOSUITests-dummy.m */; }; + 7A25CFBA31169A1C8E251AF6BABD7C8D /* Pods-watchOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FF4FAB75826D059A9B9FF69DE1EC1EA2 /* Pods-watchOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 888CA163594B793263B3C1A8D14D6569 /* Pods-watchOS-watchOSUITests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 36BCA7A8237C9395A8528D262E83D337 /* Pods-watchOS-watchOSUITests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 9407E4DDCBC613607D9D231BED2FD5BD /* Pods-watchOSTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F59ABA6D7416CF8037F5F4E4F8D18D9B /* Pods-watchOSTests-dummy.m */; }; + 940F18020BF9206BEFC462FD77F86484 /* Pods-watchOS WatchKit Extension-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A1EADE9F5BB79EF5AA45C1DD65394FB /* Pods-watchOS WatchKit Extension-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C8971D437D66697D7E76CBE72F3A5F9A /* Pods-watchOS WatchKit Extension-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 18B3DF22D563B0D03BF294DD4147C7FE /* Pods-watchOS WatchKit Extension-dummy.m */; }; + EB1A55BE13254F29830793475B12E803 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D0A982A9433AACEF8A61353293CF443 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 036CBDC9225A98D40CB948F04D39DA3E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 711CC3535E38CFD6E7B40F1DEA407CC6; + remoteInfo = "Pods-watchOS"; + }; + 91E344126B351156377C185ECAA475CF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2BDBC3602D396D415E60A5F264B74513; + remoteInfo = mpp_sample; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 05B8601317D979AFBBF563CC35FF0CD3 /* Pods-watchOS WatchKit App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS WatchKit App.debug.xcconfig"; sourceTree = ""; }; + 18937805BB1CB2271B93BBDFD14ECF7F /* mpp_sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = mpp_sample.debug.xcconfig; sourceTree = ""; }; + 18B3DF22D563B0D03BF294DD4147C7FE /* Pods-watchOS WatchKit Extension-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-watchOS WatchKit Extension-dummy.m"; sourceTree = ""; }; + 1B588CD277D9A658B9DE338F05990ABF /* Pods-watchOS WatchKit App.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-watchOS WatchKit App.modulemap"; sourceTree = ""; }; + 1C4E77F5633EC44A7E0DA46471A3BF87 /* Pods-watchOSTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-watchOSTests.modulemap"; sourceTree = ""; }; + 22C68EFA9E3FF5D4A159156ED3DDA07F /* Pods-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS.release.xcconfig"; sourceTree = ""; }; + 252172DA73B4CDD88DDE2870FAA051D4 /* Pods_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_watchOS.framework; path = "Pods-watchOS.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2606B7AA51E08B04C509159E4ED5FFA6 /* mpp_sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = mpp_sample.release.xcconfig; sourceTree = ""; }; + 2D063492CEBAD485E8E3D2B0D4C1EA0C /* Pods-watchOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOSTests.debug.xcconfig"; sourceTree = ""; }; + 2DBAB9F5758499A42E66B70B3D988BAB /* Pods-watchOS-watchOSUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS-watchOSUITests.debug.xcconfig"; sourceTree = ""; }; + 2FD750FE9CA6FAA7BB9180A882940AFD /* Pods-watchOS WatchKit App-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS WatchKit App-Info.plist"; sourceTree = ""; }; + 32E1AF5DEBB733C0E63815F751BF79AD /* Pods-watchOS WatchKit App-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS WatchKit App-acknowledgements.plist"; sourceTree = ""; }; + 339B7893A5D39D63BDA2A3D2769387AC /* Pods-watchOS WatchKit Extension.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-watchOS WatchKit Extension.modulemap"; sourceTree = ""; }; + 36BCA7A8237C9395A8528D262E83D337 /* Pods-watchOS-watchOSUITests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-watchOS-watchOSUITests-umbrella.h"; sourceTree = ""; }; + 38863D35F1A43C339433DA443A276E74 /* Pods-watchOS-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-watchOS-acknowledgements.markdown"; sourceTree = ""; }; + 3CBEC4943B46315EE3491B8D2B8DD6B3 /* Pods-watchOS-watchOSUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS-watchOSUITests.release.xcconfig"; sourceTree = ""; }; + 41D5DC40F9F20E77A414F12D66E2489A /* Pods-watchOSTests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOSTests-Info.plist"; sourceTree = ""; }; + 49F1A2E2788FF4B856155CEF97BABA29 /* Pods-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS.debug.xcconfig"; sourceTree = ""; }; + 4B16BDF19426260DF175C5109B19D8C0 /* Pods-watchOS WatchKit App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS WatchKit App.release.xcconfig"; sourceTree = ""; }; + 4B8DB9BBEA90752B5CA12F60C5630ABB /* Pods-watchOS WatchKit App-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-watchOS WatchKit App-dummy.m"; sourceTree = ""; }; + 4C29F103146136D16088BAE0B6AE31FD /* Pods-watchOS WatchKit Extension-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS WatchKit Extension-Info.plist"; sourceTree = ""; }; + 4E90B761A47BD6F6EAABC054B879A3EA /* Pods-watchOS.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-watchOS.modulemap"; sourceTree = ""; }; + 5D0A982A9433AACEF8A61353293CF443 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 65E4DB7C0A64368EBF0FE6937514F100 /* Pods_watchOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_watchOSTests.framework; path = "Pods-watchOSTests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 65EB451B2C8D42968745FA556D117E32 /* Pods-watchOS-watchOSUITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-watchOS-watchOSUITests-dummy.m"; sourceTree = ""; }; + 7A9516A0AB827FFA9FAF61E413D8E36D /* Pods-watchOS-watchOSUITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-watchOS-watchOSUITests-acknowledgements.markdown"; sourceTree = ""; }; + 846D9EB5EBA86B2DE84476BCA02049C4 /* Pods_watchOS_WatchKit_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_watchOS_WatchKit_App.framework; path = "Pods-watchOS WatchKit App.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8800D27522806F35774C0F769137F302 /* Pods-watchOS-watchOSUITests-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS-watchOSUITests-Info.plist"; sourceTree = ""; }; + 8A1EADE9F5BB79EF5AA45C1DD65394FB /* Pods-watchOS WatchKit Extension-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-watchOS WatchKit Extension-umbrella.h"; sourceTree = ""; }; + 92F7668084BD2392648D5511B0E4A20D /* Pods-watchOS WatchKit Extension-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-watchOS WatchKit Extension-acknowledgements.markdown"; sourceTree = ""; }; + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A29017FE5AD112C72CCDAB15E72E82D2 /* Pods-watchOS-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS-Info.plist"; sourceTree = ""; }; + AF66AE6FC3CC02D1F9884DEAC4387A4D /* Pods-watchOS-watchOSUITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS-watchOSUITests-acknowledgements.plist"; sourceTree = ""; }; + B0161C81B4622D69A6AAE812ED51481E /* Pods-watchOSTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-watchOSTests-umbrella.h"; sourceTree = ""; }; + B982BCF82CFB1999CF2C0D6AC7FB4761 /* Pods-watchOS-watchOSUITests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-watchOS-watchOSUITests.modulemap"; sourceTree = ""; }; + B9FBC75AB39CF748796538514C7326F0 /* Pods-watchOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-watchOS-dummy.m"; sourceTree = ""; }; + BF62C58047B8C4D44580326B67AEB3C6 /* Pods-watchOSTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOSTests-acknowledgements.plist"; sourceTree = ""; }; + C47365EFD0B0F014B87334B3C72C5CAB /* Pods-watchOS WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS WatchKit Extension.release.xcconfig"; sourceTree = ""; }; + C964D2F851708C186ADBE73061ABCE45 /* Pods-watchOS WatchKit Extension-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS WatchKit Extension-acknowledgements.plist"; sourceTree = ""; }; + CB2287D3F13607A700EC359617280ECE /* mpp_sample.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpp_sample.framework; path = build/cocoapods/framework/mpp_sample.framework; sourceTree = ""; }; + D831AB56CEFAB42A366D4E4DDED17246 /* Pods_watchOS_watchOSUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_watchOS_watchOSUITests.framework; path = "Pods-watchOS-watchOSUITests.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D86A553A490805E5D5959655352BFC62 /* Pods-watchOSTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-watchOSTests-acknowledgements.markdown"; sourceTree = ""; }; + D9A692BF722DE8AC719F5CC31099C61A /* Pods-watchOS WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOS WatchKit Extension.debug.xcconfig"; sourceTree = ""; }; + EC5ABA9681C97C50B6AB74EB87EE7E55 /* mpp_sample.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = mpp_sample.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + EFE842F3C1ADD358B4ED8F73DAA4B2FB /* Pods-watchOS WatchKit App-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-watchOS WatchKit App-acknowledgements.markdown"; sourceTree = ""; }; + EFF4E231F7DED632055CCD0FCACD666B /* Pods-watchOS WatchKit App-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-watchOS WatchKit App-umbrella.h"; sourceTree = ""; }; + F59ABA6D7416CF8037F5F4E4F8D18D9B /* Pods-watchOSTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-watchOSTests-dummy.m"; sourceTree = ""; }; + F6E21188BCBFBF1F6D1E5771776C442E /* Pods-watchOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-watchOSTests.release.xcconfig"; sourceTree = ""; }; + F9BC4BEDE2CF725A4581BC4D57A34ECC /* Pods-watchOS-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-watchOS-acknowledgements.plist"; sourceTree = ""; }; + FCE35B7430FD7C91E8CC808A3540CF2E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS7.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + FF4FAB75826D059A9B9FF69DE1EC1EA2 /* Pods-watchOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-watchOS-umbrella.h"; sourceTree = ""; }; + FF5DF79662323AAB03339F4DA5DF1362 /* Pods_watchOS_WatchKit_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_watchOS_WatchKit_Extension.framework; path = "Pods-watchOS WatchKit Extension.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 180ADBFDE5E5F918156A27E1FAE9F6F9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B413DB28D56D3521F9BDC442D578931 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 24276F672599FB7F5F88DE0A848C2B0D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EB1A55BE13254F29830793475B12E803 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E56A6B8871907C12012BBCE9E4CE37F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 23499A3BE98527A0C56B3826717DFCF8 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AA3F61CFBE650F07A162D4CC56D8E8AA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0D9E22F2A25D0D076DDFAACA12CB35F8 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B94ADC7C37443C2E12CF13B4CD31CD45 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 518A80C457ECD2E925D7D4CAB92625E7 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 03FBABE5ACCBF0D21AB61D364299D310 /* iOS */ = { + isa = PBXGroup; + children = ( + 5D0A982A9433AACEF8A61353293CF443 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 0C5C784C00B452A50AF975110D1361BC /* Pod */ = { + isa = PBXGroup; + children = ( + EC5ABA9681C97C50B6AB74EB87EE7E55 /* mpp_sample.podspec */, + ); + name = Pod; + sourceTree = ""; + }; + 2834AA90A87F6D9DC0BBE74DC646A84D /* Pods-watchOSTests */ = { + isa = PBXGroup; + children = ( + 1C4E77F5633EC44A7E0DA46471A3BF87 /* Pods-watchOSTests.modulemap */, + D86A553A490805E5D5959655352BFC62 /* Pods-watchOSTests-acknowledgements.markdown */, + BF62C58047B8C4D44580326B67AEB3C6 /* Pods-watchOSTests-acknowledgements.plist */, + F59ABA6D7416CF8037F5F4E4F8D18D9B /* Pods-watchOSTests-dummy.m */, + 41D5DC40F9F20E77A414F12D66E2489A /* Pods-watchOSTests-Info.plist */, + B0161C81B4622D69A6AAE812ED51481E /* Pods-watchOSTests-umbrella.h */, + 2D063492CEBAD485E8E3D2B0D4C1EA0C /* Pods-watchOSTests.debug.xcconfig */, + F6E21188BCBFBF1F6D1E5771776C442E /* Pods-watchOSTests.release.xcconfig */, + ); + name = "Pods-watchOSTests"; + path = "Target Support Files/Pods-watchOSTests"; + sourceTree = ""; + }; + 54CCD06893F300F5B2C02DAFD57093E1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03FBABE5ACCBF0D21AB61D364299D310 /* iOS */, + 8B063FB5829CC11F1F48DAAF9305FCB4 /* watchOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7A77230CA8CACC40ECD4E2B11F9503D5 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + D96C173BC6F7CFAA40CBF7CB422AEDC2 /* Pods-watchOS */, + CFCCA60D7BA29F4E9DC8EEEEAB8B71B7 /* Pods-watchOS WatchKit App */, + FD5F33A1043B1413EFB6C3A7E9258A13 /* Pods-watchOS WatchKit Extension */, + F78DCC13A65D6F242B986FF15FCE4B41 /* Pods-watchOS-watchOSUITests */, + 2834AA90A87F6D9DC0BBE74DC646A84D /* Pods-watchOSTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 8B063FB5829CC11F1F48DAAF9305FCB4 /* watchOS */ = { + isa = PBXGroup; + children = ( + FCE35B7430FD7C91E8CC808A3540CF2E /* Foundation.framework */, + ); + name = watchOS; + sourceTree = ""; + }; + A9E2CA7155BAECABB1DB5C8F1DCC81AB /* mpp_sample */ = { + isa = PBXGroup; + children = ( + C92FF61DF117E29439D4C19D39CF8600 /* Frameworks */, + 0C5C784C00B452A50AF975110D1361BC /* Pod */, + C0805A053138233F7F3B8DB32636AB68 /* Support Files */, + ); + name = mpp_sample; + path = "../../mpp-sample"; + sourceTree = ""; + }; + AF199AEE59247EBAA5D92E2E2B31877A /* Development Pods */ = { + isa = PBXGroup; + children = ( + A9E2CA7155BAECABB1DB5C8F1DCC81AB /* mpp_sample */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + C0805A053138233F7F3B8DB32636AB68 /* Support Files */ = { + isa = PBXGroup; + children = ( + 18937805BB1CB2271B93BBDFD14ECF7F /* mpp_sample.debug.xcconfig */, + 2606B7AA51E08B04C509159E4ED5FFA6 /* mpp_sample.release.xcconfig */, + ); + name = "Support Files"; + path = "../watchOS/Pods/Target Support Files/mpp_sample"; + sourceTree = ""; + }; + C92FF61DF117E29439D4C19D39CF8600 /* Frameworks */ = { + isa = PBXGroup; + children = ( + CB2287D3F13607A700EC359617280ECE /* mpp_sample.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + CE35C77183A8A7166E09EECBDEFE58BF /* Products */ = { + isa = PBXGroup; + children = ( + 252172DA73B4CDD88DDE2870FAA051D4 /* Pods_watchOS.framework */, + 846D9EB5EBA86B2DE84476BCA02049C4 /* Pods_watchOS_WatchKit_App.framework */, + FF5DF79662323AAB03339F4DA5DF1362 /* Pods_watchOS_WatchKit_Extension.framework */, + D831AB56CEFAB42A366D4E4DDED17246 /* Pods_watchOS_watchOSUITests.framework */, + 65E4DB7C0A64368EBF0FE6937514F100 /* Pods_watchOSTests.framework */, + ); + name = Products; + sourceTree = ""; + }; + CF1408CF629C7361332E53B88F7BD30C = { + isa = PBXGroup; + children = ( + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + AF199AEE59247EBAA5D92E2E2B31877A /* Development Pods */, + 54CCD06893F300F5B2C02DAFD57093E1 /* Frameworks */, + CE35C77183A8A7166E09EECBDEFE58BF /* Products */, + 7A77230CA8CACC40ECD4E2B11F9503D5 /* Targets Support Files */, + ); + sourceTree = ""; + }; + CFCCA60D7BA29F4E9DC8EEEEAB8B71B7 /* Pods-watchOS WatchKit App */ = { + isa = PBXGroup; + children = ( + 1B588CD277D9A658B9DE338F05990ABF /* Pods-watchOS WatchKit App.modulemap */, + EFE842F3C1ADD358B4ED8F73DAA4B2FB /* Pods-watchOS WatchKit App-acknowledgements.markdown */, + 32E1AF5DEBB733C0E63815F751BF79AD /* Pods-watchOS WatchKit App-acknowledgements.plist */, + 4B8DB9BBEA90752B5CA12F60C5630ABB /* Pods-watchOS WatchKit App-dummy.m */, + 2FD750FE9CA6FAA7BB9180A882940AFD /* Pods-watchOS WatchKit App-Info.plist */, + EFF4E231F7DED632055CCD0FCACD666B /* Pods-watchOS WatchKit App-umbrella.h */, + 05B8601317D979AFBBF563CC35FF0CD3 /* Pods-watchOS WatchKit App.debug.xcconfig */, + 4B16BDF19426260DF175C5109B19D8C0 /* Pods-watchOS WatchKit App.release.xcconfig */, + ); + name = "Pods-watchOS WatchKit App"; + path = "Target Support Files/Pods-watchOS WatchKit App"; + sourceTree = ""; + }; + D96C173BC6F7CFAA40CBF7CB422AEDC2 /* Pods-watchOS */ = { + isa = PBXGroup; + children = ( + 4E90B761A47BD6F6EAABC054B879A3EA /* Pods-watchOS.modulemap */, + 38863D35F1A43C339433DA443A276E74 /* Pods-watchOS-acknowledgements.markdown */, + F9BC4BEDE2CF725A4581BC4D57A34ECC /* Pods-watchOS-acknowledgements.plist */, + B9FBC75AB39CF748796538514C7326F0 /* Pods-watchOS-dummy.m */, + A29017FE5AD112C72CCDAB15E72E82D2 /* Pods-watchOS-Info.plist */, + FF4FAB75826D059A9B9FF69DE1EC1EA2 /* Pods-watchOS-umbrella.h */, + 49F1A2E2788FF4B856155CEF97BABA29 /* Pods-watchOS.debug.xcconfig */, + 22C68EFA9E3FF5D4A159156ED3DDA07F /* Pods-watchOS.release.xcconfig */, + ); + name = "Pods-watchOS"; + path = "Target Support Files/Pods-watchOS"; + sourceTree = ""; + }; + F78DCC13A65D6F242B986FF15FCE4B41 /* Pods-watchOS-watchOSUITests */ = { + isa = PBXGroup; + children = ( + B982BCF82CFB1999CF2C0D6AC7FB4761 /* Pods-watchOS-watchOSUITests.modulemap */, + 7A9516A0AB827FFA9FAF61E413D8E36D /* Pods-watchOS-watchOSUITests-acknowledgements.markdown */, + AF66AE6FC3CC02D1F9884DEAC4387A4D /* Pods-watchOS-watchOSUITests-acknowledgements.plist */, + 65EB451B2C8D42968745FA556D117E32 /* Pods-watchOS-watchOSUITests-dummy.m */, + 8800D27522806F35774C0F769137F302 /* Pods-watchOS-watchOSUITests-Info.plist */, + 36BCA7A8237C9395A8528D262E83D337 /* Pods-watchOS-watchOSUITests-umbrella.h */, + 2DBAB9F5758499A42E66B70B3D988BAB /* Pods-watchOS-watchOSUITests.debug.xcconfig */, + 3CBEC4943B46315EE3491B8D2B8DD6B3 /* Pods-watchOS-watchOSUITests.release.xcconfig */, + ); + name = "Pods-watchOS-watchOSUITests"; + path = "Target Support Files/Pods-watchOS-watchOSUITests"; + sourceTree = ""; + }; + FD5F33A1043B1413EFB6C3A7E9258A13 /* Pods-watchOS WatchKit Extension */ = { + isa = PBXGroup; + children = ( + 339B7893A5D39D63BDA2A3D2769387AC /* Pods-watchOS WatchKit Extension.modulemap */, + 92F7668084BD2392648D5511B0E4A20D /* Pods-watchOS WatchKit Extension-acknowledgements.markdown */, + C964D2F851708C186ADBE73061ABCE45 /* Pods-watchOS WatchKit Extension-acknowledgements.plist */, + 18B3DF22D563B0D03BF294DD4147C7FE /* Pods-watchOS WatchKit Extension-dummy.m */, + 4C29F103146136D16088BAE0B6AE31FD /* Pods-watchOS WatchKit Extension-Info.plist */, + 8A1EADE9F5BB79EF5AA45C1DD65394FB /* Pods-watchOS WatchKit Extension-umbrella.h */, + D9A692BF722DE8AC719F5CC31099C61A /* Pods-watchOS WatchKit Extension.debug.xcconfig */, + C47365EFD0B0F014B87334B3C72C5CAB /* Pods-watchOS WatchKit Extension.release.xcconfig */, + ); + name = "Pods-watchOS WatchKit Extension"; + path = "Target Support Files/Pods-watchOS WatchKit Extension"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 095E1FBFFBFCBE49B841E4CF4E406728 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4EEE83115F0816C5BDFAB91917CCC268 /* Pods-watchOS WatchKit App-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 408320CA41C12DA2AB49D933CFB81400 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 940F18020BF9206BEFC462FD77F86484 /* Pods-watchOS WatchKit Extension-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 526DACED761A76F5A69E24798882F6B6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7A25CFBA31169A1C8E251AF6BABD7C8D /* Pods-watchOS-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7DBFAF1F408705D21B43C97FED259A06 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 888CA163594B793263B3C1A8D14D6569 /* Pods-watchOS-watchOSUITests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E68C7062319BB494B9CDEFBBA7C2D09B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 05B9D630676A4E1928A214A21A598B4B /* Pods-watchOSTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 62FB437211E380DB4FC03AF45E2B3208 /* Pods-watchOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6BD959F88525B691A7D3F4F181B9765B /* Build configuration list for PBXNativeTarget "Pods-watchOSTests" */; + buildPhases = ( + E68C7062319BB494B9CDEFBBA7C2D09B /* Headers */, + FEBEAD982FA3A6C35C4E874E3B533A37 /* Sources */, + 6E56A6B8871907C12012BBCE9E4CE37F /* Frameworks */, + 5A2DF8F0A63A9B01950C9E2E3F27140A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + E364184E3EEE23AF3D1C9D56284F9150 /* PBXTargetDependency */, + ); + name = "Pods-watchOSTests"; + productName = "Pods-watchOSTests"; + productReference = 65E4DB7C0A64368EBF0FE6937514F100 /* Pods_watchOSTests.framework */; + productType = "com.apple.product-type.framework"; + }; + 711CC3535E38CFD6E7B40F1DEA407CC6 /* Pods-watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 431725524C47130F338EFC350CD2D86A /* Build configuration list for PBXNativeTarget "Pods-watchOS" */; + buildPhases = ( + 526DACED761A76F5A69E24798882F6B6 /* Headers */, + 276FE7CDB767081A29B3A051C2D7B994 /* Sources */, + 24276F672599FB7F5F88DE0A848C2B0D /* Frameworks */, + 14F655A5C5D92D1B3DD77DB63A62D6B1 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-watchOS"; + productName = "Pods-watchOS"; + productReference = 252172DA73B4CDD88DDE2870FAA051D4 /* Pods_watchOS.framework */; + productType = "com.apple.product-type.framework"; + }; + 7F24FB6A04775D9D353987CB9ADDE78A /* Pods-watchOS WatchKit App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 18206E754A2920A41F7BA58EF29EE873 /* Build configuration list for PBXNativeTarget "Pods-watchOS WatchKit App" */; + buildPhases = ( + 095E1FBFFBFCBE49B841E4CF4E406728 /* Headers */, + 3D36D6C6B468CB2787540EDA0B92CE3D /* Sources */, + B94ADC7C37443C2E12CF13B4CD31CD45 /* Frameworks */, + 724529BAB19F049A01416D276EB35A00 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-watchOS WatchKit App"; + productName = "Pods-watchOS WatchKit App"; + productReference = 846D9EB5EBA86B2DE84476BCA02049C4 /* Pods_watchOS_WatchKit_App.framework */; + productType = "com.apple.product-type.framework"; + }; + CE8FA6DD1B68AF3E569DEE152ECF7A04 /* Pods-watchOS-watchOSUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = B87C8972FDBEB72DB7B70D49266D9081 /* Build configuration list for PBXNativeTarget "Pods-watchOS-watchOSUITests" */; + buildPhases = ( + 7DBFAF1F408705D21B43C97FED259A06 /* Headers */, + DADF8B033D7FA4BEE59DF7747DF3441E /* Sources */, + 180ADBFDE5E5F918156A27E1FAE9F6F9 /* Frameworks */, + E414797BB078974D232EB290A1AA7572 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-watchOS-watchOSUITests"; + productName = "Pods-watchOS-watchOSUITests"; + productReference = D831AB56CEFAB42A366D4E4DDED17246 /* Pods_watchOS_watchOSUITests.framework */; + productType = "com.apple.product-type.framework"; + }; + FF1FC0697B06D17D474F80098065D763 /* Pods-watchOS WatchKit Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 09A70F4F41DBA1F97437703E00234B20 /* Build configuration list for PBXNativeTarget "Pods-watchOS WatchKit Extension" */; + buildPhases = ( + 408320CA41C12DA2AB49D933CFB81400 /* Headers */, + 754350830FAC2DF00548067874893AAA /* Sources */, + AA3F61CFBE650F07A162D4CC56D8E8AA /* Frameworks */, + 6BD23A3D39C48E4212A2E58DC1870219 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 8ADC02E5BEFE753EA9AC3B2A74D706C9 /* PBXTargetDependency */, + ); + name = "Pods-watchOS WatchKit Extension"; + productName = "Pods-watchOS WatchKit Extension"; + productReference = FF5DF79662323AAB03339F4DA5DF1362 /* Pods_watchOS_WatchKit_Extension.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + BFDFE7DC352907FC980B868725387E98 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; + }; + buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = CF1408CF629C7361332E53B88F7BD30C; + productRefGroup = CE35C77183A8A7166E09EECBDEFE58BF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */, + 711CC3535E38CFD6E7B40F1DEA407CC6 /* Pods-watchOS */, + 7F24FB6A04775D9D353987CB9ADDE78A /* Pods-watchOS WatchKit App */, + FF1FC0697B06D17D474F80098065D763 /* Pods-watchOS WatchKit Extension */, + CE8FA6DD1B68AF3E569DEE152ECF7A04 /* Pods-watchOS-watchOSUITests */, + 62FB437211E380DB4FC03AF45E2B3208 /* Pods-watchOSTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 14F655A5C5D92D1B3DD77DB63A62D6B1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 5A2DF8F0A63A9B01950C9E2E3F27140A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6BD23A3D39C48E4212A2E58DC1870219 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 724529BAB19F049A01416D276EB35A00 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E414797BB078974D232EB290A1AA7572 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3FC3EA628192C67993A01162848AFF70 /* [CP-User] Build mpp_sample */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + name = "[CP-User] Build mpp_sample"; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = " set -ev\n REPO_ROOT=\"$PODS_TARGET_SRCROOT\"\n \"$REPO_ROOT/../gradlew\" -p \"$REPO_ROOT\" :mpp-sample:syncFramework -Pkotlin.native.cocoapods.target=$KOTLIN_TARGET -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"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 276FE7CDB767081A29B3A051C2D7B994 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3C726380CD4D1DACBDD3C468A1681293 /* Pods-watchOS-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D36D6C6B468CB2787540EDA0B92CE3D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4D05AE7412EDAF9C3C99CD0FF40A6E04 /* Pods-watchOS WatchKit App-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 754350830FAC2DF00548067874893AAA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8971D437D66697D7E76CBE72F3A5F9A /* Pods-watchOS WatchKit Extension-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DADF8B033D7FA4BEE59DF7747DF3441E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 51A107A22702D91F795A7450479D6ADF /* Pods-watchOS-watchOSUITests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FEBEAD982FA3A6C35C4E874E3B533A37 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9407E4DDCBC613607D9D231BED2FD5BD /* Pods-watchOSTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 8ADC02E5BEFE753EA9AC3B2A74D706C9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = mpp_sample; + target = 2BDBC3602D396D415E60A5F264B74513 /* mpp_sample */; + targetProxy = 91E344126B351156377C185ECAA475CF /* PBXContainerItemProxy */; + }; + E364184E3EEE23AF3D1C9D56284F9150 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-watchOS"; + target = 711CC3535E38CFD6E7B40F1DEA407CC6 /* Pods-watchOS */; + targetProxy = 036CBDC9225A98D40CB948F04D39DA3E /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 070EEA8D3FCE714B7CDC2B48FEBD71DD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2DBAB9F5758499A42E66B70B3D988BAB /* Pods-watchOS-watchOSUITests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 26B4702B92F9D597ADBC3F258B8CCDE9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C47365EFD0B0F014B87334B3C72C5CAB /* Pods-watchOS WatchKit Extension.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + 30C673941DB56C03AC17D7CD2D8ACABE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F6E21188BCBFBF1F6D1E5771776C442E /* Pods-watchOSTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 39BCCF67E046DD58B79C835ABA0424FF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2D063492CEBAD485E8E3D2B0D4C1EA0C /* Pods-watchOSTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 3C2A59F66EDE4B99E75A550E328355B8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2606B7AA51E08B04C509159E4ED5FFA6 /* mpp_sample.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VALIDATE_PRODUCT = YES; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Release; + }; + 52F8C524EF93D3C6DCED78F9CAEF0E56 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3CBEC4943B46315EE3491B8D2B8DD6B3 /* Pods-watchOS-watchOSUITests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 73973B70042B7BEB1E257116E0B29B11 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 49F1A2E2788FF4B856155CEF97BABA29 /* Pods-watchOS.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS/Pods-watchOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS/Pods-watchOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7733D520129A1C56E8ADCD017DAE052C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = ""; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + 8D8B6063E722E3ACCE87854B6647BEFF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 22C68EFA9E3FF5D4A159156ED3DDA07F /* Pods-watchOS.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + CLANG_ENABLE_OBJC_WEAK = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS/Pods-watchOS-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS/Pods-watchOS.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + D92F43F0A975730EE34E36B38EEA1B70 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = ""; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + DA6AD2029747FE0C26ED2216BDE4D493 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 05B8601317D979AFBBF563CC35FF0CD3 /* Pods-watchOS WatchKit App.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + E4D08ACBBC79113FEA0BD86A8BF67DC4 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4B16BDF19426260DF175C5109B19D8C0 /* Pods-watchOS WatchKit App.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + F78ECFED27A24FE15ED0AB5B57CA8684 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D9A692BF722DE8AC719F5CC31099C61A /* Pods-watchOS WatchKit Extension.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + APPLICATION_EXTENSION_API_ONLY = YES; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + FCD1E6642C62DF2F1144DCFE9037565D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 18937805BB1CB2271B93BBDFD14ECF7F /* mpp_sample.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + SDKROOT = watchos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 2.0; + }; + name = Debug; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 09A70F4F41DBA1F97437703E00234B20 /* Build configuration list for PBXNativeTarget "Pods-watchOS WatchKit Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F78ECFED27A24FE15ED0AB5B57CA8684 /* Debug */, + 26B4702B92F9D597ADBC3F258B8CCDE9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 18206E754A2920A41F7BA58EF29EE873 /* Build configuration list for PBXNativeTarget "Pods-watchOS WatchKit App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DA6AD2029747FE0C26ED2216BDE4D493 /* Debug */, + E4D08ACBBC79113FEA0BD86A8BF67DC4 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 431725524C47130F338EFC350CD2D86A /* Build configuration list for PBXNativeTarget "Pods-watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 73973B70042B7BEB1E257116E0B29B11 /* Debug */, + 8D8B6063E722E3ACCE87854B6647BEFF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D92F43F0A975730EE34E36B38EEA1B70 /* Debug */, + 7733D520129A1C56E8ADCD017DAE052C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6BD959F88525B691A7D3F4F181B9765B /* Build configuration list for PBXNativeTarget "Pods-watchOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 39BCCF67E046DD58B79C835ABA0424FF /* Debug */, + 30C673941DB56C03AC17D7CD2D8ACABE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + B87C8972FDBEB72DB7B70D49266D9081 /* Build configuration list for PBXNativeTarget "Pods-watchOS-watchOSUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 070EEA8D3FCE714B7CDC2B48FEBD71DD /* Debug */, + 52F8C524EF93D3C6DCED78F9CAEF0E56 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8461E57243705CFA5C9C5247BD5AB9D /* Build configuration list for PBXAggregateTarget "mpp_sample" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FCD1E6642C62DF2F1144DCFE9037565D /* Debug */, + 3C2A59F66EDE4B99E75A550E328355B8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; +} diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit App.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit App.xcscheme new file mode 100644 index 0000000..f988755 --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit App.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit Extension.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit Extension.xcscheme new file mode 100644 index 0000000..22d999f --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS WatchKit Extension.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS-watchOSUITests.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS-watchOSUITests.xcscheme new file mode 100644 index 0000000..3bef13e --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS-watchOSUITests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS.xcscheme new file mode 100644 index 0000000..8f568d5 --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOS.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOSTests.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOSTests.xcscheme new file mode 100644 index 0000000..e3b1ef9 --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/Pods-watchOSTests.xcscheme @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme new file mode 100644 index 0000000..24f4e6e --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/mpp_sample.xcscheme @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..4b1a3d2 --- /dev/null +++ b/watchOS/Pods/Pods.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,53 @@ + + + + + SchemeUserState + + Pods-watchOS WatchKit App.xcscheme + + isShown + + orderHint + 2 + + Pods-watchOS WatchKit Extension.xcscheme + + isShown + + orderHint + 3 + + Pods-watchOS-watchOSUITests.xcscheme + + isShown + + orderHint + 4 + + Pods-watchOS.xcscheme + + isShown + + orderHint + 1 + + Pods-watchOSTests.xcscheme + + isShown + + orderHint + 5 + + mpp_sample.xcscheme + + isShown + + orderHint + 0 + + + SuppressBuildableAutocreation + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-Info.plist b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.markdown b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.plist b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-dummy.m b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-dummy.m new file mode 100644 index 0000000..e8db90c --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_watchOS_WatchKit_App : NSObject +@end +@implementation PodsDummy_Pods_watchOS_WatchKit_App +@end diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-umbrella.h b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-umbrella.h new file mode 100644 index 0000000..43f3dab --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_watchOS_WatchKit_AppVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_watchOS_WatchKit_AppVersionString[]; + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.debug.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.debug.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.debug.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.modulemap b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.modulemap new file mode 100644 index 0000000..7aea892 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.modulemap @@ -0,0 +1,6 @@ +framework module Pods_watchOS_WatchKit_App { + umbrella header "Pods-watchOS WatchKit App-umbrella.h" + + export * + module * { export * } +} diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.release.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.release.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.release.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-Info.plist b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.markdown b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.plist b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-dummy.m b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-dummy.m new file mode 100644 index 0000000..7d77b64 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_watchOS_WatchKit_Extension : NSObject +@end +@implementation PodsDummy_Pods_watchOS_WatchKit_Extension +@end diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-umbrella.h b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-umbrella.h new file mode 100644 index 0000000..534d5a7 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_watchOS_WatchKit_ExtensionVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_watchOS_WatchKit_ExtensionVersionString[]; + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.debug.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.debug.xcconfig new file mode 100644 index 0000000..38775fb --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.debug.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "mpp_sample" +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.modulemap b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.modulemap new file mode 100644 index 0000000..7fde14c --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.modulemap @@ -0,0 +1,6 @@ +framework module Pods_watchOS_WatchKit_Extension { + umbrella header "Pods-watchOS WatchKit Extension-umbrella.h" + + export * + module * { export * } +} diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.release.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.release.xcconfig new file mode 100644 index 0000000..38775fb --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.release.xcconfig @@ -0,0 +1,10 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "mpp_sample" +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-Info.plist b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.markdown b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.plist b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-dummy.m b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-dummy.m new file mode 100644 index 0000000..d830688 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_watchOS_watchOSUITests : NSObject +@end +@implementation PodsDummy_Pods_watchOS_watchOSUITests +@end diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-umbrella.h b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-umbrella.h new file mode 100644 index 0000000..59b042f --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_watchOS_watchOSUITestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_watchOS_watchOSUITestsVersionString[]; + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.debug.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.debug.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.debug.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.modulemap b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.modulemap new file mode 100644 index 0000000..d2d4834 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_watchOS_watchOSUITests { + umbrella header "Pods-watchOS-watchOSUITests-umbrella.h" + + export * + module * { export * } +} diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.release.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.release.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.release.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-Info.plist b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.markdown b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.plist b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-dummy.m b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-dummy.m new file mode 100644 index 0000000..4730bc4 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_watchOS : NSObject +@end +@implementation PodsDummy_Pods_watchOS +@end diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-umbrella.h b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-umbrella.h new file mode 100644 index 0000000..ea0aec2 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_watchOSVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_watchOSVersionString[]; + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.debug.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.debug.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.debug.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.modulemap b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.modulemap new file mode 100644 index 0000000..2fd29d0 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.modulemap @@ -0,0 +1,6 @@ +framework module Pods_watchOS { + umbrella header "Pods-watchOS-umbrella.h" + + export * + module * { export * } +} diff --git a/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.release.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.release.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOS/Pods-watchOS.release.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-Info.plist b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.markdown b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.plist b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-dummy.m b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-dummy.m new file mode 100644 index 0000000..856ef20 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_watchOSTests : NSObject +@end +@implementation PodsDummy_Pods_watchOSTests +@end diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-umbrella.h b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-umbrella.h new file mode 100644 index 0000000..e76267b --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_watchOSTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_watchOSTestsVersionString[]; + diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.debug.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.debug.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.debug.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.modulemap b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.modulemap new file mode 100644 index 0000000..e5ed627 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_watchOSTests { + umbrella header "Pods-watchOSTests-umbrella.h" + + export * + module * { export * } +} diff --git a/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.release.xcconfig b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.release.xcconfig new file mode 100644 index 0000000..26f2c77 --- /dev/null +++ b/watchOS/Pods/Target Support Files/Pods-watchOSTests/Pods-watchOSTests.release.xcconfig @@ -0,0 +1,8 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +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 +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig b/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig new file mode 100644 index 0000000..39b79db --- /dev/null +++ b/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.debug.xcconfig @@ -0,0 +1,20 @@ +APPLICATION_EXTENSION_API_ONLY = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/mpp_sample +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_TARGET[sdk=appletvos*] = tvos_arm64 +KOTLIN_TARGET[sdk=appletvsimulator*] = tvos_x64 +KOTLIN_TARGET[sdk=iphoneos*] = ios_arm +KOTLIN_TARGET[sdk=iphonesimulator*] = ios_x64 +KOTLIN_TARGET[sdk=macosx*] = macos_x64 +KOTLIN_TARGET[sdk=watchos*] = watchos_arm +KOTLIN_TARGET[sdk=watchsimulator*] = watchos_x64 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../mpp-sample +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig b/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig new file mode 100644 index 0000000..39b79db --- /dev/null +++ b/watchOS/Pods/Target Support Files/mpp_sample/mpp_sample.release.xcconfig @@ -0,0 +1,20 @@ +APPLICATION_EXTENSION_API_ONLY = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/mpp_sample +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../mpp-sample/build/cocoapods/framework" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +KOTLIN_TARGET[sdk=appletvos*] = tvos_arm64 +KOTLIN_TARGET[sdk=appletvsimulator*] = tvos_x64 +KOTLIN_TARGET[sdk=iphoneos*] = ios_arm +KOTLIN_TARGET[sdk=iphonesimulator*] = ios_x64 +KOTLIN_TARGET[sdk=macosx*] = macos_x64 +KOTLIN_TARGET[sdk=watchos*] = watchos_arm +KOTLIN_TARGET[sdk=watchsimulator*] = watchos_x64 +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PODS_TARGET_SRCROOT = ${PODS_ROOT}/../../mpp-sample +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/watchOS/watchOS WatchKit App/Assets.xcassets/AccentColor.colorset/Contents.json b/watchOS/watchOS WatchKit App/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/watchOS/watchOS WatchKit App/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json b/watchOS/watchOS WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d06b66a --- /dev/null +++ b/watchOS/watchOS WatchKit App/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,81 @@ +{ + "images" : [ + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "24x24", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "notificationCenter", + "scale" : "2x", + "size" : "27.5x27.5", + "subtype" : "42mm" + }, + { + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "2x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "companionSettings", + "scale" : "3x", + "size" : "29x29" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "40x40", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "44x44", + "subtype" : "40mm" + }, + { + "idiom" : "watch", + "role" : "appLauncher", + "scale" : "2x", + "size" : "50x50", + "subtype" : "44mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "86x86", + "subtype" : "38mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "98x98", + "subtype" : "42mm" + }, + { + "idiom" : "watch", + "role" : "quickLook", + "scale" : "2x", + "size" : "108x108", + "subtype" : "44mm" + }, + { + "idiom" : "watch-marketing", + "scale" : "1x", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit App/Assets.xcassets/Contents.json b/watchOS/watchOS WatchKit App/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/watchOS/watchOS WatchKit App/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit App/Info.plist b/watchOS/watchOS WatchKit App/Info.plist new file mode 100644 index 0000000..208be1e --- /dev/null +++ b/watchOS/watchOS WatchKit App/Info.plist @@ -0,0 +1,31 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + watchOS WatchKit App + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + WKWatchKitApp + + + diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json new file mode 100644 index 0000000..ed7de25 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Circular.imageset/Contents.json @@ -0,0 +1,28 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json new file mode 100644 index 0000000..e8b3252 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Contents.json @@ -0,0 +1,53 @@ +{ + "assets" : [ + { + "filename" : "Circular.imageset", + "idiom" : "watch", + "role" : "circular" + }, + { + "filename" : "Extra Large.imageset", + "idiom" : "watch", + "role" : "extra-large" + }, + { + "filename" : "Graphic Bezel.imageset", + "idiom" : "watch", + "role" : "graphic-bezel" + }, + { + "filename" : "Graphic Circular.imageset", + "idiom" : "watch", + "role" : "graphic-circular" + }, + { + "filename" : "Graphic Corner.imageset", + "idiom" : "watch", + "role" : "graphic-corner" + }, + { + "filename" : "Graphic Extra Large.imageset", + "idiom" : "watch", + "role" : "graphic-extra-large" + }, + { + "filename" : "Graphic Large Rectangular.imageset", + "idiom" : "watch", + "role" : "graphic-large-rectangular" + }, + { + "filename" : "Modular.imageset", + "idiom" : "watch", + "role" : "modular" + }, + { + "filename" : "Utilitarian.imageset", + "idiom" : "watch", + "role" : "utilitarian" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json new file mode 100644 index 0000000..ed7de25 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Extra Large.imageset/Contents.json @@ -0,0 +1,28 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json new file mode 100644 index 0000000..9685a7f --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Bezel.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json new file mode 100644 index 0000000..9685a7f --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Circular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json new file mode 100644 index 0000000..9685a7f --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Corner.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Contents.json new file mode 100644 index 0000000..ed7de25 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Extra Large.imageset/Contents.json @@ -0,0 +1,28 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json new file mode 100644 index 0000000..9685a7f --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Graphic Large Rectangular.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json new file mode 100644 index 0000000..ed7de25 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Modular.imageset/Contents.json @@ -0,0 +1,28 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json new file mode 100644 index 0000000..ed7de25 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Complication.complicationset/Utilitarian.imageset/Contents.json @@ -0,0 +1,28 @@ +{ + "images" : [ + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : "<=145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">161" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">145" + }, + { + "idiom" : "watch", + "scale" : "2x", + "screen-width" : ">183" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/Assets.xcassets/Contents.json b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/ComplicationController.swift b/watchOS/watchOS WatchKit Extension/ComplicationController.swift new file mode 100644 index 0000000..0bef9f8 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/ComplicationController.swift @@ -0,0 +1,52 @@ +import ClockKit + + +class ComplicationController: NSObject, CLKComplicationDataSource { + + // MARK: - Complication Configuration + + func getComplicationDescriptors(handler: @escaping ([CLKComplicationDescriptor]) -> Void) { + let descriptors = [ + CLKComplicationDescriptor(identifier: "complication", displayName: "watchOS", supportedFamilies: CLKComplicationFamily.allCases) + // Multiple complication support can be added here with more descriptors + ] + + // Call the handler with the currently supported complication descriptors + handler(descriptors) + } + + func handleSharedComplicationDescriptors(_ complicationDescriptors: [CLKComplicationDescriptor]) { + // Do any necessary work to support these newly shared complication descriptors + } + + // MARK: - Timeline Configuration + + func getTimelineEndDate(for complication: CLKComplication, withHandler handler: @escaping (Date?) -> Void) { + // Call the handler with the last entry date you can currently provide or nil if you can't support future timelines + handler(nil) + } + + func getPrivacyBehavior(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationPrivacyBehavior) -> Void) { + // Call the handler with your desired behavior when the device is locked + handler(.showOnLockScreen) + } + + // MARK: - Timeline Population + + func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { + // Call the handler with the current timeline entry + handler(nil) + } + + func getTimelineEntries(for complication: CLKComplication, after date: Date, limit: Int, withHandler handler: @escaping ([CLKComplicationTimelineEntry]?) -> Void) { + // Call the handler with the timeline entries after the given date + handler(nil) + } + + // MARK: - Sample Templates + + func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) { + // This method will be called once per supported complication, and the results will be cached + handler(nil) + } +} diff --git a/watchOS/watchOS WatchKit Extension/ContentView.swift b/watchOS/watchOS WatchKit Extension/ContentView.swift new file mode 100644 index 0000000..58e7c41 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/ContentView.swift @@ -0,0 +1,14 @@ +import SwiftUI + +struct ContentView: View { + var body: some View { + Text("Hello, World!") + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/watchOS/watchOS WatchKit Extension/Info.plist b/watchOS/watchOS WatchKit Extension/Info.plist new file mode 100644 index 0000000..5730de8 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Info.plist @@ -0,0 +1,38 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + watchOS WatchKit Extension + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + CLKComplicationPrincipalClass + $(PRODUCT_MODULE_NAME).ComplicationController + NSExtension + + NSExtensionAttributes + + WKAppBundleIdentifier + io.github.aakira.napier.watchOS.watchkitapp + + NSExtensionPointIdentifier + com.apple.watchkit + + WKWatchOnly + + + diff --git a/watchOS/watchOS WatchKit Extension/NotificationController.swift b/watchOS/watchOS WatchKit Extension/NotificationController.swift new file mode 100644 index 0000000..73fceb3 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/NotificationController.swift @@ -0,0 +1,26 @@ +import WatchKit +import SwiftUI +import UserNotifications + +class NotificationController: WKUserNotificationHostingController { + + override var body: NotificationView { + return NotificationView() + } + + override func willActivate() { + // This method is called when watch view controller is about to be visible to user + super.willActivate() + } + + override func didDeactivate() { + // This method is called when watch view controller is no longer visible + super.didDeactivate() + } + + override func didReceive(_ notification: UNNotification) { + // This method is called when a notification needs to be presented. + // Implement it if you use a dynamic notification interface. + // Populate your dynamic notification interface as quickly as possible. + } +} diff --git a/watchOS/watchOS WatchKit Extension/NotificationView.swift b/watchOS/watchOS WatchKit Extension/NotificationView.swift new file mode 100644 index 0000000..63211dd --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/NotificationView.swift @@ -0,0 +1,13 @@ +import SwiftUI + +struct NotificationView: View { + var body: some View { + Text("Hello, World!") + } +} + +struct NotificationView_Previews: PreviewProvider { + static var previews: some View { + NotificationView() + } +} diff --git a/watchOS/watchOS WatchKit Extension/Preview Content/Preview Assets.xcassets/Contents.json b/watchOS/watchOS WatchKit Extension/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/watchOS/watchOS WatchKit Extension/PushNotificationPayload.apns b/watchOS/watchOS WatchKit Extension/PushNotificationPayload.apns new file mode 100644 index 0000000..c18b00a --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/PushNotificationPayload.apns @@ -0,0 +1,20 @@ +{ + "aps": { + "alert": { + "body": "Test message", + "title": "Optional title", + "subtitle": "Optional subtitle" + }, + "category": "myCategory", + "thread-id": "5280" + }, + + "WatchKit Simulator Actions": [ + { + "title": "First Button", + "identifier": "firstButtonAction" + } + ], + + "customKey": "Use this file to define a testing payload for your notifications. The aps dictionary specifies the category, alert text and title. The WatchKit Simulator Actions array can provide info for one or more action buttons in addition to the standard Dismiss button. Any other top level keys are custom payload. If you have multiple such JSON files in your project, you'll be able to select them when choosing to debug the notification interface of your Watch App." +} diff --git a/watchOS/watchOS WatchKit Extension/watchOSApp.swift b/watchOS/watchOS WatchKit Extension/watchOSApp.swift new file mode 100644 index 0000000..60061ba --- /dev/null +++ b/watchOS/watchOS WatchKit Extension/watchOSApp.swift @@ -0,0 +1,24 @@ +import SwiftUI +import mpp_sample + +@main +struct watchOSApp: App { + + init() { + NapierProxyKt.debugBuild() + let sample = Sample() + sample.hello() + sample.suspendHelloKt() + sample.handleError() + } + + @SceneBuilder var body: some Scene { + WindowGroup { + NavigationView { + ContentView() + } + } + + WKNotificationScene(controller: NotificationController.self, category: "myCategory") + } +} diff --git a/watchOS/watchOS.xcodeproj/project.pbxproj b/watchOS/watchOS.xcodeproj/project.pbxproj new file mode 100644 index 0000000..81c4431 --- /dev/null +++ b/watchOS/watchOS.xcodeproj/project.pbxproj @@ -0,0 +1,1031 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1B4D3D0AF6AFE8450BCFD644 /* Pods_watchOS_WatchKit_Extension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86A1481A9834F41A2F16B1A3 /* Pods_watchOS_WatchKit_Extension.framework */; }; + 228584D8551835F999A19AA5 /* Pods_watchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C26AC213605AB4B014F275A /* Pods_watchOS.framework */; }; + 3D178DC926CA861800FC5FC3 /* watchOS WatchKit App.app in Embed Watch Content */ = {isa = PBXBuildFile; fileRef = 3D178DC826CA861800FC5FC3 /* watchOS WatchKit App.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 3D178DCE26CA861900FC5FC3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3D178DCD26CA861900FC5FC3 /* Assets.xcassets */; }; + 3D178DD526CA861900FC5FC3 /* watchOS WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 3D178DD426CA861900FC5FC3 /* watchOS WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 3D178DDA26CA861900FC5FC3 /* watchOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DD926CA861900FC5FC3 /* watchOSApp.swift */; }; + 3D178DDC26CA861900FC5FC3 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DDB26CA861900FC5FC3 /* ContentView.swift */; }; + 3D178DDE26CA861900FC5FC3 /* NotificationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DDD26CA861900FC5FC3 /* NotificationController.swift */; }; + 3D178DE026CA861900FC5FC3 /* NotificationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DDF26CA861900FC5FC3 /* NotificationView.swift */; }; + 3D178DE226CA861900FC5FC3 /* ComplicationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DE126CA861900FC5FC3 /* ComplicationController.swift */; }; + 3D178DE426CA861A00FC5FC3 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3D178DE326CA861A00FC5FC3 /* Assets.xcassets */; }; + 3D178DE726CA861A00FC5FC3 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3D178DE626CA861A00FC5FC3 /* Preview Assets.xcassets */; }; + 3D178DF326CA861A00FC5FC3 /* watchOSTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DF226CA861A00FC5FC3 /* watchOSTests.swift */; }; + 3D178DFE26CA861A00FC5FC3 /* watchOSUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D178DFD26CA861A00FC5FC3 /* watchOSUITests.swift */; }; + 3EFDD5A0DEF5AC16E1A72843 /* Pods_watchOS_watchOSUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B5E9156AA4A57B743A6C7A /* Pods_watchOS_watchOSUITests.framework */; }; + C247E1B44F319692FF2BEB28 /* Pods_watchOSTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DB8145DBF7BAC70EB488446 /* Pods_watchOSTests.framework */; }; + F14AE0DC0C447145EB6B5B38 /* Pods_watchOS_WatchKit_App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74D673C0316C1D7E8FD48AF3 /* Pods_watchOS_WatchKit_App.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 3D178DCA26CA861800FC5FC3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D178DBE26CA861800FC5FC3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3D178DC726CA861800FC5FC3; + remoteInfo = "watchOS WatchKit App"; + }; + 3D178DD626CA861900FC5FC3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D178DBE26CA861800FC5FC3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3D178DD326CA861900FC5FC3; + remoteInfo = "watchOS WatchKit Extension"; + }; + 3D178DEF26CA861A00FC5FC3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D178DBE26CA861800FC5FC3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3D178DD326CA861900FC5FC3; + remoteInfo = "watchOS WatchKit Extension"; + }; + 3D178DFA26CA861A00FC5FC3 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 3D178DBE26CA861800FC5FC3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3D178DC726CA861800FC5FC3; + remoteInfo = "watchOS WatchKit App"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 3D178E0526CA861A00FC5FC3 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 3D178DD526CA861900FC5FC3 /* watchOS WatchKit Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178E0926CA861A00FC5FC3 /* Embed Watch Content */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/Watch"; + dstSubfolderSpec = 16; + files = ( + 3D178DC926CA861800FC5FC3 /* watchOS WatchKit App.app in Embed Watch Content */, + ); + name = "Embed Watch Content"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 001F31778035258F2F137608 /* Pods-watchOS WatchKit App.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS WatchKit App.release.xcconfig"; path = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.release.xcconfig"; sourceTree = ""; }; + 091623C2A6E351665A17F4F7 /* Pods-watchOS-watchOSUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-watchOSUITests.debug.xcconfig"; path = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.debug.xcconfig"; sourceTree = ""; }; + 1DB8145DBF7BAC70EB488446 /* Pods_watchOSTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_watchOSTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 352D6FF90CA02B685F1CBE32 /* Pods-watchOS WatchKit Extension.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS WatchKit Extension.debug.xcconfig"; path = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.debug.xcconfig"; sourceTree = ""; }; + 3C26AC213605AB4B014F275A /* Pods_watchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_watchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DC426CA861800FC5FC3 /* watchOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = watchOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DC826CA861800FC5FC3 /* watchOS WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "watchOS WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DCD26CA861900FC5FC3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3D178DCF26CA861900FC5FC3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3D178DD426CA861900FC5FC3 /* watchOS WatchKit Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "watchOS WatchKit Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DD926CA861900FC5FC3 /* watchOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = watchOSApp.swift; sourceTree = ""; }; + 3D178DDB26CA861900FC5FC3 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 3D178DDD26CA861900FC5FC3 /* NotificationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationController.swift; sourceTree = ""; }; + 3D178DDF26CA861900FC5FC3 /* NotificationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationView.swift; sourceTree = ""; }; + 3D178DE126CA861900FC5FC3 /* ComplicationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComplicationController.swift; sourceTree = ""; }; + 3D178DE326CA861A00FC5FC3 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3D178DE626CA861A00FC5FC3 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 3D178DE826CA861A00FC5FC3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3D178DE926CA861A00FC5FC3 /* PushNotificationPayload.apns */ = {isa = PBXFileReference; lastKnownFileType = text; path = PushNotificationPayload.apns; sourceTree = ""; }; + 3D178DEE26CA861A00FC5FC3 /* watchOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = watchOSTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DF226CA861A00FC5FC3 /* watchOSTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = watchOSTests.swift; sourceTree = ""; }; + 3D178DF426CA861A00FC5FC3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 3D178DF926CA861A00FC5FC3 /* watchOSUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = watchOSUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3D178DFD26CA861A00FC5FC3 /* watchOSUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = watchOSUITests.swift; sourceTree = ""; }; + 3D178DFF26CA861A00FC5FC3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4F1213079D637786D63ADE2A /* Pods-watchOS WatchKit Extension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS WatchKit Extension.release.xcconfig"; path = "Target Support Files/Pods-watchOS WatchKit Extension/Pods-watchOS WatchKit Extension.release.xcconfig"; sourceTree = ""; }; + 600D98AF6220105D02CCE51B /* Pods-watchOS WatchKit App.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS WatchKit App.debug.xcconfig"; path = "Target Support Files/Pods-watchOS WatchKit App/Pods-watchOS WatchKit App.debug.xcconfig"; sourceTree = ""; }; + 61D67141901C18809291BDB5 /* Pods-watchOSTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOSTests.debug.xcconfig"; path = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests.debug.xcconfig"; sourceTree = ""; }; + 6EC3B27DC32CA5DF9210AB97 /* Pods-watchOSTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOSTests.release.xcconfig"; path = "Target Support Files/Pods-watchOSTests/Pods-watchOSTests.release.xcconfig"; sourceTree = ""; }; + 74D673C0316C1D7E8FD48AF3 /* Pods_watchOS_WatchKit_App.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_watchOS_WatchKit_App.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8527CBB4447A65D5973155C8 /* Pods-watchOS-watchOSUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS-watchOSUITests.release.xcconfig"; path = "Target Support Files/Pods-watchOS-watchOSUITests/Pods-watchOS-watchOSUITests.release.xcconfig"; sourceTree = ""; }; + 86A1481A9834F41A2F16B1A3 /* Pods_watchOS_WatchKit_Extension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_watchOS_WatchKit_Extension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9C10860CC5560FD04880CA88 /* Pods-watchOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS.release.xcconfig"; path = "Target Support Files/Pods-watchOS/Pods-watchOS.release.xcconfig"; sourceTree = ""; }; + F0B5E9156AA4A57B743A6C7A /* Pods_watchOS_watchOSUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_watchOS_watchOSUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FB84CB0F69D669078368954A /* Pods-watchOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-watchOS.debug.xcconfig"; path = "Target Support Files/Pods-watchOS/Pods-watchOS.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3D178DD126CA861900FC5FC3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1B4D3D0AF6AFE8450BCFD644 /* Pods_watchOS_WatchKit_Extension.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DEB26CA861A00FC5FC3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C247E1B44F319692FF2BEB28 /* Pods_watchOSTests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DF626CA861A00FC5FC3 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3EFDD5A0DEF5AC16E1A72843 /* Pods_watchOS_watchOSUITests.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 63FF231FB1BE5382DFCC9B7C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F14AE0DC0C447145EB6B5B38 /* Pods_watchOS_WatchKit_App.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C641C1F40095975E4C686120 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 228584D8551835F999A19AA5 /* Pods_watchOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3D178DBD26CA861800FC5FC3 = { + isa = PBXGroup; + children = ( + 3D178DCC26CA861800FC5FC3 /* watchOS WatchKit App */, + 3D178DD826CA861900FC5FC3 /* watchOS WatchKit Extension */, + 3D178DF126CA861A00FC5FC3 /* watchOSTests */, + 3D178DFC26CA861A00FC5FC3 /* watchOSUITests */, + 3D178DC526CA861800FC5FC3 /* Products */, + 68783D1BE47ABB24AB5AEE1C /* Pods */, + 4CCBED2703C1AD34B8B580CE /* Frameworks */, + ); + sourceTree = ""; + }; + 3D178DC526CA861800FC5FC3 /* Products */ = { + isa = PBXGroup; + children = ( + 3D178DC426CA861800FC5FC3 /* watchOS.app */, + 3D178DC826CA861800FC5FC3 /* watchOS WatchKit App.app */, + 3D178DD426CA861900FC5FC3 /* watchOS WatchKit Extension.appex */, + 3D178DEE26CA861A00FC5FC3 /* watchOSTests.xctest */, + 3D178DF926CA861A00FC5FC3 /* watchOSUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 3D178DCC26CA861800FC5FC3 /* watchOS WatchKit App */ = { + isa = PBXGroup; + children = ( + 3D178DCD26CA861900FC5FC3 /* Assets.xcassets */, + 3D178DCF26CA861900FC5FC3 /* Info.plist */, + ); + path = "watchOS WatchKit App"; + sourceTree = ""; + }; + 3D178DD826CA861900FC5FC3 /* watchOS WatchKit Extension */ = { + isa = PBXGroup; + children = ( + 3D178DD926CA861900FC5FC3 /* watchOSApp.swift */, + 3D178DDB26CA861900FC5FC3 /* ContentView.swift */, + 3D178DDD26CA861900FC5FC3 /* NotificationController.swift */, + 3D178DDF26CA861900FC5FC3 /* NotificationView.swift */, + 3D178DE126CA861900FC5FC3 /* ComplicationController.swift */, + 3D178DE326CA861A00FC5FC3 /* Assets.xcassets */, + 3D178DE826CA861A00FC5FC3 /* Info.plist */, + 3D178DE926CA861A00FC5FC3 /* PushNotificationPayload.apns */, + 3D178DE526CA861A00FC5FC3 /* Preview Content */, + ); + path = "watchOS WatchKit Extension"; + sourceTree = ""; + }; + 3D178DE526CA861A00FC5FC3 /* Preview Content */ = { + isa = PBXGroup; + children = ( + 3D178DE626CA861A00FC5FC3 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + 3D178DF126CA861A00FC5FC3 /* watchOSTests */ = { + isa = PBXGroup; + children = ( + 3D178DF226CA861A00FC5FC3 /* watchOSTests.swift */, + 3D178DF426CA861A00FC5FC3 /* Info.plist */, + ); + path = watchOSTests; + sourceTree = ""; + }; + 3D178DFC26CA861A00FC5FC3 /* watchOSUITests */ = { + isa = PBXGroup; + children = ( + 3D178DFD26CA861A00FC5FC3 /* watchOSUITests.swift */, + 3D178DFF26CA861A00FC5FC3 /* Info.plist */, + ); + path = watchOSUITests; + sourceTree = ""; + }; + 4CCBED2703C1AD34B8B580CE /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3C26AC213605AB4B014F275A /* Pods_watchOS.framework */, + 74D673C0316C1D7E8FD48AF3 /* Pods_watchOS_WatchKit_App.framework */, + 86A1481A9834F41A2F16B1A3 /* Pods_watchOS_WatchKit_Extension.framework */, + F0B5E9156AA4A57B743A6C7A /* Pods_watchOS_watchOSUITests.framework */, + 1DB8145DBF7BAC70EB488446 /* Pods_watchOSTests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 68783D1BE47ABB24AB5AEE1C /* Pods */ = { + isa = PBXGroup; + children = ( + FB84CB0F69D669078368954A /* Pods-watchOS.debug.xcconfig */, + 9C10860CC5560FD04880CA88 /* Pods-watchOS.release.xcconfig */, + 600D98AF6220105D02CCE51B /* Pods-watchOS WatchKit App.debug.xcconfig */, + 001F31778035258F2F137608 /* Pods-watchOS WatchKit App.release.xcconfig */, + 352D6FF90CA02B685F1CBE32 /* Pods-watchOS WatchKit Extension.debug.xcconfig */, + 4F1213079D637786D63ADE2A /* Pods-watchOS WatchKit Extension.release.xcconfig */, + 091623C2A6E351665A17F4F7 /* Pods-watchOS-watchOSUITests.debug.xcconfig */, + 8527CBB4447A65D5973155C8 /* Pods-watchOS-watchOSUITests.release.xcconfig */, + 61D67141901C18809291BDB5 /* Pods-watchOSTests.debug.xcconfig */, + 6EC3B27DC32CA5DF9210AB97 /* Pods-watchOSTests.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3D178DC326CA861800FC5FC3 /* watchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D178E0A26CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS" */; + buildPhases = ( + F015394FE1310EDD3A11A4F5 /* [CP] Check Pods Manifest.lock */, + 3D178DC226CA861800FC5FC3 /* Resources */, + 3D178E0926CA861A00FC5FC3 /* Embed Watch Content */, + C641C1F40095975E4C686120 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3D178DCB26CA861800FC5FC3 /* PBXTargetDependency */, + ); + name = watchOS; + productName = watchOS; + productReference = 3D178DC426CA861800FC5FC3 /* watchOS.app */; + productType = "com.apple.product-type.application.watchapp2-container"; + }; + 3D178DC726CA861800FC5FC3 /* watchOS WatchKit App */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D178E0626CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS WatchKit App" */; + buildPhases = ( + 5EB8AD24914CEC09C944576C /* [CP] Check Pods Manifest.lock */, + 3D178DC626CA861800FC5FC3 /* Resources */, + 3D178E0526CA861A00FC5FC3 /* Embed App Extensions */, + 63FF231FB1BE5382DFCC9B7C /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3D178DD726CA861900FC5FC3 /* PBXTargetDependency */, + ); + name = "watchOS WatchKit App"; + productName = "watchOS WatchKit App"; + productReference = 3D178DC826CA861800FC5FC3 /* watchOS WatchKit App.app */; + productType = "com.apple.product-type.application.watchapp2"; + }; + 3D178DD326CA861900FC5FC3 /* watchOS WatchKit Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D178E0226CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS WatchKit Extension" */; + buildPhases = ( + E03D0D536D53B314D1A31684 /* [CP] Check Pods Manifest.lock */, + 3DDD56D926CAC26F00287FF2 /* Build Kotlin/Native */, + 3D178DD026CA861900FC5FC3 /* Sources */, + 3D178DD126CA861900FC5FC3 /* Frameworks */, + 3D178DD226CA861900FC5FC3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "watchOS WatchKit Extension"; + productName = "watchOS WatchKit Extension"; + productReference = 3D178DD426CA861900FC5FC3 /* watchOS WatchKit Extension.appex */; + productType = "com.apple.product-type.watchkit2-extension"; + }; + 3D178DED26CA861A00FC5FC3 /* watchOSTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D178E0D26CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOSTests" */; + buildPhases = ( + 4022ED38BAD65CA2C485C87C /* [CP] Check Pods Manifest.lock */, + 3D178DEA26CA861A00FC5FC3 /* Sources */, + 3D178DEB26CA861A00FC5FC3 /* Frameworks */, + 3D178DEC26CA861A00FC5FC3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3D178DF026CA861A00FC5FC3 /* PBXTargetDependency */, + ); + name = watchOSTests; + productName = watchOSTests; + productReference = 3D178DEE26CA861A00FC5FC3 /* watchOSTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 3D178DF826CA861A00FC5FC3 /* watchOSUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3D178E1026CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOSUITests" */; + buildPhases = ( + CED8D6C05BE598F7D0535E7B /* [CP] Check Pods Manifest.lock */, + 3D178DF526CA861A00FC5FC3 /* Sources */, + 3D178DF626CA861A00FC5FC3 /* Frameworks */, + 3D178DF726CA861A00FC5FC3 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 3D178DFB26CA861A00FC5FC3 /* PBXTargetDependency */, + ); + name = watchOSUITests; + productName = watchOSUITests; + productReference = 3D178DF926CA861A00FC5FC3 /* watchOSUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 3D178DBE26CA861800FC5FC3 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1250; + LastUpgradeCheck = 1250; + TargetAttributes = { + 3D178DC326CA861800FC5FC3 = { + CreatedOnToolsVersion = 12.5.1; + }; + 3D178DC726CA861800FC5FC3 = { + CreatedOnToolsVersion = 12.5.1; + }; + 3D178DD326CA861900FC5FC3 = { + CreatedOnToolsVersion = 12.5.1; + }; + 3D178DED26CA861A00FC5FC3 = { + CreatedOnToolsVersion = 12.5.1; + TestTargetID = 3D178DD326CA861900FC5FC3; + }; + 3D178DF826CA861A00FC5FC3 = { + CreatedOnToolsVersion = 12.5.1; + TestTargetID = 3D178DC726CA861800FC5FC3; + }; + }; + }; + buildConfigurationList = 3D178DC126CA861800FC5FC3 /* Build configuration list for PBXProject "watchOS" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 3D178DBD26CA861800FC5FC3; + productRefGroup = 3D178DC526CA861800FC5FC3 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3D178DC326CA861800FC5FC3 /* watchOS */, + 3D178DC726CA861800FC5FC3 /* watchOS WatchKit App */, + 3D178DD326CA861900FC5FC3 /* watchOS WatchKit Extension */, + 3D178DED26CA861A00FC5FC3 /* watchOSTests */, + 3D178DF826CA861A00FC5FC3 /* watchOSUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3D178DC226CA861800FC5FC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DC626CA861800FC5FC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D178DCE26CA861900FC5FC3 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DD226CA861900FC5FC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D178DE726CA861A00FC5FC3 /* Preview Assets.xcassets in Resources */, + 3D178DE426CA861A00FC5FC3 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DEC26CA861A00FC5FC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DF726CA861A00FC5FC3 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3DDD56D926CAC26F00287FF2 /* Build Kotlin/Native */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "Build Kotlin/Native"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd $SRCROOT/..\n./gradlew :mpp-sample:compileKotlinWatchosX64\n"; + }; + 4022ED38BAD65CA2C485C87C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-watchOSTests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 5EB8AD24914CEC09C944576C /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-watchOS WatchKit App-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + CED8D6C05BE598F7D0535E7B /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-watchOS-watchOSUITests-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + E03D0D536D53B314D1A31684 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-watchOS WatchKit Extension-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + F015394FE1310EDD3A11A4F5 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-watchOS-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3D178DD026CA861900FC5FC3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D178DDE26CA861900FC5FC3 /* NotificationController.swift in Sources */, + 3D178DDC26CA861900FC5FC3 /* ContentView.swift in Sources */, + 3D178DE226CA861900FC5FC3 /* ComplicationController.swift in Sources */, + 3D178DDA26CA861900FC5FC3 /* watchOSApp.swift in Sources */, + 3D178DE026CA861900FC5FC3 /* NotificationView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DEA26CA861A00FC5FC3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D178DF326CA861A00FC5FC3 /* watchOSTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 3D178DF526CA861A00FC5FC3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D178DFE26CA861A00FC5FC3 /* watchOSUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3D178DCB26CA861800FC5FC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3D178DC726CA861800FC5FC3 /* watchOS WatchKit App */; + targetProxy = 3D178DCA26CA861800FC5FC3 /* PBXContainerItemProxy */; + }; + 3D178DD726CA861900FC5FC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3D178DD326CA861900FC5FC3 /* watchOS WatchKit Extension */; + targetProxy = 3D178DD626CA861900FC5FC3 /* PBXContainerItemProxy */; + }; + 3D178DF026CA861A00FC5FC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3D178DD326CA861900FC5FC3 /* watchOS WatchKit Extension */; + targetProxy = 3D178DEF26CA861A00FC5FC3 /* PBXContainerItemProxy */; + }; + 3D178DFB26CA861A00FC5FC3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 3D178DC726CA861800FC5FC3 /* watchOS WatchKit App */; + targetProxy = 3D178DFA26CA861A00FC5FC3 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 3D178E0026CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 3D178E0126CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3D178E0326CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 352D6FF90CA02B685F1CBE32 /* Pods-watchOS WatchKit Extension.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"watchOS WatchKit Extension/Preview Content\""; + ENABLE_PREVIEWS = YES; + EXCLUDED_ARCHS = arm64; + INFOPLIST_FILE = "watchOS WatchKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + 3D178E0426CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4F1213079D637786D63ADE2A /* Pods-watchOS WatchKit Extension.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_COMPLICATION_NAME = Complication; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"watchOS WatchKit Extension/Preview Content\""; + ENABLE_PREVIEWS = YES; + EXCLUDED_ARCHS = arm64; + INFOPLIST_FILE = "watchOS WatchKit Extension/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@executable_path/../../Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS.watchkitapp.watchkitextension; + PRODUCT_NAME = "${TARGET_NAME}"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + 3D178E0726CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 600D98AF6220105D02CCE51B /* Pods-watchOS WatchKit App.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + EXCLUDED_ARCHS = arm64; + IBSC_MODULE = watchOS_WatchKit_Extension; + INFOPLIST_FILE = "watchOS WatchKit App/Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + 3D178E0826CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 001F31778035258F2F137608 /* Pods-watchOS WatchKit App.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + EXCLUDED_ARCHS = arm64; + IBSC_MODULE = watchOS_WatchKit_Extension; + INFOPLIST_FILE = "watchOS WatchKit App/Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS.watchkitapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + 3D178E0B26CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FB84CB0F69D669078368954A /* Pods-watchOS.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + EXCLUDED_ARCHS = arm64e; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 3D178E0C26CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9C10860CC5560FD04880CA88 /* Pods-watchOS.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + EXCLUDED_ARCHS = arm64e; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOS; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 3D178E0E26CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 61D67141901C18809291BDB5 /* Pods-watchOSTests.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = watchOSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOSTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/watchOS WatchKit Extension.appex/watchOS WatchKit Extension"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + 3D178E0F26CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6EC3B27DC32CA5DF9210AB97 /* Pods-watchOSTests.release.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = watchOSTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOSTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/watchOS WatchKit Extension.appex/watchOS WatchKit Extension"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; + 3D178E1126CA861A00FC5FC3 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 091623C2A6E351665A17F4F7 /* Pods-watchOS-watchOSUITests.debug.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = watchOSUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOSUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_TARGET_NAME = "watchOS WatchKit App"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Debug; + }; + 3D178E1226CA861A00FC5FC3 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8527CBB4447A65D5973155C8 /* Pods-watchOS-watchOSUITests.release.xcconfig */; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = watchOSUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = io.github.aakira.napier.watchOSUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = watchos; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = 4; + TEST_TARGET_NAME = "watchOS WatchKit App"; + WATCHOS_DEPLOYMENT_TARGET = 7.4; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3D178DC126CA861800FC5FC3 /* Build configuration list for PBXProject "watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E0026CA861A00FC5FC3 /* Debug */, + 3D178E0126CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3D178E0226CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS WatchKit Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E0326CA861A00FC5FC3 /* Debug */, + 3D178E0426CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3D178E0626CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS WatchKit App" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E0726CA861A00FC5FC3 /* Debug */, + 3D178E0826CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3D178E0A26CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E0B26CA861A00FC5FC3 /* Debug */, + 3D178E0C26CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3D178E0D26CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOSTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E0E26CA861A00FC5FC3 /* Debug */, + 3D178E0F26CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3D178E1026CA861A00FC5FC3 /* Build configuration list for PBXNativeTarget "watchOSUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3D178E1126CA861A00FC5FC3 /* Debug */, + 3D178E1226CA861A00FC5FC3 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 3D178DBE26CA861800FC5FC3 /* Project object */; +} diff --git a/watchOS/watchOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/watchOS/watchOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/watchOS/watchOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/watchOS/watchOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/watchOS/watchOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/watchOS/watchOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/watchOS/watchOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate b/watchOS/watchOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..1aa0389 Binary files /dev/null and b/watchOS/watchOS.xcodeproj/project.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/watchOS/watchOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist b/watchOS/watchOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..9839728 --- /dev/null +++ b/watchOS/watchOS.xcodeproj/xcuserdata/aakira.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ + + + + + SchemeUserState + + watchOS WatchKit App (Complication).xcscheme_^#shared#^_ + + orderHint + 8 + + watchOS WatchKit App (Notification).xcscheme_^#shared#^_ + + orderHint + 7 + + watchOS WatchKit App.xcscheme_^#shared#^_ + + orderHint + 6 + + + + diff --git a/watchOS/watchOS.xcworkspace/contents.xcworkspacedata b/watchOS/watchOS.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..e245369 --- /dev/null +++ b/watchOS/watchOS.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/watchOS/watchOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/watchOS/watchOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/watchOS/watchOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/watchOS/watchOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate b/watchOS/watchOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..f75d7bc Binary files /dev/null and b/watchOS/watchOS.xcworkspace/xcuserdata/aakira.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/watchOS/watchOSTests/Info.plist b/watchOS/watchOSTests/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/watchOS/watchOSTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/watchOS/watchOSTests/watchOSTests.swift b/watchOS/watchOSTests/watchOSTests.swift new file mode 100644 index 0000000..feaf4ac --- /dev/null +++ b/watchOS/watchOSTests/watchOSTests.swift @@ -0,0 +1,26 @@ +import XCTest +@testable import watchOS_WatchKit_Extension + +class watchOSTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/watchOS/watchOSUITests/Info.plist b/watchOS/watchOSUITests/Info.plist new file mode 100644 index 0000000..64d65ca --- /dev/null +++ b/watchOS/watchOSUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/watchOS/watchOSUITests/watchOSUITests.swift b/watchOS/watchOSUITests/watchOSUITests.swift new file mode 100644 index 0000000..64f374b --- /dev/null +++ b/watchOS/watchOSUITests/watchOSUITests.swift @@ -0,0 +1,35 @@ +import XCTest + +class watchOSUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use recording to get started writing UI tests. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +}