diff --git a/.github/workflows/ios-browserstack.yml b/.github/workflows/ios-browserstack.yml index 37f23baa..32ecd694 100644 --- a/.github/workflows/ios-browserstack.yml +++ b/.github/workflows/ios-browserstack.yml @@ -35,9 +35,6 @@ jobs: - run: pip3 install requests - - name: Install Cocoapods - run: gem install cocoapods - - name: Make build dir run: mkdir ddp @@ -49,9 +46,6 @@ jobs: - name: Copy test_resources run: ./copy_test_resources.sh - - name: Run Cocoapods - run: pod install - - name: Inject AccessKey run: sed -i '.bak' 's:{TESTING_ACCESS_KEY_HERE}:${{secrets.PV_VALID_ACCESS_KEY}}:' OrcaAppTestUITests/BaseTest.swift @@ -59,7 +53,7 @@ jobs: - name: XCode Build run: xcrun xcodebuild build-for-testing -configuration Debug - -workspace OrcaAppTest.xcworkspace + -project OrcaAppTest.xcodeproj -sdk iphoneos -scheme OrcaAppTest -derivedDataPath ddp diff --git a/.github/workflows/ios-demos.yml b/.github/workflows/ios-demos.yml index 3e6e3b13..7ec78870 100644 --- a/.github/workflows/ios-demos.yml +++ b/.github/workflows/ios-demos.yml @@ -26,24 +26,10 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Set up Node.js LTS - uses: actions/setup-node@v3 - with: - node-version: lts/* - - - name: Install Cocoapods - run: gem install cocoapods - - - name: Make build dir - run: mkdir ddp - - - name: Run Cocoapods - run: pod install - - name: Build Demo run: xcrun xcodebuild build -configuration Debug - -workspace OrcaDemo.xcworkspace + -project OrcaDemo.xcodeproj -sdk iphoneos -scheme OrcaDemo -derivedDataPath ddp diff --git a/.github/workflows/ios-perf.yml b/.github/workflows/ios-perf.yml index 22be7334..2f77e57b 100644 --- a/.github/workflows/ios-perf.yml +++ b/.github/workflows/ios-perf.yml @@ -42,18 +42,12 @@ jobs: - run: pip3 install requests - - name: Install Cocoapods - run: gem install cocoapods - - name: Make build dir run: mkdir ddp - name: Copy test_resources run: ./copy_test_resources.sh - - name: Run Cocoapods - run: pod install - - name: Inject AccessKey run: sed -i '.bak' 's:{TESTING_ACCESS_KEY_HERE}:${{secrets.PV_VALID_ACCESS_KEY}}:' OrcaAppTestUITests/BaseTest.swift @@ -64,13 +58,13 @@ jobs: - name: Inject Performance Threshold run: sed -i '.bak' - '1,/{PERFORMANCE_THRESHOLD_SEC}/s/{PERFORMANCE_THRESHOLD_SEC}/${{ matrix.performanceThresholdSec }}/' + '1,/{PROC_PERFORMANCE_THRESHOLD_SEC}/s/{PROC_PERFORMANCE_THRESHOLD_SEC}/${{ matrix.performanceThresholdSec }}/' PerformanceTest/PerformanceTest.swift - name: XCode Build run: xcrun xcodebuild build-for-testing -configuration Debug - -workspace OrcaAppTest.xcworkspace + -project OrcaAppTest.xcodeproj -sdk iphoneos -scheme PerformanceTest -derivedDataPath ddp diff --git a/.gitignore b/.gitignore index 3d725761..19b7d62c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ .DS_Store -.idea \ No newline at end of file +.idea +.build +Package.resolved +.swiftpm \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 41039694..b9c281ba 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,3 @@ [submodule "demo/c/dr_libs"] path = demo/c/dr_libs - url = ../../mackron/dr_libs.git \ No newline at end of file + url = https://github.com/mackron/dr_libs.git \ No newline at end of file diff --git a/Package.swift b/Package.swift new file mode 100644 index 00000000..c31450cc --- /dev/null +++ b/Package.swift @@ -0,0 +1,33 @@ +// swift-tools-version:5.3 +import PackageDescription +let package = Package( + name: "Orca-iOS", + platforms: [ + .iOS(.v13) + ], + products: [ + .library( + name: "Orca", + targets: ["Orca"] + ) + ], + targets: [ + .binaryTarget( + name: "PvOrca", + path: "lib/ios/PvOrca.xcframework" + ), + .target( + name: "Orca", + dependencies: ["PvOrca"], + path: ".", + exclude: [ + "binding/ios/OrcaAppTest", + "demo" + ], + sources: [ + "binding/ios/Orca.swift", + "binding/ios/OrcaErrors.swift" + ] + ) + ] +) diff --git a/binding/ios/Orca-iOS.podspec b/binding/ios/Orca-iOS.podspec index a3f60fa0..24afce00 100644 --- a/binding/ios/Orca-iOS.podspec +++ b/binding/ios/Orca-iOS.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = 'Orca-iOS' s.module_name = 'Orca' - s.version = '1.0.0' + s.version = '1.0.1' s.license = {:type => 'Apache 2.0'} s.summary = 'iOS binding for Picovoice\'s Orca Text-to-Speech Engine.' s.description = @@ -18,7 +18,7 @@ Pod::Spec.new do |s| DESC s.homepage = 'https://github.com/Picovoice/orca/tree/main/binding/ios' s.author = { 'Picovoice' => 'hello@picovoice.ai' } - s.source = { :git => "https://github.com/Picovoice/orca.git", :tag => "Orca-iOS-v1.0.0" } + s.source = { :git => "https://github.com/Picovoice/orca.git", :tag => s.version.to_s } s.ios.deployment_target = '13.0' s.swift_version = '5.0' s.vendored_frameworks = 'lib/ios/PvOrca.xcframework' diff --git a/binding/ios/Orca.swift b/binding/ios/Orca.swift index 5fa0202e..ad8d5408 100644 --- a/binding/ios/Orca.swift +++ b/binding/ios/Orca.swift @@ -7,6 +7,8 @@ // specific language governing permissions and limitations under the License. // +import Foundation + import PvOrca public struct OrcaPhoneme { diff --git a/binding/ios/OrcaAppTest/OrcaAppTest.xcodeproj/project.pbxproj b/binding/ios/OrcaAppTest/OrcaAppTest.xcodeproj/project.pbxproj index ff066e32..35fff480 100644 --- a/binding/ios/OrcaAppTest/OrcaAppTest.xcodeproj/project.pbxproj +++ b/binding/ios/OrcaAppTest/OrcaAppTest.xcodeproj/project.pbxproj @@ -18,10 +18,9 @@ 1EAEDDE12B745E6A003B8C18 /* BaseTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EAEDDDF2B745E6A003B8C18 /* BaseTest.swift */; }; 1EAEDDE32B76A9DB003B8C18 /* test_resources in Resources */ = {isa = PBXBuildFile; fileRef = 1EAEDDE22B76A9DB003B8C18 /* test_resources */; }; 1EAEDDE42B76A9DB003B8C18 /* test_resources in Resources */ = {isa = PBXBuildFile; fileRef = 1EAEDDE22B76A9DB003B8C18 /* test_resources */; }; - 1F5456F1ABF15D6BBF501EFF /* libPods-PerformanceTest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 058E26F515F02E02B119F1EC /* libPods-PerformanceTest.a */; }; - 4BBFF5433BEE1ED5C7D5070F /* libPods-OrcaAppTestUITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B766C8F48740C4B780EC15F /* libPods-OrcaAppTestUITests.a */; }; - 6A9164E4B0B1626D27DBA0A1 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; }; - 918B5B3AE3470D18CEC7EE3F /* libPods-OrcaAppTest.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C853E8FBBDACFDBBD873D739 /* libPods-OrcaAppTest.a */; }; + 6A9164E4B0B1626D27DBA0A1 /* (null) in Frameworks */ = {isa = PBXBuildFile; }; + E109D19E2CFE4DBC0014F5AA /* Orca in Frameworks */ = {isa = PBXBuildFile; productRef = E109D19D2CFE4DBC0014F5AA /* Orca */; }; + E109D1A02CFE4DBF0014F5AA /* Orca in Frameworks */ = {isa = PBXBuildFile; productRef = E109D19F2CFE4DBF0014F5AA /* Orca */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -42,8 +41,6 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 03C0CE0A935FE6DA043E7BE0 /* Pods-OrcaAppTest.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaAppTest.debug.xcconfig"; path = "Target Support Files/Pods-OrcaAppTest/Pods-OrcaAppTest.debug.xcconfig"; sourceTree = ""; }; - 058E26F515F02E02B119F1EC /* libPods-PerformanceTest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PerformanceTest.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 1E00644827CEDF9B006FF6E9 /* OrcaAppTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OrcaAppTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1E00644B27CEDF9B006FF6E9 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 1E00644F27CEDF9B006FF6E9 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -59,13 +56,6 @@ 1E5B7AEF2800B2E300F8BDDB /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 1EAEDDDF2B745E6A003B8C18 /* BaseTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTest.swift; sourceTree = ""; }; 1EAEDDE22B76A9DB003B8C18 /* test_resources */ = {isa = PBXFileReference; lastKnownFileType = folder; path = test_resources; sourceTree = ""; }; - 4B766C8F48740C4B780EC15F /* libPods-OrcaAppTestUITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OrcaAppTestUITests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 6912537E4CD8278005FA2AB6 /* Pods-PerformanceTest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PerformanceTest.release.xcconfig"; path = "Target Support Files/Pods-PerformanceTest/Pods-PerformanceTest.release.xcconfig"; sourceTree = ""; }; - 6F73701FE51DC1C6DF054890 /* Pods-PerformanceTest.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PerformanceTest.debug.xcconfig"; path = "Target Support Files/Pods-PerformanceTest/Pods-PerformanceTest.debug.xcconfig"; sourceTree = ""; }; - ABBA4B73A0322098CBEC5924 /* Pods-OrcaAppTestUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaAppTestUITests.release.xcconfig"; path = "Target Support Files/Pods-OrcaAppTestUITests/Pods-OrcaAppTestUITests.release.xcconfig"; sourceTree = ""; }; - ACAC7A21A5860A222D16D03A /* Pods-OrcaAppTest.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaAppTest.release.xcconfig"; path = "Target Support Files/Pods-OrcaAppTest/Pods-OrcaAppTest.release.xcconfig"; sourceTree = ""; }; - C853E8FBBDACFDBBD873D739 /* libPods-OrcaAppTest.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OrcaAppTest.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E30EA9006E0548D0310B2E3A /* Pods-OrcaAppTestUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaAppTestUITests.debug.xcconfig"; path = "Target Support Files/Pods-OrcaAppTestUITests/Pods-OrcaAppTestUITests.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -73,7 +63,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 918B5B3AE3470D18CEC7EE3F /* libPods-OrcaAppTest.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -81,8 +70,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6A9164E4B0B1626D27DBA0A1 /* BuildFile in Frameworks */, - 4BBFF5433BEE1ED5C7D5070F /* libPods-OrcaAppTestUITests.a in Frameworks */, + 6A9164E4B0B1626D27DBA0A1 /* (null) in Frameworks */, + E109D19E2CFE4DBC0014F5AA /* Orca in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -90,7 +79,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1F5456F1ABF15D6BBF501EFF /* libPods-PerformanceTest.a in Frameworks */, + E109D1A02CFE4DBF0014F5AA /* Orca in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -104,9 +93,8 @@ 1E5B7ADD2800B28C00F8BDDB /* PerformanceTest */, 1E00644A27CEDF9B006FF6E9 /* OrcaAppTest */, 1E00646B27CEDF9C006FF6E9 /* OrcaAppTestUITests */, + E109D19C2CFE4DBC0014F5AA /* Frameworks */, 1E00644927CEDF9B006FF6E9 /* Products */, - FA7D97C92E04F06D3273CCF3 /* Pods */, - 6ED9242E30E73A66AD589758 /* Frameworks */, ); sourceTree = ""; }; @@ -152,29 +140,13 @@ path = PerformanceTest; sourceTree = ""; }; - 6ED9242E30E73A66AD589758 /* Frameworks */ = { + E109D19C2CFE4DBC0014F5AA /* Frameworks */ = { isa = PBXGroup; children = ( - C853E8FBBDACFDBBD873D739 /* libPods-OrcaAppTest.a */, - 4B766C8F48740C4B780EC15F /* libPods-OrcaAppTestUITests.a */, - 058E26F515F02E02B119F1EC /* libPods-PerformanceTest.a */, ); name = Frameworks; sourceTree = ""; }; - FA7D97C92E04F06D3273CCF3 /* Pods */ = { - isa = PBXGroup; - children = ( - 03C0CE0A935FE6DA043E7BE0 /* Pods-OrcaAppTest.debug.xcconfig */, - ACAC7A21A5860A222D16D03A /* Pods-OrcaAppTest.release.xcconfig */, - E30EA9006E0548D0310B2E3A /* Pods-OrcaAppTestUITests.debug.xcconfig */, - ABBA4B73A0322098CBEC5924 /* Pods-OrcaAppTestUITests.release.xcconfig */, - 6F73701FE51DC1C6DF054890 /* Pods-PerformanceTest.debug.xcconfig */, - 6912537E4CD8278005FA2AB6 /* Pods-PerformanceTest.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -182,11 +154,9 @@ isa = PBXNativeTarget; buildConfigurationList = 1E00647227CEDF9C006FF6E9 /* Build configuration list for PBXNativeTarget "OrcaAppTest" */; buildPhases = ( - E428D99F4C1179AF0A93FF51 /* [CP] Check Pods Manifest.lock */, 1E00644427CEDF9B006FF6E9 /* Sources */, 1E00644527CEDF9B006FF6E9 /* Frameworks */, 1E00644627CEDF9B006FF6E9 /* Resources */, - C8D12D9BE774ED58ABA1FF45 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -201,11 +171,9 @@ isa = PBXNativeTarget; buildConfigurationList = 1E00647827CEDF9C006FF6E9 /* Build configuration list for PBXNativeTarget "OrcaAppTestUITests" */; buildPhases = ( - 468A10AEF25E811ADB64A584 /* [CP] Check Pods Manifest.lock */, 1E00646427CEDF9C006FF6E9 /* Sources */, 1E00646527CEDF9C006FF6E9 /* Frameworks */, 1E00646627CEDF9C006FF6E9 /* Resources */, - C88D4DAF8C8059AE1BBD1DE2 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -221,11 +189,9 @@ isa = PBXNativeTarget; buildConfigurationList = 1E5B7AE92800B29F00F8BDDB /* Build configuration list for PBXNativeTarget "PerformanceTest" */; buildPhases = ( - FF3A6DEB00D6B25C80EF3B3D /* [CP] Check Pods Manifest.lock */, 1E5B7AE22800B29F00F8BDDB /* Sources */, 1E5B7AE42800B29F00F8BDDB /* Frameworks */, 1E5B7AE62800B29F00F8BDDB /* Resources */, - 46472F778FE419499A60120C /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -269,6 +235,9 @@ Base, ); mainGroup = 1E00643F27CEDF9B006FF6E9; + packageReferences = ( + E1F352FD2D00ECD60069B0E6 /* XCRemoteSwiftPackageReference "orca" */, + ); productRefGroup = 1E00644927CEDF9B006FF6E9 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -309,126 +278,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 46472F778FE419499A60120C /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-PerformanceTest/Pods-PerformanceTest-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-PerformanceTest/Pods-PerformanceTest-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PerformanceTest/Pods-PerformanceTest-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 468A10AEF25E811ADB64A584 /* [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-OrcaAppTestUITests-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; - }; - C88D4DAF8C8059AE1BBD1DE2 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaAppTestUITests/Pods-OrcaAppTestUITests-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaAppTestUITests/Pods-OrcaAppTestUITests-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OrcaAppTestUITests/Pods-OrcaAppTestUITests-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C8D12D9BE774ED58ABA1FF45 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaAppTest/Pods-OrcaAppTest-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaAppTest/Pods-OrcaAppTest-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OrcaAppTest/Pods-OrcaAppTest-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - E428D99F4C1179AF0A93FF51 /* [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-OrcaAppTest-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; - }; - FF3A6DEB00D6B25C80EF3B3D /* [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-PerformanceTest-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 */ 1E00644427CEDF9B006FF6E9 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -608,7 +457,6 @@ }; 1E00647327CEDF9C006FF6E9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 03C0CE0A935FE6DA043E7BE0 /* Pods-OrcaAppTest.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -639,7 +487,6 @@ }; 1E00647427CEDF9C006FF6E9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ACAC7A21A5860A222D16D03A /* Pods-OrcaAppTest.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -670,7 +517,6 @@ }; 1E00647927CEDF9C006FF6E9 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E30EA9006E0548D0310B2E3A /* Pods-OrcaAppTestUITests.debug.xcconfig */; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -693,7 +539,6 @@ }; 1E00647A27CEDF9C006FF6E9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ABBA4B73A0322098CBEC5924 /* Pods-OrcaAppTestUITests.release.xcconfig */; buildSettings = { CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; @@ -716,7 +561,6 @@ }; 1E5B7AEA2800B29F00F8BDDB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6F73701FE51DC1C6DF054890 /* Pods-PerformanceTest.debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; @@ -741,7 +585,6 @@ }; 1E5B7AEB2800B29F00F8BDDB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6912537E4CD8278005FA2AB6 /* Pods-PerformanceTest.release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_STYLE = Automatic; @@ -803,6 +646,37 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCLocalSwiftPackageReference section */ + E109D19B2CFE4DA30014F5AA /* XCLocalSwiftPackageReference "../../../../orca" */ = { + isa = XCLocalSwiftPackageReference; + relativePath = ../../../../orca; + }; +/* End XCLocalSwiftPackageReference section */ + +/* Begin XCRemoteSwiftPackageReference section */ + E1F352FD2D00ECD60069B0E6 /* XCRemoteSwiftPackageReference "orca" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/Picovoice/orca"; + requirement = { + kind = exactVersion; + version = 1.0.1; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + E109D19D2CFE4DBC0014F5AA /* Orca */ = { + isa = XCSwiftPackageProductDependency; + package = E109D19B2CFE4DA30014F5AA /* XCLocalSwiftPackageReference "../../../../orca" */; + productName = Orca; + }; + E109D19F2CFE4DBF0014F5AA /* Orca */ = { + isa = XCSwiftPackageProductDependency; + package = E109D19B2CFE4DA30014F5AA /* XCLocalSwiftPackageReference "../../../../orca" */; + productName = Orca; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 1E00644027CEDF9B006FF6E9 /* Project object */; } diff --git a/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/contents.xcworkspacedata b/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index f61b4bee..00000000 --- a/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/binding/ios/OrcaAppTest/OrcaAppTest.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/binding/ios/OrcaAppTest/Podfile b/binding/ios/OrcaAppTest/Podfile deleted file mode 100644 index 86efc831..00000000 --- a/binding/ios/OrcaAppTest/Podfile +++ /dev/null @@ -1,14 +0,0 @@ -source 'https://cdn.cocoapods.org/' -platform :ios, '13.0' - -target 'OrcaAppTest' do - pod 'Orca-iOS', '~> 1.0.0' -end - -target 'OrcaAppTestUITests' do - pod 'Orca-iOS', '~> 1.0.0' -end - -target 'PerformanceTest' do - pod 'Orca-iOS', '~> 1.0.0' -end diff --git a/binding/ios/OrcaAppTest/Podfile.lock b/binding/ios/OrcaAppTest/Podfile.lock deleted file mode 100644 index 543cd9f0..00000000 --- a/binding/ios/OrcaAppTest/Podfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -PODS: - - Orca-iOS (1.0.0) - -DEPENDENCIES: - - Orca-iOS (~> 1.0.0) - -SPEC REPOS: - trunk: - - Orca-iOS - -SPEC CHECKSUMS: - Orca-iOS: d50a0dbbf596f20c6c2e2f727f20f72ac012aa0e - -PODFILE CHECKSUM: 85110c27ad76f2840ec98aff4c162e9ffc71a022 - -COCOAPODS: 1.15.2 diff --git a/binding/ios/OrcaErrors.swift b/binding/ios/OrcaErrors.swift index fcf60438..55d78086 100644 --- a/binding/ios/OrcaErrors.swift +++ b/binding/ios/OrcaErrors.swift @@ -7,6 +7,8 @@ // specific language governing permissions and limitations under the License. // +import Foundation + public class OrcaError: LocalizedError { private let message: String private let messageStack: [String] diff --git a/binding/ios/README.md b/binding/ios/README.md index 055ee3b7..46f8a204 100644 --- a/binding/ios/README.md +++ b/binding/ios/README.md @@ -19,10 +19,15 @@ assistants. Orca is: ## Installation -The Orca iOS binding is available via [Cocoapods](https://cocoapods.org/pods/Orca-iOS). To import it into your iOS -project, add the following line to your Podfile and run `pod install`: +The Orca iOS binding is available via [Swift Package Manager](https://www.swift.org/documentation/package-manager/) or [CocoaPods](https://cocoapods.org/pods/Orca-iOS). +To import the package using SPM, open up your project's Package Dependencies in XCode and add: +``` +https://github.com/Picovoice/orca.git +``` +To import it into your iOS project using CocoaPods, add the following line to your Podfile: + ```ruby pod 'Orca-iOS' ``` @@ -184,9 +189,7 @@ The `OrcaPhoneme` object has the following properties: ## Running Unit Tests -Copy your `AccessKey` into the `accessKey` variable -in [`OrcaAppTestUITests.swift`](OrcaAppTest/OrcaAppTestUITests/OrcaAppTestUITests.swift). Open `OrcaAppTest.xcworkspace` -with XCode and run the tests with `Product > Test`. +Copy your `AccessKey` into the `accessKey` variable in [`OrcaAppTestUITests.swift`](OrcaAppTest/OrcaAppTestUITests/OrcaAppTestUITests.swift). Open [`OrcaAppTest.xcodeproj`](OrcaAppTest/OrcaAppTest.xcodeproj) with XCode and run the tests with `Product > Test`. ## Demo App diff --git a/demo/ios/OrcaDemo/OrcaDemo.xcodeproj/project.pbxproj b/demo/ios/OrcaDemo/OrcaDemo.xcodeproj/project.pbxproj index 7a9b51fb..1dbe3963 100644 --- a/demo/ios/OrcaDemo/OrcaDemo.xcodeproj/project.pbxproj +++ b/demo/ios/OrcaDemo/OrcaDemo.xcodeproj/project.pbxproj @@ -13,9 +13,10 @@ 02A1195F268D3FD600A2AC99 /* ViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02A1195E268D3FD600A2AC99 /* ViewModel.swift */; }; 1E001B682B76FFE700D8E72D /* AudioPlayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E001B672B76FFE700D8E72D /* AudioPlayer.swift */; }; 1E001B6A2B7D451200D8E72D /* orca_params_female.pv in Resources */ = {isa = PBXBuildFile; fileRef = 1E001B692B7D451200D8E72D /* orca_params_female.pv */; }; - D187B3DB6652943E66F16BCC /* libPods-OrcaDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A16735E20458FE8354BB7263 /* libPods-OrcaDemo.a */; }; + E109D1A32CFE4F380014F5AA /* Orca in Frameworks */ = {isa = PBXBuildFile; productRef = E109D1A22CFE4F380014F5AA /* Orca */; }; E125E1892BE99DCA008B6D56 /* AtomicBool.swift in Sources */ = {isa = PBXBuildFile; fileRef = E125E1882BE99DCA008B6D56 /* AtomicBool.swift */; }; E1C5A45F2BE587A2002C0C40 /* AudioPlayerStream.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1C5A45E2BE587A2002C0C40 /* AudioPlayerStream.swift */; }; + E1F353002D00ED5C0069B0E6 /* Orca in Frameworks */ = {isa = PBXBuildFile; productRef = E1F352FF2D00ED5C0069B0E6 /* Orca */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -27,11 +28,8 @@ 02A1195E268D3FD600A2AC99 /* ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModel.swift; sourceTree = ""; }; 1E001B672B76FFE700D8E72D /* AudioPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayer.swift; sourceTree = ""; }; 1E001B692B7D451200D8E72D /* orca_params_female.pv */ = {isa = PBXFileReference; lastKnownFileType = file; name = orca_params_female.pv; path = ../../../../lib/common/orca_params_female.pv; sourceTree = ""; }; - 952242877925838A624DC6EA /* Pods-OrcaDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaDemo.debug.xcconfig"; path = "Target Support Files/Pods-OrcaDemo/Pods-OrcaDemo.debug.xcconfig"; sourceTree = ""; }; - A16735E20458FE8354BB7263 /* libPods-OrcaDemo.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OrcaDemo.a"; sourceTree = BUILT_PRODUCTS_DIR; }; E125E1882BE99DCA008B6D56 /* AtomicBool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomicBool.swift; sourceTree = ""; }; E1C5A45E2BE587A2002C0C40 /* AudioPlayerStream.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioPlayerStream.swift; sourceTree = ""; }; - FB863F2AC73241BC3E22A12E /* Pods-OrcaDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OrcaDemo.release.xcconfig"; path = "Target Support Files/Pods-OrcaDemo/Pods-OrcaDemo.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -39,7 +37,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D187B3DB6652943E66F16BCC /* libPods-OrcaDemo.a in Frameworks */, + E109D1A32CFE4F380014F5AA /* Orca in Frameworks */, + E1F353002D00ED5C0069B0E6 /* Orca in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -51,8 +50,6 @@ children = ( 02A11947268D39A700A2AC99 /* OrcaDemo */, 02A11946268D39A700A2AC99 /* Products */, - 8DB92FF3DC81AB04D3FF7242 /* Pods */, - 44A2F7E874052A1B16DFF3C5 /* Frameworks */, ); sourceTree = ""; }; @@ -80,23 +77,6 @@ path = OrcaDemo; sourceTree = ""; }; - 44A2F7E874052A1B16DFF3C5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A16735E20458FE8354BB7263 /* libPods-OrcaDemo.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 8DB92FF3DC81AB04D3FF7242 /* Pods */ = { - isa = PBXGroup; - children = ( - 952242877925838A624DC6EA /* Pods-OrcaDemo.debug.xcconfig */, - FB863F2AC73241BC3E22A12E /* Pods-OrcaDemo.release.xcconfig */, - ); - path = Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -104,11 +84,9 @@ isa = PBXNativeTarget; buildConfigurationList = 02A11954268D39AB00A2AC99 /* Build configuration list for PBXNativeTarget "OrcaDemo" */; buildPhases = ( - D7D2DD072445DE47F8F0E6E9 /* [CP] Check Pods Manifest.lock */, 02A11941268D39A700A2AC99 /* Sources */, 02A11942268D39A700A2AC99 /* Frameworks */, 02A11943268D39A700A2AC99 /* Resources */, - 1FC98B8C46971659AF3FC4D2 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -142,6 +120,9 @@ Base, ); mainGroup = 02A1193C268D39A700A2AC99; + packageReferences = ( + E1F352FE2D00ED5C0069B0E6 /* XCRemoteSwiftPackageReference "orca" */, + ); productRefGroup = 02A11946268D39A700A2AC99 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -163,48 +144,6 @@ }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXShellScriptBuildPhase section */ - 1FC98B8C46971659AF3FC4D2 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaDemo/Pods-OrcaDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OrcaDemo/Pods-OrcaDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OrcaDemo/Pods-OrcaDemo-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D7D2DD072445DE47F8F0E6E9 /* [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-OrcaDemo-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 */ 02A11941268D39A700A2AC99 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -340,7 +279,6 @@ }; 02A11955268D39AB00A2AC99 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 952242877925838A624DC6EA /* Pods-OrcaDemo.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -363,7 +301,6 @@ }; 02A11956268D39AB00A2AC99 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FB863F2AC73241BC3E22A12E /* Pods-OrcaDemo.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -406,6 +343,29 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + E1F352FE2D00ED5C0069B0E6 /* XCRemoteSwiftPackageReference "orca" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/Picovoice/orca"; + requirement = { + kind = exactVersion; + version = 1.0.1; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + E109D1A22CFE4F380014F5AA /* Orca */ = { + isa = XCSwiftPackageProductDependency; + productName = Orca; + }; + E1F352FF2D00ED5C0069B0E6 /* Orca */ = { + isa = XCSwiftPackageProductDependency; + package = E1F352FE2D00ED5C0069B0E6 /* XCRemoteSwiftPackageReference "orca" */; + productName = Orca; + }; +/* End XCSwiftPackageProductDependency section */ }; rootObject = 02A1193D268D39A700A2AC99 /* Project object */; } diff --git a/demo/ios/OrcaDemo/Podfile b/demo/ios/OrcaDemo/Podfile deleted file mode 100644 index 2f09f09a..00000000 --- a/demo/ios/OrcaDemo/Podfile +++ /dev/null @@ -1,6 +0,0 @@ -source 'https://cdn.cocoapods.org/' -platform :ios, '13.0' - -target 'OrcaDemo' do - pod 'Orca-iOS', '~> 1.0.0' -end diff --git a/demo/ios/OrcaDemo/Podfile.lock b/demo/ios/OrcaDemo/Podfile.lock deleted file mode 100644 index 6489899b..00000000 --- a/demo/ios/OrcaDemo/Podfile.lock +++ /dev/null @@ -1,16 +0,0 @@ -PODS: - - Orca-iOS (1.0.0) - -DEPENDENCIES: - - Orca-iOS (~> 1.0.0) - -SPEC REPOS: - trunk: - - Orca-iOS - -SPEC CHECKSUMS: - Orca-iOS: d50a0dbbf596f20c6c2e2f727f20f72ac012aa0e - -PODFILE CHECKSUM: cfe48de1582b7218aa5c16f59fe450987cdec387 - -COCOAPODS: 1.16.2 diff --git a/demo/ios/README.md b/demo/ios/README.md index 71c49aa7..e462a64f 100644 --- a/demo/ios/README.md +++ b/demo/ios/README.md @@ -8,18 +8,13 @@ Signup or Login to [Picovoice Console](https://console.picovoice.ai/) to get you ## Setup -1. Before building the demo app, run the following from this directory to install the Orca Cocoapod: -```console -pod install -``` -2. Replace `let ACCESS_KEY = "..."` inside [`ViewModel.swift`](OrcaDemo/OrcaDemo/ViewModel.swift) with your AccessKey. -```swift -private let ACCESS_KEY = "YOUR_ACCESS_KEY_HERE" -``` +Copy your `AccessKey` into the `YOUR_ACCESS_KEY_HERE` variable inside [`ViewModel.swift`](./OrcaDemo/OrcaDemo/ViewModel.swift). + +Open [OrcaDemo.xcodeproj](./OrcaDemo/OrcaDemo.xcodeproj/) and run the demo. ## Usage -Open the OrcaDemo XCode project and build. Launch the demo on a simulator or an physical iOS device. +Launch the demo on a simulator or a physical iOS device. 1. Enter the text you wish to synthesize in the text box area. -2. Press `Synthesize` button to synthesize the text and play audio. +2. Press the `Synthesize` button to synthesize the text and play audio. diff --git a/lib/ios/PvOrca.xcframework/ios-arm64/PvOrca.framework/PvOrca b/lib/ios/PvOrca.xcframework/ios-arm64/PvOrca.framework/PvOrca index 31ba32b1..bc978af9 100755 Binary files a/lib/ios/PvOrca.xcframework/ios-arm64/PvOrca.framework/PvOrca and b/lib/ios/PvOrca.xcframework/ios-arm64/PvOrca.framework/PvOrca differ diff --git a/lib/ios/PvOrca.xcframework/ios-arm64_x86_64-simulator/PvOrca.framework/PvOrca b/lib/ios/PvOrca.xcframework/ios-arm64_x86_64-simulator/PvOrca.framework/PvOrca index 56f17179..4ecfc767 100755 Binary files a/lib/ios/PvOrca.xcframework/ios-arm64_x86_64-simulator/PvOrca.framework/PvOrca and b/lib/ios/PvOrca.xcframework/ios-arm64_x86_64-simulator/PvOrca.framework/PvOrca differ diff --git a/resources/.lint/spell-check/dict.txt b/resources/.lint/spell-check/dict.txt index 4f06a9cb..12c39040 100644 --- a/resources/.lint/spell-check/dict.txt +++ b/resources/.lint/spell-check/dict.txt @@ -41,6 +41,8 @@ wavefile Sevilla editdistance pvleopard +xcframework +xcodeproj xcuitest xcworkspace sounddevice