Committed by
GitHub
Support the platform iOS for Flutter (#1079)
正在显示
67 个修改的文件
包含
2040 行增加
和
46 行删除
| @@ -24,14 +24,6 @@ jobs: | @@ -24,14 +24,6 @@ jobs: | ||
| 24 | steps: | 24 | steps: |
| 25 | - uses: actions/checkout@v4 | 25 | - uses: actions/checkout@v4 |
| 26 | 26 | ||
| 27 | - - name: Setup Flutter SDK | ||
| 28 | - uses: flutter-actions/setup-flutter@v3 | ||
| 29 | - with: | ||
| 30 | - channel: stable | ||
| 31 | - version: latest | ||
| 32 | - | ||
| 33 | - - uses: dart-lang/setup-dart@v1 | ||
| 34 | - | ||
| 35 | - name: Fix version | 27 | - name: Fix version |
| 36 | shell: bash | 28 | shell: bash |
| 37 | run: | | 29 | run: | |
| @@ -104,6 +96,14 @@ jobs: | @@ -104,6 +96,14 @@ jobs: | ||
| 104 | 96 | ||
| 105 | ls -lh /tmp/to_be_published/linux | 97 | ls -lh /tmp/to_be_published/linux |
| 106 | 98 | ||
| 99 | + - name: Setup Flutter SDK | ||
| 100 | + uses: flutter-actions/setup-flutter@v3 | ||
| 101 | + with: | ||
| 102 | + channel: stable | ||
| 103 | + version: latest | ||
| 104 | + | ||
| 105 | + - uses: dart-lang/setup-dart@v1 | ||
| 106 | + | ||
| 107 | - name: Release | 107 | - name: Release |
| 108 | shell: bash | 108 | shell: bash |
| 109 | run: | | 109 | run: | |
| @@ -127,14 +127,6 @@ jobs: | @@ -127,14 +127,6 @@ jobs: | ||
| 127 | with: | 127 | with: |
| 128 | key: ${{ matrix.os }}-flutter-release-package | 128 | key: ${{ matrix.os }}-flutter-release-package |
| 129 | 129 | ||
| 130 | - - name: Setup Flutter SDK | ||
| 131 | - uses: flutter-actions/setup-flutter@v3 | ||
| 132 | - with: | ||
| 133 | - channel: stable | ||
| 134 | - version: latest | ||
| 135 | - | ||
| 136 | - - uses: dart-lang/setup-dart@v1 | ||
| 137 | - | ||
| 138 | - name: Fix version | 130 | - name: Fix version |
| 139 | shell: bash | 131 | shell: bash |
| 140 | run: | | 132 | run: | |
| @@ -205,6 +197,14 @@ jobs: | @@ -205,6 +197,14 @@ jobs: | ||
| 205 | 197 | ||
| 206 | ls -lh /tmp/to_be_published/macos | 198 | ls -lh /tmp/to_be_published/macos |
| 207 | 199 | ||
| 200 | + - name: Setup Flutter SDK | ||
| 201 | + uses: flutter-actions/setup-flutter@v3 | ||
| 202 | + with: | ||
| 203 | + channel: stable | ||
| 204 | + version: latest | ||
| 205 | + | ||
| 206 | + - uses: dart-lang/setup-dart@v1 | ||
| 207 | + | ||
| 208 | - name: Release | 208 | - name: Release |
| 209 | shell: bash | 209 | shell: bash |
| 210 | run: | | 210 | run: | |
| @@ -429,8 +429,89 @@ jobs: | @@ -429,8 +429,89 @@ jobs: | ||
| 429 | flutter pub publish --dry-run | 429 | flutter pub publish --dry-run |
| 430 | flutter pub publish --force | 430 | flutter pub publish --force |
| 431 | 431 | ||
| 432 | + sherpa_onnx_ios: | ||
| 433 | + # if: false | ||
| 434 | + permissions: | ||
| 435 | + id-token: write # Required for authentication using OIDC | ||
| 436 | + name: sherpa_onnx_ios | ||
| 437 | + runs-on: macos-latest | ||
| 438 | + | ||
| 439 | + steps: | ||
| 440 | + - uses: actions/checkout@v4 | ||
| 441 | + | ||
| 442 | + - name: ccache | ||
| 443 | + uses: hendrikmuhs/ccache-action@v1.2 | ||
| 444 | + with: | ||
| 445 | + key: ${{ matrix.os }}-flutter-release-package-ios | ||
| 446 | + | ||
| 447 | + - name: Fix version | ||
| 448 | + shell: bash | ||
| 449 | + run: | | ||
| 450 | + SHERPA_ONNX_VERSION=$(grep "SHERPA_ONNX_VERSION" ./CMakeLists.txt | cut -d " " -f 2 | cut -d '"' -f 2) | ||
| 451 | + | ||
| 452 | + src_dir=$PWD/flutter/sherpa_onnx_ios | ||
| 453 | + pushd $src_dir | ||
| 454 | + v="version: $SHERPA_ONNX_VERSION" | ||
| 455 | + echo "v: $v" | ||
| 456 | + sed -i.bak s"/^version: .*/$v/" ./pubspec.yaml | ||
| 457 | + rm *.bak | ||
| 458 | + git status | ||
| 459 | + git diff | ||
| 460 | + | ||
| 461 | + - name: Copy extra files | ||
| 462 | + shell: bash | ||
| 463 | + run: | | ||
| 464 | + dst=flutter/sherpa_onnx_ios | ||
| 465 | + | ||
| 466 | + mkdir $dst/example | ||
| 467 | + | ||
| 468 | + cp -v flutter/sherpa_onnx/example/* $dst/example | ||
| 469 | + cp -v LICENSE $dst/ | ||
| 470 | + cp -v CHANGELOG.md $dst/ | ||
| 471 | + | ||
| 472 | + git status | ||
| 473 | + | ||
| 474 | + - name: Build ios | ||
| 475 | + shell: bash | ||
| 476 | + run: | | ||
| 477 | + export CMAKE_CXX_COMPILER_LAUNCHER=ccache | ||
| 478 | + export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH" | ||
| 479 | + cmake --version | ||
| 480 | + ./build-ios-shared.sh | ||
| 481 | + | ||
| 482 | + - name: Copy pre-built libs | ||
| 483 | + shell: bash | ||
| 484 | + run: | | ||
| 485 | + echo "----ios-arm64----" | ||
| 486 | + cp -v build-ios-shared/ios-arm64/libsherpa-onnx-c-api.dylib flutter/sherpa_onnx_ios/ios/ | ||
| 487 | + cp -v build-ios-shared/ios-onnxruntime/onnxruntime.xcframework/ios-arm64/onnxruntime.a flutter/sherpa_onnx_ios/ios/libonnxruntime.a | ||
| 488 | + | ||
| 489 | + ls -lh flutter/sherpa_onnx_ios/ios/libonnxruntime.a | ||
| 490 | + | ||
| 491 | + mv -v flutter/sherpa_onnx_ios /tmp/to_be_published | ||
| 492 | + | ||
| 493 | + ls -lh /tmp/to_be_published | ||
| 494 | + | ||
| 495 | + - name: Setup Flutter SDK | ||
| 496 | + uses: flutter-actions/setup-flutter@v3 | ||
| 497 | + with: | ||
| 498 | + channel: stable | ||
| 499 | + version: latest | ||
| 500 | + | ||
| 501 | + - uses: dart-lang/setup-dart@v1 | ||
| 502 | + | ||
| 503 | + - name: Release | ||
| 504 | + shell: bash | ||
| 505 | + run: | | ||
| 506 | + cd /tmp/to_be_published | ||
| 507 | + du -h -d1 . | ||
| 508 | + | ||
| 509 | + flutter pub get | ||
| 510 | + flutter pub publish --dry-run | ||
| 511 | + flutter pub publish --force | ||
| 512 | + | ||
| 432 | sherpa_onnx: | 513 | sherpa_onnx: |
| 433 | - # needs: [sherpa_onnx_linux, sherpa_onnx_macos, sherpa_onnx_windows, sherpa_onnx_android] | 514 | + needs: [sherpa_onnx_linux, sherpa_onnx_macos, sherpa_onnx_windows, sherpa_onnx_android, sherpa_onnx_ios] |
| 434 | # if: false | 515 | # if: false |
| 435 | permissions: | 516 | permissions: |
| 436 | id-token: write # Required for authentication using OIDC | 517 | id-token: write # Required for authentication using OIDC |
| @@ -11,7 +11,7 @@ project(sherpa-onnx) | @@ -11,7 +11,7 @@ project(sherpa-onnx) | ||
| 11 | # ./nodejs-addon-examples | 11 | # ./nodejs-addon-examples |
| 12 | # ./dart-api-examples/ | 12 | # ./dart-api-examples/ |
| 13 | # ./sherpa-onnx/flutter/CHANGELOG.md | 13 | # ./sherpa-onnx/flutter/CHANGELOG.md |
| 14 | -set(SHERPA_ONNX_VERSION "1.10.10") | 14 | +set(SHERPA_ONNX_VERSION "1.10.11") |
| 15 | 15 | ||
| 16 | # Disable warning about | 16 | # Disable warning about |
| 17 | # | 17 | # |
build-ios-shared.sh
0 → 100755
| 1 | +#!/usr/bin/env bash | ||
| 2 | +# | ||
| 3 | +# Note: This script is to build sherpa-onnx for flutter/dart, which requires | ||
| 4 | +# us to use shared libraries for sherpa-onnx. | ||
| 5 | +# | ||
| 6 | +# Note: We still use static libraries for onnxruntime. | ||
| 7 | + | ||
| 8 | +set -e | ||
| 9 | + | ||
| 10 | +dir=build-ios-shared | ||
| 11 | +mkdir -p $dir | ||
| 12 | +cd $dir | ||
| 13 | +onnxruntime_version=1.17.1 | ||
| 14 | +onnxruntime_dir=ios-onnxruntime/$onnxruntime_version | ||
| 15 | + | ||
| 16 | +SHERPA_ONNX_GITHUB=github.com | ||
| 17 | + | ||
| 18 | +if [ "$SHERPA_ONNX_GITHUB_MIRROW" == true ]; then | ||
| 19 | + SHERPA_ONNX_GITHUB=hub.nuaa.cf | ||
| 20 | +fi | ||
| 21 | + | ||
| 22 | +if [ ! -f $onnxruntime_dir/onnxruntime.xcframework/ios-arm64/onnxruntime.a ]; then | ||
| 23 | + mkdir -p $onnxruntime_dir | ||
| 24 | + pushd $onnxruntime_dir | ||
| 25 | + wget -c https://${SHERPA_ONNX_GITHUB}/csukuangfj/onnxruntime-libs/releases/download/v${onnxruntime_version}/onnxruntime.xcframework-${onnxruntime_version}.tar.bz2 | ||
| 26 | + tar xvf onnxruntime.xcframework-${onnxruntime_version}.tar.bz2 | ||
| 27 | + rm onnxruntime.xcframework-${onnxruntime_version}.tar.bz2 | ||
| 28 | + cd .. | ||
| 29 | + ln -sf $onnxruntime_version/onnxruntime.xcframework . | ||
| 30 | + popd | ||
| 31 | +fi | ||
| 32 | + | ||
| 33 | +# First, for simulator | ||
| 34 | +echo "Building for simulator (x86_64)" | ||
| 35 | + | ||
| 36 | +export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/ios-arm64_x86_64-simulator | ||
| 37 | +export SHERPA_ONNXRUNTIME_INCLUDE_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/Headers | ||
| 38 | + | ||
| 39 | +echo "SHERPA_ONNXRUNTIME_LIB_DIR: $SHERPA_ONNXRUNTIME_LIB_DIR" | ||
| 40 | +echo "SHERPA_ONNXRUNTIME_INCLUDE_DIR $SHERPA_ONNXRUNTIME_INCLUDE_DIR" | ||
| 41 | + | ||
| 42 | +# Note: We use -DENABLE_ARC=1 here to fix the linking error: | ||
| 43 | +# | ||
| 44 | +# The symbol _NSLog is not defined | ||
| 45 | +# | ||
| 46 | +if [[ ! -f build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ]]; then | ||
| 47 | + cmake \ | ||
| 48 | + -DSHERPA_ONNX_ENABLE_BINARY=OFF \ | ||
| 49 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 50 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 51 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 52 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 53 | + -S .. \ | ||
| 54 | + -DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \ | ||
| 55 | + -DPLATFORM=SIMULATOR64 \ | ||
| 56 | + -DENABLE_BITCODE=0 \ | ||
| 57 | + -DENABLE_ARC=1 \ | ||
| 58 | + -DENABLE_VISIBILITY=1 \ | ||
| 59 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 60 | + -DCMAKE_INSTALL_PREFIX=./build/simulator_x86_64/install \ | ||
| 61 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 62 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 63 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 64 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 65 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 66 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 67 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 68 | + -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \ | ||
| 69 | + -DDEPLOYMENT_TARGET=13.0 \ | ||
| 70 | + -B build/simulator_x86_64 | ||
| 71 | + | ||
| 72 | + cmake --build build/simulator_x86_64 -j 4 --target install | ||
| 73 | +fi | ||
| 74 | + | ||
| 75 | +echo "Building for simulator (arm64)" | ||
| 76 | + | ||
| 77 | +if [[ ! -f build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ]]; then | ||
| 78 | + cmake \ | ||
| 79 | + -DSHERPA_ONNX_ENABLE_BINARY=OFF \ | ||
| 80 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 81 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 82 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 83 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 84 | + -S .. \ | ||
| 85 | + -DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \ | ||
| 86 | + -DPLATFORM=SIMULATORARM64 \ | ||
| 87 | + -DENABLE_BITCODE=0 \ | ||
| 88 | + -DENABLE_ARC=1 \ | ||
| 89 | + -DENABLE_VISIBILITY=1 \ | ||
| 90 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 91 | + -DCMAKE_INSTALL_PREFIX=./build/simulator_arm64/install \ | ||
| 92 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 93 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 94 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 95 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 96 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 97 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 98 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 99 | + -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \ | ||
| 100 | + -DDEPLOYMENT_TARGET=13.0 \ | ||
| 101 | + -B build/simulator_arm64 | ||
| 102 | + | ||
| 103 | + cmake --build build/simulator_arm64 -j 4 --target install | ||
| 104 | +fi | ||
| 105 | + | ||
| 106 | +echo "Building for arm64" | ||
| 107 | + | ||
| 108 | +if [[ ! -f build/os64/install/lib/libsherpa-onnx-c-api.dylib ]]; then | ||
| 109 | + export SHERPA_ONNXRUNTIME_LIB_DIR=$PWD/ios-onnxruntime/onnxruntime.xcframework/ios-arm64 | ||
| 110 | + | ||
| 111 | + cmake \ | ||
| 112 | + -DSHERPA_ONNX_ENABLE_BINARY=OFF \ | ||
| 113 | + -DBUILD_PIPER_PHONMIZE_EXE=OFF \ | ||
| 114 | + -DBUILD_PIPER_PHONMIZE_TESTS=OFF \ | ||
| 115 | + -DBUILD_ESPEAK_NG_EXE=OFF \ | ||
| 116 | + -DBUILD_ESPEAK_NG_TESTS=OFF \ | ||
| 117 | + -S .. \ | ||
| 118 | + -DCMAKE_TOOLCHAIN_FILE=./toolchains/ios.toolchain.cmake \ | ||
| 119 | + -DPLATFORM=OS64 \ | ||
| 120 | + -DENABLE_BITCODE=0 \ | ||
| 121 | + -DENABLE_ARC=1 \ | ||
| 122 | + -DENABLE_VISIBILITY=1 \ | ||
| 123 | + -DCMAKE_BUILD_TYPE=Release \ | ||
| 124 | + -DCMAKE_INSTALL_PREFIX=./build/os64/install \ | ||
| 125 | + -DBUILD_SHARED_LIBS=ON \ | ||
| 126 | + -DSHERPA_ONNX_ENABLE_PYTHON=OFF \ | ||
| 127 | + -DSHERPA_ONNX_ENABLE_TESTS=OFF \ | ||
| 128 | + -DSHERPA_ONNX_ENABLE_CHECK=OFF \ | ||
| 129 | + -DSHERPA_ONNX_ENABLE_PORTAUDIO=OFF \ | ||
| 130 | + -DSHERPA_ONNX_ENABLE_JNI=OFF \ | ||
| 131 | + -DSHERPA_ONNX_ENABLE_C_API=ON \ | ||
| 132 | + -DSHERPA_ONNX_ENABLE_WEBSOCKET=OFF \ | ||
| 133 | + -DDEPLOYMENT_TARGET=13.0 \ | ||
| 134 | + -B build/os64 | ||
| 135 | + | ||
| 136 | + cmake --build build/os64 -j 4 --target install | ||
| 137 | +fi | ||
| 138 | + | ||
| 139 | +echo "Collect dynamic libraries " | ||
| 140 | +mkdir -p ios-arm64 ios-arm64-simulator ios-x86_64-simulator | ||
| 141 | + | ||
| 142 | +cp -v ./build/os64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64/ | ||
| 143 | +cp -v ./build/simulator_arm64/install/lib/libsherpa-onnx-c-api.dylib ios-arm64-simulator | ||
| 144 | +cp -v .//build/simulator_x86_64/install/lib/libsherpa-onnx-c-api.dylib ios-x86_64-simulator |
| @@ -123,3 +123,225 @@ index 536165d3..9b1a1012 100644 | @@ -123,3 +123,225 @@ index 536165d3..9b1a1012 100644 | ||
| 123 | id "org.jetbrains.kotlin.android" version "1.7.10" apply false | 123 | id "org.jetbrains.kotlin.android" version "1.7.10" apply false |
| 124 | } | 124 | } |
| 125 | ``` | 125 | ``` |
| 126 | + | ||
| 127 | +# ios | ||
| 128 | + | ||
| 129 | +To support ios, run | ||
| 130 | + | ||
| 131 | +```bash | ||
| 132 | +cd streaming_asr | ||
| 133 | +flutter create --platforms ios ./ | ||
| 134 | +``` | ||
| 135 | + | ||
| 136 | +Connect your iPhone to the computer, and run `flutter devices`, which will print: | ||
| 137 | + | ||
| 138 | +```bash | ||
| 139 | +Found 3 connected devices: | ||
| 140 | + iPhone (mobile) • 00008030-001064212E85802E • ios • iOS 16.3 20D47 | ||
| 141 | + macOS (desktop) • macos • darwin-x64 • macOS 13.1 22C65 darwin-x64 | ||
| 142 | + Chrome (web) • chrome • web-javascript • Google Chrome 126.0.6478.127 | ||
| 143 | + | ||
| 144 | +No wireless devices were found. | ||
| 145 | + | ||
| 146 | +Run "flutter emulators" to list and start any available device emulators. | ||
| 147 | + | ||
| 148 | +If you expected another device to be detected, please run "flutter doctor" to diagnose potential issues. You may also try increasing the time to wait | ||
| 149 | +for connected devices with the "--device-timeout" flag. Visit https://flutter.dev/setup/ for troubleshooting tips. | ||
| 150 | +``` | ||
| 151 | + | ||
| 152 | +Then run | ||
| 153 | + | ||
| 154 | +```bash | ||
| 155 | +flutter run -d 00008030-001064212E85802E | ||
| 156 | +``` | ||
| 157 | + | ||
| 158 | +It will show: | ||
| 159 | +``` | ||
| 160 | +Launching lib/main.dart on iPhone in debug mode... | ||
| 161 | +════════════════════════════════════════════════════════════════════════════════ | ||
| 162 | +No valid code signing certificates were found | ||
| 163 | +You can connect to your Apple Developer account by signing in with your Apple ID | ||
| 164 | +in Xcode and create an iOS Development Certificate as well as a Provisioning | ||
| 165 | +Profile for your project by: | ||
| 166 | + 1- Open the Flutter project's Xcode target with | ||
| 167 | + open ios/Runner.xcworkspace | ||
| 168 | + 2- Select the 'Runner' project in the navigator then the 'Runner' target | ||
| 169 | + in the project settings | ||
| 170 | + 3- Make sure a 'Development Team' is selected under Signing & Capabilities > Team. | ||
| 171 | + You may need to: | ||
| 172 | + - Log in with your Apple ID in Xcode first | ||
| 173 | + - Ensure you have a valid unique Bundle ID | ||
| 174 | + - Register your device with your Apple Developer Account | ||
| 175 | + - Let Xcode automatically provision a profile for your app | ||
| 176 | + 4- Build or run your project again | ||
| 177 | + 5- Trust your newly created Development Certificate on your iOS device | ||
| 178 | + via Settings > General > Device Management > [your new certificate] > Trust | ||
| 179 | + | ||
| 180 | +For more information, please visit: | ||
| 181 | + https://developer.apple.com/library/content/documentation/IDEs/Conceptual/ | ||
| 182 | + AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html | ||
| 183 | + | ||
| 184 | +Or run on an iOS simulator without code signing | ||
| 185 | +════════════════════════════════════════════════════════════════════════════════ | ||
| 186 | +Error: No development certificates available to code sign app for device deployment | ||
| 187 | +``` | ||
| 188 | + | ||
| 189 | +Follow the above instructions. | ||
| 190 | + | ||
| 191 | +The following is a screenshot. | ||
| 192 | + | ||
| 193 | + | ||
| 194 | + | ||
| 195 | +Then close `xcode` and run again | ||
| 196 | + | ||
| 197 | +```bash | ||
| 198 | +flutter run -d 00008030-001064212E85802E | ||
| 199 | +``` | ||
| 200 | + | ||
| 201 | +You would get the following errors: | ||
| 202 | +``` | ||
| 203 | +Error (Xcode): Undefined symbol: ___cxa_pure_virtual | ||
| 204 | + | ||
| 205 | + | ||
| 206 | +Error (Xcode): Undefined symbol: ___cxa_throw | ||
| 207 | + | ||
| 208 | + | ||
| 209 | +Error (Xcode): Undefined symbol: ___gxx_personality_v0 | ||
| 210 | + | ||
| 211 | + | ||
| 212 | + | ||
| 213 | +Error launching application on iPhone. | ||
| 214 | +``` | ||
| 215 | + | ||
| 216 | +Make the following changes: | ||
| 217 | + | ||
| 218 | +```diff | ||
| 219 | +diff --git a/flutter-examples/streaming_asr/ios/Runner.xcodeproj/project.pbxproj b/flutter-examples/streaming_asr/ios/Runner.xcodeproj/project.pbxproj | ||
| 220 | +index b208c7e9..466b0afb 100644 | ||
| 221 | +--- a/flutter-examples/streaming_asr/ios/Runner.xcodeproj/project.pbxproj | ||
| 222 | ++++ b/flutter-examples/streaming_asr/ios/Runner.xcodeproj/project.pbxproj | ||
| 223 | +@@ -482,6 +482,7 @@ | ||
| 224 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 225 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 226 | + SWIFT_VERSION = 5.0; | ||
| 227 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 228 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 229 | + }; | ||
| 230 | + name = Profile; | ||
| 231 | +@@ -500,6 +501,7 @@ | ||
| 232 | + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; | ||
| 233 | + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||
| 234 | + SWIFT_VERSION = 5.0; | ||
| 235 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 236 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 237 | + }; | ||
| 238 | + name = Debug; | ||
| 239 | +@@ -516,6 +518,7 @@ | ||
| 240 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr.RunnerTests; | ||
| 241 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 242 | + SWIFT_VERSION = 5.0; | ||
| 243 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 244 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 245 | + }; | ||
| 246 | + name = Release; | ||
| 247 | +@@ -532,6 +535,7 @@ | ||
| 248 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr.RunnerTests; | ||
| 249 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 250 | + SWIFT_VERSION = 5.0; | ||
| 251 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 252 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 253 | + }; | ||
| 254 | + name = Profile; | ||
| 255 | +@@ -666,6 +670,7 @@ | ||
| 256 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 257 | + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||
| 258 | + SWIFT_VERSION = 5.0; | ||
| 259 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 260 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 261 | + }; | ||
| 262 | + name = Debug; | ||
| 263 | +@@ -688,6 +693,7 @@ | ||
| 264 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 265 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 266 | + SWIFT_VERSION = 5.0; | ||
| 267 | ++ OTHER_LDFLAGS = "-lc++"; | ||
| 268 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 269 | + }; | ||
| 270 | + name = Release; | ||
| 271 | +``` | ||
| 272 | + | ||
| 273 | +Then re-run | ||
| 274 | + | ||
| 275 | +```bash | ||
| 276 | +flutter run -d 00008030-001064212E85802E | ||
| 277 | +``` | ||
| 278 | + | ||
| 279 | +Finally, it shows the following: | ||
| 280 | + | ||
| 281 | +``` | ||
| 282 | +Launching lib/main.dart on iPhone in debug mode... | ||
| 283 | +Automatically signing iOS for device deployment using specified development team in Xcode project: N5ZH3Z63A6 | ||
| 284 | +Running Xcode build... | ||
| 285 | + └─Compiling, linking and signing... 9.0s | ||
| 286 | +Xcode build done. 25.6s | ||
| 287 | +(lldb) 2024-07-06 17:43:54.970077+0800 Runner[4851:965716] [SceneConfiguration] Info.plist contained no UIScene configuration dictionary (looking for configuration named "(no name)") | ||
| 288 | +Warning: Unable to create restoration in progress marker file | ||
| 289 | +fopen failed for data file: errno = 2 (No such file or directory) | ||
| 290 | +Errors found! Invalidating cache... | ||
| 291 | +fopen failed for data file: errno = 2 (No such file or directory) | ||
| 292 | +Errors found! Invalidating cache... | ||
| 293 | +Installing and launching... 31.8s | ||
| 294 | +Syncing files to device iPhone... 1,080ms | ||
| 295 | + | ||
| 296 | +Flutter run key commands. | ||
| 297 | +r Hot reload. 🔥🔥🔥 | ||
| 298 | +R Hot restart. | ||
| 299 | +h List all available interactive commands. | ||
| 300 | +d Detach (terminate "flutter run" but leave application running). | ||
| 301 | +c Clear the screen | ||
| 302 | +q Quit (terminate the application on the device). | ||
| 303 | + | ||
| 304 | +A Dart VM Service on iPhone is available at: http://127.0.0.1:51556/QDn_7CJ2gzk=/ | ||
| 305 | +The Flutter DevTools debugger and profiler on iPhone is available at: http://127.0.0.1:9100?uri=http://127.0.0.1:51556/QDn_7CJ2gzk=/ | ||
| 306 | +``` | ||
| 307 | + | ||
| 308 | +If it shows the following log after pressing `start` within the sherpa-onnx APP on your iPhone: | ||
| 309 | + | ||
| 310 | +``` | ||
| 311 | +[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data. | ||
| 312 | +``` | ||
| 313 | + | ||
| 314 | +Please make the following changes | ||
| 315 | +```diff | ||
| 316 | +--- a/flutter-examples/streaming_asr/ios/Runner/Info.plist | ||
| 317 | ++++ b/flutter-examples/streaming_asr/ios/Runner/Info.plist | ||
| 318 | +@@ -2,6 +2,8 @@ | ||
| 319 | + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 320 | + <plist version="1.0"> | ||
| 321 | + <dict> | ||
| 322 | ++ <key>NSMicrophoneUsageDescription</key> | ||
| 323 | ++ <string>Need microphone access for recording speech</string> | ||
| 324 | + <key>CFBundleDevelopmentRegion</key> | ||
| 325 | + <string>$(DEVELOPMENT_LANGUAGE)</string> | ||
| 326 | + <key>CFBundleDisplayName</key> | ||
| 327 | +``` | ||
| 328 | + | ||
| 329 | +And re-run | ||
| 330 | + | ||
| 331 | +```bash | ||
| 332 | +flutter run -d 00008030-001064212E85802E | ||
| 333 | +``` | ||
| 334 | + | ||
| 335 | +The following are some screenshots of the iOS APP: | ||
| 336 | + | ||
| 337 | +|1|2|3| | ||
| 338 | +|---|---|---| | ||
| 339 | +|||| | ||
| 340 | + | ||
| 341 | + | ||
| 342 | +**Hint**: If you find that you cannot start the APP on your iPhone after | ||
| 343 | +disconnecting from the computer, please use | ||
| 344 | + | ||
| 345 | +```bash | ||
| 346 | +flutter run --release -d 00008030-001064212E85802E | ||
| 347 | +``` |
flutter-examples/ios-demo-1.jpg
0 → 100644
372.7 KB
flutter-examples/ios-demo-2.jpg
0 → 100644
81.1 KB
flutter-examples/ios-demo-3.jpg
0 → 100644
66.7 KB
flutter-examples/ios-demo-4.jpg
0 → 100644
73.7 KB
| 1 | -# streaming_asr | 1 | +# Real-time speech recognition |
| 2 | 2 | ||
| 3 | -A new Flutter project. | 3 | +This APP supports the following platforms: |
| 4 | + | ||
| 5 | + - Windows | ||
| 6 | + - macOS | ||
| 7 | + - Android | ||
| 8 | + - iOS | ||
| 9 | + | ||
| 10 | +Note that it does not support Linux since we are using | ||
| 11 | +the package [record](https://pub.dev/packages/record), which does not | ||
| 12 | +support streaming recording on Linux. | ||
| 13 | + | ||
| 14 | +If you can find a recording package | ||
| 15 | +that works on Linux, please let us know and we will update this app to support Linux. | ||
| 4 | 16 | ||
| 5 | ## Getting Started | 17 | ## Getting Started |
| 6 | 18 | ||
| 7 | -This project is a starting point for a Flutter application. | 19 | +Remember to use the following steps to download a model. Otherwise, you would |
| 20 | +get errors after you start and run the app. | ||
| 21 | + | ||
| 22 | +### 1. Select a streaming model | ||
| 23 | + | ||
| 24 | +Please visit <https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models> | ||
| 25 | +to download a streaming ASR model. | ||
| 26 | + | ||
| 27 | +You can find introductions about each streaming model at | ||
| 28 | +<https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html> | ||
| 29 | + | ||
| 30 | + | ||
| 31 | +Note: `Streaming` is the same as `Online` in this context. | ||
| 32 | + | ||
| 33 | +### 2. Let the code know which model you are using | ||
| 34 | + | ||
| 35 | +We have pre-configured some streaming models in the following file | ||
| 36 | + | ||
| 37 | +<https://github.com/k2-fsa/sherpa-onnx/blob/master/flutter-examples/streaming_asr/lib/online_model.dart> | ||
| 38 | + | ||
| 39 | +If you select a model that is not in the above file, please add it to the above file | ||
| 40 | +by yourself by following how existing models are added. | ||
| 41 | + | ||
| 42 | +Then you need to update | ||
| 43 | + | ||
| 44 | +<https://github.com/k2-fsa/sherpa-onnx/blob/master/flutter-examples/streaming_asr/lib/streaming_asr.dart#L16> | ||
| 45 | + | ||
| 46 | +``` | ||
| 47 | +final type = 0; | ||
| 48 | +``` | ||
| 49 | + | ||
| 50 | +Please change ``type`` accordingly. | ||
| 51 | + | ||
| 52 | +You also need to change [./pubspec.yaml](./pubspec.yaml) so that your APP knows where to find it. | ||
| 53 | +Please see the example below for how to do that. | ||
| 54 | + | ||
| 55 | +### 3. Place your downloaded model inside the directory assets | ||
| 56 | + | ||
| 57 | +The downloaded model has to be placed in the [assets](./assets) directory. | ||
| 58 | + | ||
| 59 | +**HINT**: Please delete files that are not needed by the code. Otherwise, you put | ||
| 60 | +unnecessary files in your APP and it will significantly increase the size of your APP. | ||
| 61 | + | ||
| 62 | +## Example | ||
| 63 | + | ||
| 64 | +Suppose you have selected the following model | ||
| 65 | + | ||
| 66 | +<https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2> | ||
| 67 | + | ||
| 68 | +Please use the following steps to make it available in your APP. | ||
| 69 | + | ||
| 70 | + - 1. Change [online_model.dart](./lib/online_model.dart) | ||
| 71 | + | ||
| 72 | + This model is already in the file and its type is `0`, so there is no need to change this file. | ||
| 73 | + | ||
| 74 | + - 2. Change [streaming_asr.dart](./lib/streaming_asr.dart) | ||
| 75 | + | ||
| 76 | + The default value for `type` is 0 and our model has also a type of `0`, so there is no need to change this file. | ||
| 77 | + | ||
| 78 | + - 3. Change [pubspec.yaml](./pubspec.yaml) | ||
| 79 | + | ||
| 80 | + At the end of [pubspec.yaml](./pubspec.yaml), please change it exactly like below: | ||
| 81 | + | ||
| 82 | +``` | ||
| 83 | + assets: | ||
| 84 | + - assets/ | ||
| 85 | + - assets/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/ | ||
| 86 | +``` | ||
| 87 | + | ||
| 88 | + - 4. Download the model to the [./assets](./assets) directory. | ||
| 89 | + | ||
| 90 | +``` | ||
| 91 | +cd assets | ||
| 92 | +wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 | ||
| 93 | +tar xvf sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20.tar.bz2 | ||
| 94 | + | ||
| 95 | +# Remeber to remove unused files. | ||
| 96 | +rm -rf sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/test_wavs | ||
| 97 | +rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/README.md | ||
| 98 | +rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/bpe* | ||
| 99 | +rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/encoder-epoch-99-avg-1.onnx | ||
| 100 | +rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/decoder-epoch-99-avg-1.int8.onnx | ||
| 101 | +rm sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20/joiner-epoch-99-avg-1.int8.onnx | ||
| 102 | +``` | ||
| 103 | + | ||
| 104 | +Your [assets](./assets) directory should look like below at the end. | ||
| 105 | + | ||
| 106 | +``` | ||
| 107 | +assets/ | ||
| 108 | +└── sherpa-onnx-streaming-zipformer-bilingual-zh-en-2023-02-20 | ||
| 109 | + ├── decoder-epoch-99-avg-1.onnx | ||
| 110 | + ├── encoder-epoch-99-avg-1.int8.onnx | ||
| 111 | + ├── joiner-epoch-99-avg-1.onnx | ||
| 112 | + └── tokens.txt | ||
| 113 | + | ||
| 114 | +1 directory, 4 files | ||
| 115 | +``` | ||
| 116 | + | ||
| 117 | + - 5. Run it! | ||
| 8 | 118 | ||
| 9 | -A few resources to get you started if this is your first Flutter project: | 119 | + For instance |
| 10 | 120 | ||
| 11 | -- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) | ||
| 12 | -- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) | 121 | + - `flutter run -d macos` for macOS. |
| 13 | 122 | ||
| 14 | -For help getting started with Flutter development, view the | ||
| 15 | -[online documentation](https://docs.flutter.dev/), which offers tutorials, | ||
| 16 | -samples, guidance on mobile development, and a full API reference. | 123 | + - `flutter run -d windows` for windows. |
| 1 | +**/dgph | ||
| 2 | +*.mode1v3 | ||
| 3 | +*.mode2v3 | ||
| 4 | +*.moved-aside | ||
| 5 | +*.pbxuser | ||
| 6 | +*.perspectivev3 | ||
| 7 | +**/*sync/ | ||
| 8 | +.sconsign.dblite | ||
| 9 | +.tags* | ||
| 10 | +**/.vagrant/ | ||
| 11 | +**/DerivedData/ | ||
| 12 | +Icon? | ||
| 13 | +**/Pods/ | ||
| 14 | +**/.symlinks/ | ||
| 15 | +profile | ||
| 16 | +xcuserdata | ||
| 17 | +**/.generated/ | ||
| 18 | +Flutter/App.framework | ||
| 19 | +Flutter/Flutter.framework | ||
| 20 | +Flutter/Flutter.podspec | ||
| 21 | +Flutter/Generated.xcconfig | ||
| 22 | +Flutter/ephemeral/ | ||
| 23 | +Flutter/app.flx | ||
| 24 | +Flutter/app.zip | ||
| 25 | +Flutter/flutter_assets/ | ||
| 26 | +Flutter/flutter_export_environment.sh | ||
| 27 | +ServiceDefinitions.json | ||
| 28 | +Runner/GeneratedPluginRegistrant.* | ||
| 29 | + | ||
| 30 | +# Exceptions to above rules. | ||
| 31 | +!default.mode1v3 | ||
| 32 | +!default.mode2v3 | ||
| 33 | +!default.pbxuser | ||
| 34 | +!default.perspectivev3 |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 3 | +<plist version="1.0"> | ||
| 4 | +<dict> | ||
| 5 | + <key>CFBundleDevelopmentRegion</key> | ||
| 6 | + <string>en</string> | ||
| 7 | + <key>CFBundleExecutable</key> | ||
| 8 | + <string>App</string> | ||
| 9 | + <key>CFBundleIdentifier</key> | ||
| 10 | + <string>io.flutter.flutter.app</string> | ||
| 11 | + <key>CFBundleInfoDictionaryVersion</key> | ||
| 12 | + <string>6.0</string> | ||
| 13 | + <key>CFBundleName</key> | ||
| 14 | + <string>App</string> | ||
| 15 | + <key>CFBundlePackageType</key> | ||
| 16 | + <string>FMWK</string> | ||
| 17 | + <key>CFBundleShortVersionString</key> | ||
| 18 | + <string>1.0</string> | ||
| 19 | + <key>CFBundleSignature</key> | ||
| 20 | + <string>????</string> | ||
| 21 | + <key>CFBundleVersion</key> | ||
| 22 | + <string>1.0</string> | ||
| 23 | + <key>MinimumOSVersion</key> | ||
| 24 | + <string>12.0</string> | ||
| 25 | +</dict> | ||
| 26 | +</plist> |
flutter-examples/streaming_asr/ios/Podfile
0 → 100644
| 1 | +# Uncomment this line to define a global platform for your project | ||
| 2 | +# platform :ios, '12.0' | ||
| 3 | + | ||
| 4 | +# CocoaPods analytics sends network stats synchronously affecting flutter build latency. | ||
| 5 | +ENV['COCOAPODS_DISABLE_STATS'] = 'true' | ||
| 6 | + | ||
| 7 | +project 'Runner', { | ||
| 8 | + 'Debug' => :debug, | ||
| 9 | + 'Profile' => :release, | ||
| 10 | + 'Release' => :release, | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +def flutter_root | ||
| 14 | + generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__) | ||
| 15 | + unless File.exist?(generated_xcode_build_settings_path) | ||
| 16 | + raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first" | ||
| 17 | + end | ||
| 18 | + | ||
| 19 | + File.foreach(generated_xcode_build_settings_path) do |line| | ||
| 20 | + matches = line.match(/FLUTTER_ROOT\=(.*)/) | ||
| 21 | + return matches[1].strip if matches | ||
| 22 | + end | ||
| 23 | + raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get" | ||
| 24 | +end | ||
| 25 | + | ||
| 26 | +require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root) | ||
| 27 | + | ||
| 28 | +flutter_ios_podfile_setup | ||
| 29 | + | ||
| 30 | +target 'Runner' do | ||
| 31 | + use_frameworks! | ||
| 32 | + use_modular_headers! | ||
| 33 | + | ||
| 34 | + flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) | ||
| 35 | + target 'RunnerTests' do | ||
| 36 | + inherit! :search_paths | ||
| 37 | + end | ||
| 38 | +end | ||
| 39 | + | ||
| 40 | +post_install do |installer| | ||
| 41 | + installer.pods_project.targets.each do |target| | ||
| 42 | + flutter_additional_ios_build_settings(target) | ||
| 43 | + end | ||
| 44 | +end |
| 1 | +// !$*UTF8*$! | ||
| 2 | +{ | ||
| 3 | + archiveVersion = 1; | ||
| 4 | + classes = { | ||
| 5 | + }; | ||
| 6 | + objectVersion = 54; | ||
| 7 | + objects = { | ||
| 8 | + | ||
| 9 | +/* Begin PBXBuildFile section */ | ||
| 10 | + 05D5EF72926AFE8B0BB8E849 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B422E1CC20F2C7BF721B8DEA /* Pods_Runner.framework */; }; | ||
| 11 | + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; | ||
| 12 | + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; | ||
| 13 | + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; | ||
| 14 | + 5A4BF2984B010F625045AEF9 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD3E5A0B481F8C71365F9259 /* Pods_RunnerTests.framework */; }; | ||
| 15 | + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; | ||
| 16 | + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; | ||
| 17 | + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; | ||
| 18 | + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; | ||
| 19 | +/* End PBXBuildFile section */ | ||
| 20 | + | ||
| 21 | +/* Begin PBXContainerItemProxy section */ | ||
| 22 | + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { | ||
| 23 | + isa = PBXContainerItemProxy; | ||
| 24 | + containerPortal = 97C146E61CF9000F007C117D /* Project object */; | ||
| 25 | + proxyType = 1; | ||
| 26 | + remoteGlobalIDString = 97C146ED1CF9000F007C117D; | ||
| 27 | + remoteInfo = Runner; | ||
| 28 | + }; | ||
| 29 | +/* End PBXContainerItemProxy section */ | ||
| 30 | + | ||
| 31 | +/* Begin PBXCopyFilesBuildPhase section */ | ||
| 32 | + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { | ||
| 33 | + isa = PBXCopyFilesBuildPhase; | ||
| 34 | + buildActionMask = 2147483647; | ||
| 35 | + dstPath = ""; | ||
| 36 | + dstSubfolderSpec = 10; | ||
| 37 | + files = ( | ||
| 38 | + ); | ||
| 39 | + name = "Embed Frameworks"; | ||
| 40 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 41 | + }; | ||
| 42 | +/* End PBXCopyFilesBuildPhase section */ | ||
| 43 | + | ||
| 44 | +/* Begin PBXFileReference section */ | ||
| 45 | + 0AE88D6BF022DF2B961162B1 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; }; | ||
| 46 | + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; }; | ||
| 47 | + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; }; | ||
| 48 | + 18DE41FC48D4E4A22BB8396E /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 49 | + 1FA6A3CB2526375DC4E7577F /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; }; | ||
| 50 | + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = "<group>"; }; | ||
| 51 | + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 52 | + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; }; | ||
| 53 | + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; }; | ||
| 54 | + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; | ||
| 55 | + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; }; | ||
| 56 | + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; }; | ||
| 57 | + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; }; | ||
| 58 | + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 59 | + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; | ||
| 60 | + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; | ||
| 61 | + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||
| 62 | + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||
| 63 | + B422E1CC20F2C7BF721B8DEA /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 64 | + CD3E5A0B481F8C71365F9259 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 65 | + D39135D1BCA9F8B2E889A4A7 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; }; | ||
| 66 | + ECE8263C82D7A5EDCDD523B1 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 67 | + F2428E84328DFA24DFEF0A8B /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; }; | ||
| 68 | +/* End PBXFileReference section */ | ||
| 69 | + | ||
| 70 | +/* Begin PBXFrameworksBuildPhase section */ | ||
| 71 | + 370CDD7E022C5FF755B5EF47 /* Frameworks */ = { | ||
| 72 | + isa = PBXFrameworksBuildPhase; | ||
| 73 | + buildActionMask = 2147483647; | ||
| 74 | + files = ( | ||
| 75 | + 5A4BF2984B010F625045AEF9 /* Pods_RunnerTests.framework in Frameworks */, | ||
| 76 | + ); | ||
| 77 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 78 | + }; | ||
| 79 | + 97C146EB1CF9000F007C117D /* Frameworks */ = { | ||
| 80 | + isa = PBXFrameworksBuildPhase; | ||
| 81 | + buildActionMask = 2147483647; | ||
| 82 | + files = ( | ||
| 83 | + 05D5EF72926AFE8B0BB8E849 /* Pods_Runner.framework in Frameworks */, | ||
| 84 | + ); | ||
| 85 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 86 | + }; | ||
| 87 | +/* End PBXFrameworksBuildPhase section */ | ||
| 88 | + | ||
| 89 | +/* Begin PBXGroup section */ | ||
| 90 | + 331C8082294A63A400263BE5 /* RunnerTests */ = { | ||
| 91 | + isa = PBXGroup; | ||
| 92 | + children = ( | ||
| 93 | + 331C807B294A618700263BE5 /* RunnerTests.swift */, | ||
| 94 | + ); | ||
| 95 | + path = RunnerTests; | ||
| 96 | + sourceTree = "<group>"; | ||
| 97 | + }; | ||
| 98 | + 50F577A9B451352B5312D8B8 /* Pods */ = { | ||
| 99 | + isa = PBXGroup; | ||
| 100 | + children = ( | ||
| 101 | + F2428E84328DFA24DFEF0A8B /* Pods-Runner.debug.xcconfig */, | ||
| 102 | + 18DE41FC48D4E4A22BB8396E /* Pods-Runner.release.xcconfig */, | ||
| 103 | + D39135D1BCA9F8B2E889A4A7 /* Pods-Runner.profile.xcconfig */, | ||
| 104 | + 0AE88D6BF022DF2B961162B1 /* Pods-RunnerTests.debug.xcconfig */, | ||
| 105 | + ECE8263C82D7A5EDCDD523B1 /* Pods-RunnerTests.release.xcconfig */, | ||
| 106 | + 1FA6A3CB2526375DC4E7577F /* Pods-RunnerTests.profile.xcconfig */, | ||
| 107 | + ); | ||
| 108 | + name = Pods; | ||
| 109 | + path = Pods; | ||
| 110 | + sourceTree = "<group>"; | ||
| 111 | + }; | ||
| 112 | + 9740EEB11CF90186004384FC /* Flutter */ = { | ||
| 113 | + isa = PBXGroup; | ||
| 114 | + children = ( | ||
| 115 | + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, | ||
| 116 | + 9740EEB21CF90195004384FC /* Debug.xcconfig */, | ||
| 117 | + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, | ||
| 118 | + 9740EEB31CF90195004384FC /* Generated.xcconfig */, | ||
| 119 | + ); | ||
| 120 | + name = Flutter; | ||
| 121 | + sourceTree = "<group>"; | ||
| 122 | + }; | ||
| 123 | + 97C146E51CF9000F007C117D = { | ||
| 124 | + isa = PBXGroup; | ||
| 125 | + children = ( | ||
| 126 | + 9740EEB11CF90186004384FC /* Flutter */, | ||
| 127 | + 97C146F01CF9000F007C117D /* Runner */, | ||
| 128 | + 97C146EF1CF9000F007C117D /* Products */, | ||
| 129 | + 331C8082294A63A400263BE5 /* RunnerTests */, | ||
| 130 | + 50F577A9B451352B5312D8B8 /* Pods */, | ||
| 131 | + D7A66A32065C41441BF0E0D3 /* Frameworks */, | ||
| 132 | + ); | ||
| 133 | + sourceTree = "<group>"; | ||
| 134 | + }; | ||
| 135 | + 97C146EF1CF9000F007C117D /* Products */ = { | ||
| 136 | + isa = PBXGroup; | ||
| 137 | + children = ( | ||
| 138 | + 97C146EE1CF9000F007C117D /* Runner.app */, | ||
| 139 | + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, | ||
| 140 | + ); | ||
| 141 | + name = Products; | ||
| 142 | + sourceTree = "<group>"; | ||
| 143 | + }; | ||
| 144 | + 97C146F01CF9000F007C117D /* Runner */ = { | ||
| 145 | + isa = PBXGroup; | ||
| 146 | + children = ( | ||
| 147 | + 97C146FA1CF9000F007C117D /* Main.storyboard */, | ||
| 148 | + 97C146FD1CF9000F007C117D /* Assets.xcassets */, | ||
| 149 | + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, | ||
| 150 | + 97C147021CF9000F007C117D /* Info.plist */, | ||
| 151 | + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, | ||
| 152 | + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, | ||
| 153 | + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, | ||
| 154 | + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, | ||
| 155 | + ); | ||
| 156 | + path = Runner; | ||
| 157 | + sourceTree = "<group>"; | ||
| 158 | + }; | ||
| 159 | + D7A66A32065C41441BF0E0D3 /* Frameworks */ = { | ||
| 160 | + isa = PBXGroup; | ||
| 161 | + children = ( | ||
| 162 | + B422E1CC20F2C7BF721B8DEA /* Pods_Runner.framework */, | ||
| 163 | + CD3E5A0B481F8C71365F9259 /* Pods_RunnerTests.framework */, | ||
| 164 | + ); | ||
| 165 | + name = Frameworks; | ||
| 166 | + sourceTree = "<group>"; | ||
| 167 | + }; | ||
| 168 | +/* End PBXGroup section */ | ||
| 169 | + | ||
| 170 | +/* Begin PBXNativeTarget section */ | ||
| 171 | + 331C8080294A63A400263BE5 /* RunnerTests */ = { | ||
| 172 | + isa = PBXNativeTarget; | ||
| 173 | + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; | ||
| 174 | + buildPhases = ( | ||
| 175 | + 05C536716C891AD06C35ACE8 /* [CP] Check Pods Manifest.lock */, | ||
| 176 | + 331C807D294A63A400263BE5 /* Sources */, | ||
| 177 | + 331C807F294A63A400263BE5 /* Resources */, | ||
| 178 | + 370CDD7E022C5FF755B5EF47 /* Frameworks */, | ||
| 179 | + ); | ||
| 180 | + buildRules = ( | ||
| 181 | + ); | ||
| 182 | + dependencies = ( | ||
| 183 | + 331C8086294A63A400263BE5 /* PBXTargetDependency */, | ||
| 184 | + ); | ||
| 185 | + name = RunnerTests; | ||
| 186 | + productName = RunnerTests; | ||
| 187 | + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; | ||
| 188 | + productType = "com.apple.product-type.bundle.unit-test"; | ||
| 189 | + }; | ||
| 190 | + 97C146ED1CF9000F007C117D /* Runner */ = { | ||
| 191 | + isa = PBXNativeTarget; | ||
| 192 | + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; | ||
| 193 | + buildPhases = ( | ||
| 194 | + 7BF04CD64B1097AB8C6E66EA /* [CP] Check Pods Manifest.lock */, | ||
| 195 | + 9740EEB61CF901F6004384FC /* Run Script */, | ||
| 196 | + 97C146EA1CF9000F007C117D /* Sources */, | ||
| 197 | + 97C146EB1CF9000F007C117D /* Frameworks */, | ||
| 198 | + 97C146EC1CF9000F007C117D /* Resources */, | ||
| 199 | + 9705A1C41CF9048500538489 /* Embed Frameworks */, | ||
| 200 | + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, | ||
| 201 | + E862F7828A330E975EF6E1F9 /* [CP] Embed Pods Frameworks */, | ||
| 202 | + ); | ||
| 203 | + buildRules = ( | ||
| 204 | + ); | ||
| 205 | + dependencies = ( | ||
| 206 | + ); | ||
| 207 | + name = Runner; | ||
| 208 | + productName = Runner; | ||
| 209 | + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; | ||
| 210 | + productType = "com.apple.product-type.application"; | ||
| 211 | + }; | ||
| 212 | +/* End PBXNativeTarget section */ | ||
| 213 | + | ||
| 214 | +/* Begin PBXProject section */ | ||
| 215 | + 97C146E61CF9000F007C117D /* Project object */ = { | ||
| 216 | + isa = PBXProject; | ||
| 217 | + attributes = { | ||
| 218 | + BuildIndependentTargetsInParallel = YES; | ||
| 219 | + LastUpgradeCheck = 1510; | ||
| 220 | + ORGANIZATIONNAME = ""; | ||
| 221 | + TargetAttributes = { | ||
| 222 | + 331C8080294A63A400263BE5 = { | ||
| 223 | + CreatedOnToolsVersion = 14.0; | ||
| 224 | + TestTargetID = 97C146ED1CF9000F007C117D; | ||
| 225 | + }; | ||
| 226 | + 97C146ED1CF9000F007C117D = { | ||
| 227 | + CreatedOnToolsVersion = 7.3.1; | ||
| 228 | + LastSwiftMigration = 1100; | ||
| 229 | + }; | ||
| 230 | + }; | ||
| 231 | + }; | ||
| 232 | + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; | ||
| 233 | + compatibilityVersion = "Xcode 9.3"; | ||
| 234 | + developmentRegion = en; | ||
| 235 | + hasScannedForEncodings = 0; | ||
| 236 | + knownRegions = ( | ||
| 237 | + en, | ||
| 238 | + Base, | ||
| 239 | + ); | ||
| 240 | + mainGroup = 97C146E51CF9000F007C117D; | ||
| 241 | + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; | ||
| 242 | + projectDirPath = ""; | ||
| 243 | + projectRoot = ""; | ||
| 244 | + targets = ( | ||
| 245 | + 97C146ED1CF9000F007C117D /* Runner */, | ||
| 246 | + 331C8080294A63A400263BE5 /* RunnerTests */, | ||
| 247 | + ); | ||
| 248 | + }; | ||
| 249 | +/* End PBXProject section */ | ||
| 250 | + | ||
| 251 | +/* Begin PBXResourcesBuildPhase section */ | ||
| 252 | + 331C807F294A63A400263BE5 /* Resources */ = { | ||
| 253 | + isa = PBXResourcesBuildPhase; | ||
| 254 | + buildActionMask = 2147483647; | ||
| 255 | + files = ( | ||
| 256 | + ); | ||
| 257 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 258 | + }; | ||
| 259 | + 97C146EC1CF9000F007C117D /* Resources */ = { | ||
| 260 | + isa = PBXResourcesBuildPhase; | ||
| 261 | + buildActionMask = 2147483647; | ||
| 262 | + files = ( | ||
| 263 | + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, | ||
| 264 | + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, | ||
| 265 | + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, | ||
| 266 | + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, | ||
| 267 | + ); | ||
| 268 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 269 | + }; | ||
| 270 | +/* End PBXResourcesBuildPhase section */ | ||
| 271 | + | ||
| 272 | +/* Begin PBXShellScriptBuildPhase section */ | ||
| 273 | + 05C536716C891AD06C35ACE8 /* [CP] Check Pods Manifest.lock */ = { | ||
| 274 | + isa = PBXShellScriptBuildPhase; | ||
| 275 | + buildActionMask = 2147483647; | ||
| 276 | + files = ( | ||
| 277 | + ); | ||
| 278 | + inputFileListPaths = ( | ||
| 279 | + ); | ||
| 280 | + inputPaths = ( | ||
| 281 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | ||
| 282 | + "${PODS_ROOT}/Manifest.lock", | ||
| 283 | + ); | ||
| 284 | + name = "[CP] Check Pods Manifest.lock"; | ||
| 285 | + outputFileListPaths = ( | ||
| 286 | + ); | ||
| 287 | + outputPaths = ( | ||
| 288 | + "$(DERIVED_FILE_DIR)/Pods-RunnerTests-checkManifestLockResult.txt", | ||
| 289 | + ); | ||
| 290 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 291 | + shellPath = /bin/sh; | ||
| 292 | + 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"; | ||
| 293 | + showEnvVarsInLog = 0; | ||
| 294 | + }; | ||
| 295 | + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { | ||
| 296 | + isa = PBXShellScriptBuildPhase; | ||
| 297 | + alwaysOutOfDate = 1; | ||
| 298 | + buildActionMask = 2147483647; | ||
| 299 | + files = ( | ||
| 300 | + ); | ||
| 301 | + inputPaths = ( | ||
| 302 | + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", | ||
| 303 | + ); | ||
| 304 | + name = "Thin Binary"; | ||
| 305 | + outputPaths = ( | ||
| 306 | + ); | ||
| 307 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 308 | + shellPath = /bin/sh; | ||
| 309 | + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; | ||
| 310 | + }; | ||
| 311 | + 7BF04CD64B1097AB8C6E66EA /* [CP] Check Pods Manifest.lock */ = { | ||
| 312 | + isa = PBXShellScriptBuildPhase; | ||
| 313 | + buildActionMask = 2147483647; | ||
| 314 | + files = ( | ||
| 315 | + ); | ||
| 316 | + inputFileListPaths = ( | ||
| 317 | + ); | ||
| 318 | + inputPaths = ( | ||
| 319 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | ||
| 320 | + "${PODS_ROOT}/Manifest.lock", | ||
| 321 | + ); | ||
| 322 | + name = "[CP] Check Pods Manifest.lock"; | ||
| 323 | + outputFileListPaths = ( | ||
| 324 | + ); | ||
| 325 | + outputPaths = ( | ||
| 326 | + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", | ||
| 327 | + ); | ||
| 328 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 329 | + shellPath = /bin/sh; | ||
| 330 | + 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"; | ||
| 331 | + showEnvVarsInLog = 0; | ||
| 332 | + }; | ||
| 333 | + 9740EEB61CF901F6004384FC /* Run Script */ = { | ||
| 334 | + isa = PBXShellScriptBuildPhase; | ||
| 335 | + alwaysOutOfDate = 1; | ||
| 336 | + buildActionMask = 2147483647; | ||
| 337 | + files = ( | ||
| 338 | + ); | ||
| 339 | + inputPaths = ( | ||
| 340 | + ); | ||
| 341 | + name = "Run Script"; | ||
| 342 | + outputPaths = ( | ||
| 343 | + ); | ||
| 344 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 345 | + shellPath = /bin/sh; | ||
| 346 | + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; | ||
| 347 | + }; | ||
| 348 | + E862F7828A330E975EF6E1F9 /* [CP] Embed Pods Frameworks */ = { | ||
| 349 | + isa = PBXShellScriptBuildPhase; | ||
| 350 | + buildActionMask = 2147483647; | ||
| 351 | + files = ( | ||
| 352 | + ); | ||
| 353 | + inputFileListPaths = ( | ||
| 354 | + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", | ||
| 355 | + ); | ||
| 356 | + name = "[CP] Embed Pods Frameworks"; | ||
| 357 | + outputFileListPaths = ( | ||
| 358 | + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", | ||
| 359 | + ); | ||
| 360 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 361 | + shellPath = /bin/sh; | ||
| 362 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; | ||
| 363 | + showEnvVarsInLog = 0; | ||
| 364 | + }; | ||
| 365 | +/* End PBXShellScriptBuildPhase section */ | ||
| 366 | + | ||
| 367 | +/* Begin PBXSourcesBuildPhase section */ | ||
| 368 | + 331C807D294A63A400263BE5 /* Sources */ = { | ||
| 369 | + isa = PBXSourcesBuildPhase; | ||
| 370 | + buildActionMask = 2147483647; | ||
| 371 | + files = ( | ||
| 372 | + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, | ||
| 373 | + ); | ||
| 374 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 375 | + }; | ||
| 376 | + 97C146EA1CF9000F007C117D /* Sources */ = { | ||
| 377 | + isa = PBXSourcesBuildPhase; | ||
| 378 | + buildActionMask = 2147483647; | ||
| 379 | + files = ( | ||
| 380 | + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, | ||
| 381 | + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, | ||
| 382 | + ); | ||
| 383 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 384 | + }; | ||
| 385 | +/* End PBXSourcesBuildPhase section */ | ||
| 386 | + | ||
| 387 | +/* Begin PBXTargetDependency section */ | ||
| 388 | + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { | ||
| 389 | + isa = PBXTargetDependency; | ||
| 390 | + target = 97C146ED1CF9000F007C117D /* Runner */; | ||
| 391 | + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; | ||
| 392 | + }; | ||
| 393 | +/* End PBXTargetDependency section */ | ||
| 394 | + | ||
| 395 | +/* Begin PBXVariantGroup section */ | ||
| 396 | + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { | ||
| 397 | + isa = PBXVariantGroup; | ||
| 398 | + children = ( | ||
| 399 | + 97C146FB1CF9000F007C117D /* Base */, | ||
| 400 | + ); | ||
| 401 | + name = Main.storyboard; | ||
| 402 | + sourceTree = "<group>"; | ||
| 403 | + }; | ||
| 404 | + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { | ||
| 405 | + isa = PBXVariantGroup; | ||
| 406 | + children = ( | ||
| 407 | + 97C147001CF9000F007C117D /* Base */, | ||
| 408 | + ); | ||
| 409 | + name = LaunchScreen.storyboard; | ||
| 410 | + sourceTree = "<group>"; | ||
| 411 | + }; | ||
| 412 | +/* End PBXVariantGroup section */ | ||
| 413 | + | ||
| 414 | +/* Begin XCBuildConfiguration section */ | ||
| 415 | + 249021D3217E4FDB00AE95B9 /* Profile */ = { | ||
| 416 | + isa = XCBuildConfiguration; | ||
| 417 | + buildSettings = { | ||
| 418 | + ALWAYS_SEARCH_USER_PATHS = NO; | ||
| 419 | + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; | ||
| 420 | + CLANG_ANALYZER_NONNULL = YES; | ||
| 421 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||
| 422 | + CLANG_CXX_LIBRARY = "libc++"; | ||
| 423 | + CLANG_ENABLE_MODULES = YES; | ||
| 424 | + CLANG_ENABLE_OBJC_ARC = YES; | ||
| 425 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | ||
| 426 | + CLANG_WARN_BOOL_CONVERSION = YES; | ||
| 427 | + CLANG_WARN_COMMA = YES; | ||
| 428 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | ||
| 429 | + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; | ||
| 430 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||
| 431 | + CLANG_WARN_EMPTY_BODY = YES; | ||
| 432 | + CLANG_WARN_ENUM_CONVERSION = YES; | ||
| 433 | + CLANG_WARN_INFINITE_RECURSION = YES; | ||
| 434 | + CLANG_WARN_INT_CONVERSION = YES; | ||
| 435 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | ||
| 436 | + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | ||
| 437 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | ||
| 438 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||
| 439 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | ||
| 440 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | ||
| 441 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | ||
| 442 | + CLANG_WARN_UNREACHABLE_CODE = YES; | ||
| 443 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||
| 444 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||
| 445 | + COPY_PHASE_STRIP = NO; | ||
| 446 | + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | ||
| 447 | + ENABLE_NS_ASSERTIONS = NO; | ||
| 448 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | ||
| 449 | + ENABLE_USER_SCRIPT_SANDBOXING = NO; | ||
| 450 | + GCC_C_LANGUAGE_STANDARD = gnu99; | ||
| 451 | + GCC_NO_COMMON_BLOCKS = YES; | ||
| 452 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||
| 453 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||
| 454 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | ||
| 455 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||
| 456 | + GCC_WARN_UNUSED_FUNCTION = YES; | ||
| 457 | + GCC_WARN_UNUSED_VARIABLE = YES; | ||
| 458 | + IPHONEOS_DEPLOYMENT_TARGET = 12.0; | ||
| 459 | + MTL_ENABLE_DEBUG_INFO = NO; | ||
| 460 | + SDKROOT = iphoneos; | ||
| 461 | + SUPPORTED_PLATFORMS = iphoneos; | ||
| 462 | + TARGETED_DEVICE_FAMILY = "1,2"; | ||
| 463 | + VALIDATE_PRODUCT = YES; | ||
| 464 | + }; | ||
| 465 | + name = Profile; | ||
| 466 | + }; | ||
| 467 | + 249021D4217E4FDB00AE95B9 /* Profile */ = { | ||
| 468 | + isa = XCBuildConfiguration; | ||
| 469 | + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; | ||
| 470 | + buildSettings = { | ||
| 471 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||
| 472 | + CLANG_ENABLE_MODULES = YES; | ||
| 473 | + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||
| 474 | + DEVELOPMENT_TEAM = N5ZH3Z63A6; | ||
| 475 | + ENABLE_BITCODE = NO; | ||
| 476 | + INFOPLIST_FILE = Runner/Info.plist; | ||
| 477 | + LD_RUNPATH_SEARCH_PATHS = ( | ||
| 478 | + "$(inherited)", | ||
| 479 | + "@executable_path/Frameworks", | ||
| 480 | + ); | ||
| 481 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr; | ||
| 482 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 483 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 484 | + SWIFT_VERSION = 5.0; | ||
| 485 | + OTHER_LDFLAGS = "-lc++"; | ||
| 486 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 487 | + }; | ||
| 488 | + name = Profile; | ||
| 489 | + }; | ||
| 490 | + 331C8088294A63A400263BE5 /* Debug */ = { | ||
| 491 | + isa = XCBuildConfiguration; | ||
| 492 | + baseConfigurationReference = 0AE88D6BF022DF2B961162B1 /* Pods-RunnerTests.debug.xcconfig */; | ||
| 493 | + buildSettings = { | ||
| 494 | + BUNDLE_LOADER = "$(TEST_HOST)"; | ||
| 495 | + CODE_SIGN_STYLE = Automatic; | ||
| 496 | + CURRENT_PROJECT_VERSION = 1; | ||
| 497 | + GENERATE_INFOPLIST_FILE = YES; | ||
| 498 | + MARKETING_VERSION = 1.0; | ||
| 499 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr.RunnerTests; | ||
| 500 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 501 | + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; | ||
| 502 | + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||
| 503 | + SWIFT_VERSION = 5.0; | ||
| 504 | + OTHER_LDFLAGS = "-lc++"; | ||
| 505 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 506 | + }; | ||
| 507 | + name = Debug; | ||
| 508 | + }; | ||
| 509 | + 331C8089294A63A400263BE5 /* Release */ = { | ||
| 510 | + isa = XCBuildConfiguration; | ||
| 511 | + baseConfigurationReference = ECE8263C82D7A5EDCDD523B1 /* Pods-RunnerTests.release.xcconfig */; | ||
| 512 | + buildSettings = { | ||
| 513 | + BUNDLE_LOADER = "$(TEST_HOST)"; | ||
| 514 | + CODE_SIGN_STYLE = Automatic; | ||
| 515 | + CURRENT_PROJECT_VERSION = 1; | ||
| 516 | + GENERATE_INFOPLIST_FILE = YES; | ||
| 517 | + MARKETING_VERSION = 1.0; | ||
| 518 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr.RunnerTests; | ||
| 519 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 520 | + SWIFT_VERSION = 5.0; | ||
| 521 | + OTHER_LDFLAGS = "-lc++"; | ||
| 522 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 523 | + }; | ||
| 524 | + name = Release; | ||
| 525 | + }; | ||
| 526 | + 331C808A294A63A400263BE5 /* Profile */ = { | ||
| 527 | + isa = XCBuildConfiguration; | ||
| 528 | + baseConfigurationReference = 1FA6A3CB2526375DC4E7577F /* Pods-RunnerTests.profile.xcconfig */; | ||
| 529 | + buildSettings = { | ||
| 530 | + BUNDLE_LOADER = "$(TEST_HOST)"; | ||
| 531 | + CODE_SIGN_STYLE = Automatic; | ||
| 532 | + CURRENT_PROJECT_VERSION = 1; | ||
| 533 | + GENERATE_INFOPLIST_FILE = YES; | ||
| 534 | + MARKETING_VERSION = 1.0; | ||
| 535 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr.RunnerTests; | ||
| 536 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 537 | + SWIFT_VERSION = 5.0; | ||
| 538 | + OTHER_LDFLAGS = "-lc++"; | ||
| 539 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; | ||
| 540 | + }; | ||
| 541 | + name = Profile; | ||
| 542 | + }; | ||
| 543 | + 97C147031CF9000F007C117D /* Debug */ = { | ||
| 544 | + isa = XCBuildConfiguration; | ||
| 545 | + buildSettings = { | ||
| 546 | + ALWAYS_SEARCH_USER_PATHS = NO; | ||
| 547 | + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; | ||
| 548 | + CLANG_ANALYZER_NONNULL = YES; | ||
| 549 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||
| 550 | + CLANG_CXX_LIBRARY = "libc++"; | ||
| 551 | + CLANG_ENABLE_MODULES = YES; | ||
| 552 | + CLANG_ENABLE_OBJC_ARC = YES; | ||
| 553 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | ||
| 554 | + CLANG_WARN_BOOL_CONVERSION = YES; | ||
| 555 | + CLANG_WARN_COMMA = YES; | ||
| 556 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | ||
| 557 | + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; | ||
| 558 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||
| 559 | + CLANG_WARN_EMPTY_BODY = YES; | ||
| 560 | + CLANG_WARN_ENUM_CONVERSION = YES; | ||
| 561 | + CLANG_WARN_INFINITE_RECURSION = YES; | ||
| 562 | + CLANG_WARN_INT_CONVERSION = YES; | ||
| 563 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | ||
| 564 | + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | ||
| 565 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | ||
| 566 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||
| 567 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | ||
| 568 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | ||
| 569 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | ||
| 570 | + CLANG_WARN_UNREACHABLE_CODE = YES; | ||
| 571 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||
| 572 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||
| 573 | + COPY_PHASE_STRIP = NO; | ||
| 574 | + DEBUG_INFORMATION_FORMAT = dwarf; | ||
| 575 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | ||
| 576 | + ENABLE_TESTABILITY = YES; | ||
| 577 | + ENABLE_USER_SCRIPT_SANDBOXING = NO; | ||
| 578 | + GCC_C_LANGUAGE_STANDARD = gnu99; | ||
| 579 | + GCC_DYNAMIC_NO_PIC = NO; | ||
| 580 | + GCC_NO_COMMON_BLOCKS = YES; | ||
| 581 | + GCC_OPTIMIZATION_LEVEL = 0; | ||
| 582 | + GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 583 | + "DEBUG=1", | ||
| 584 | + "$(inherited)", | ||
| 585 | + ); | ||
| 586 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||
| 587 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||
| 588 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | ||
| 589 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||
| 590 | + GCC_WARN_UNUSED_FUNCTION = YES; | ||
| 591 | + GCC_WARN_UNUSED_VARIABLE = YES; | ||
| 592 | + IPHONEOS_DEPLOYMENT_TARGET = 12.0; | ||
| 593 | + MTL_ENABLE_DEBUG_INFO = YES; | ||
| 594 | + ONLY_ACTIVE_ARCH = YES; | ||
| 595 | + SDKROOT = iphoneos; | ||
| 596 | + TARGETED_DEVICE_FAMILY = "1,2"; | ||
| 597 | + }; | ||
| 598 | + name = Debug; | ||
| 599 | + }; | ||
| 600 | + 97C147041CF9000F007C117D /* Release */ = { | ||
| 601 | + isa = XCBuildConfiguration; | ||
| 602 | + buildSettings = { | ||
| 603 | + ALWAYS_SEARCH_USER_PATHS = NO; | ||
| 604 | + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; | ||
| 605 | + CLANG_ANALYZER_NONNULL = YES; | ||
| 606 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||
| 607 | + CLANG_CXX_LIBRARY = "libc++"; | ||
| 608 | + CLANG_ENABLE_MODULES = YES; | ||
| 609 | + CLANG_ENABLE_OBJC_ARC = YES; | ||
| 610 | + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; | ||
| 611 | + CLANG_WARN_BOOL_CONVERSION = YES; | ||
| 612 | + CLANG_WARN_COMMA = YES; | ||
| 613 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | ||
| 614 | + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; | ||
| 615 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||
| 616 | + CLANG_WARN_EMPTY_BODY = YES; | ||
| 617 | + CLANG_WARN_ENUM_CONVERSION = YES; | ||
| 618 | + CLANG_WARN_INFINITE_RECURSION = YES; | ||
| 619 | + CLANG_WARN_INT_CONVERSION = YES; | ||
| 620 | + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; | ||
| 621 | + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; | ||
| 622 | + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; | ||
| 623 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||
| 624 | + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; | ||
| 625 | + CLANG_WARN_STRICT_PROTOTYPES = YES; | ||
| 626 | + CLANG_WARN_SUSPICIOUS_MOVE = YES; | ||
| 627 | + CLANG_WARN_UNREACHABLE_CODE = YES; | ||
| 628 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||
| 629 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||
| 630 | + COPY_PHASE_STRIP = NO; | ||
| 631 | + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | ||
| 632 | + ENABLE_NS_ASSERTIONS = NO; | ||
| 633 | + ENABLE_STRICT_OBJC_MSGSEND = YES; | ||
| 634 | + ENABLE_USER_SCRIPT_SANDBOXING = NO; | ||
| 635 | + GCC_C_LANGUAGE_STANDARD = gnu99; | ||
| 636 | + GCC_NO_COMMON_BLOCKS = YES; | ||
| 637 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||
| 638 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||
| 639 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | ||
| 640 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||
| 641 | + GCC_WARN_UNUSED_FUNCTION = YES; | ||
| 642 | + GCC_WARN_UNUSED_VARIABLE = YES; | ||
| 643 | + IPHONEOS_DEPLOYMENT_TARGET = 12.0; | ||
| 644 | + MTL_ENABLE_DEBUG_INFO = NO; | ||
| 645 | + SDKROOT = iphoneos; | ||
| 646 | + SUPPORTED_PLATFORMS = iphoneos; | ||
| 647 | + SWIFT_COMPILATION_MODE = wholemodule; | ||
| 648 | + SWIFT_OPTIMIZATION_LEVEL = "-O"; | ||
| 649 | + TARGETED_DEVICE_FAMILY = "1,2"; | ||
| 650 | + VALIDATE_PRODUCT = YES; | ||
| 651 | + }; | ||
| 652 | + name = Release; | ||
| 653 | + }; | ||
| 654 | + 97C147061CF9000F007C117D /* Debug */ = { | ||
| 655 | + isa = XCBuildConfiguration; | ||
| 656 | + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; | ||
| 657 | + buildSettings = { | ||
| 658 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||
| 659 | + CLANG_ENABLE_MODULES = YES; | ||
| 660 | + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||
| 661 | + DEVELOPMENT_TEAM = N5ZH3Z63A6; | ||
| 662 | + ENABLE_BITCODE = NO; | ||
| 663 | + INFOPLIST_FILE = Runner/Info.plist; | ||
| 664 | + LD_RUNPATH_SEARCH_PATHS = ( | ||
| 665 | + "$(inherited)", | ||
| 666 | + "@executable_path/Frameworks", | ||
| 667 | + ); | ||
| 668 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr; | ||
| 669 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 670 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 671 | + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; | ||
| 672 | + SWIFT_VERSION = 5.0; | ||
| 673 | + OTHER_LDFLAGS = "-lc++"; | ||
| 674 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 675 | + }; | ||
| 676 | + name = Debug; | ||
| 677 | + }; | ||
| 678 | + 97C147071CF9000F007C117D /* Release */ = { | ||
| 679 | + isa = XCBuildConfiguration; | ||
| 680 | + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; | ||
| 681 | + buildSettings = { | ||
| 682 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||
| 683 | + CLANG_ENABLE_MODULES = YES; | ||
| 684 | + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; | ||
| 685 | + DEVELOPMENT_TEAM = N5ZH3Z63A6; | ||
| 686 | + ENABLE_BITCODE = NO; | ||
| 687 | + INFOPLIST_FILE = Runner/Info.plist; | ||
| 688 | + LD_RUNPATH_SEARCH_PATHS = ( | ||
| 689 | + "$(inherited)", | ||
| 690 | + "@executable_path/Frameworks", | ||
| 691 | + ); | ||
| 692 | + PRODUCT_BUNDLE_IDENTIFIER = com.k2fsa.sherpa.onnx.streamingAsr; | ||
| 693 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 694 | + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; | ||
| 695 | + SWIFT_VERSION = 5.0; | ||
| 696 | + OTHER_LDFLAGS = "-lc++"; | ||
| 697 | + VERSIONING_SYSTEM = "apple-generic"; | ||
| 698 | + }; | ||
| 699 | + name = Release; | ||
| 700 | + }; | ||
| 701 | +/* End XCBuildConfiguration section */ | ||
| 702 | + | ||
| 703 | +/* Begin XCConfigurationList section */ | ||
| 704 | + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { | ||
| 705 | + isa = XCConfigurationList; | ||
| 706 | + buildConfigurations = ( | ||
| 707 | + 331C8088294A63A400263BE5 /* Debug */, | ||
| 708 | + 331C8089294A63A400263BE5 /* Release */, | ||
| 709 | + 331C808A294A63A400263BE5 /* Profile */, | ||
| 710 | + ); | ||
| 711 | + defaultConfigurationIsVisible = 0; | ||
| 712 | + defaultConfigurationName = Release; | ||
| 713 | + }; | ||
| 714 | + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { | ||
| 715 | + isa = XCConfigurationList; | ||
| 716 | + buildConfigurations = ( | ||
| 717 | + 97C147031CF9000F007C117D /* Debug */, | ||
| 718 | + 97C147041CF9000F007C117D /* Release */, | ||
| 719 | + 249021D3217E4FDB00AE95B9 /* Profile */, | ||
| 720 | + ); | ||
| 721 | + defaultConfigurationIsVisible = 0; | ||
| 722 | + defaultConfigurationName = Release; | ||
| 723 | + }; | ||
| 724 | + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { | ||
| 725 | + isa = XCConfigurationList; | ||
| 726 | + buildConfigurations = ( | ||
| 727 | + 97C147061CF9000F007C117D /* Debug */, | ||
| 728 | + 97C147071CF9000F007C117D /* Release */, | ||
| 729 | + 249021D4217E4FDB00AE95B9 /* Profile */, | ||
| 730 | + ); | ||
| 731 | + defaultConfigurationIsVisible = 0; | ||
| 732 | + defaultConfigurationName = Release; | ||
| 733 | + }; | ||
| 734 | +/* End XCConfigurationList section */ | ||
| 735 | + }; | ||
| 736 | + rootObject = 97C146E61CF9000F007C117D /* Project object */; | ||
| 737 | +} |
flutter-examples/streaming_asr/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<Scheme | ||
| 3 | + LastUpgradeVersion = "1510" | ||
| 4 | + version = "1.3"> | ||
| 5 | + <BuildAction | ||
| 6 | + parallelizeBuildables = "YES" | ||
| 7 | + buildImplicitDependencies = "YES"> | ||
| 8 | + <BuildActionEntries> | ||
| 9 | + <BuildActionEntry | ||
| 10 | + buildForTesting = "YES" | ||
| 11 | + buildForRunning = "YES" | ||
| 12 | + buildForProfiling = "YES" | ||
| 13 | + buildForArchiving = "YES" | ||
| 14 | + buildForAnalyzing = "YES"> | ||
| 15 | + <BuildableReference | ||
| 16 | + BuildableIdentifier = "primary" | ||
| 17 | + BlueprintIdentifier = "97C146ED1CF9000F007C117D" | ||
| 18 | + BuildableName = "Runner.app" | ||
| 19 | + BlueprintName = "Runner" | ||
| 20 | + ReferencedContainer = "container:Runner.xcodeproj"> | ||
| 21 | + </BuildableReference> | ||
| 22 | + </BuildActionEntry> | ||
| 23 | + </BuildActionEntries> | ||
| 24 | + </BuildAction> | ||
| 25 | + <TestAction | ||
| 26 | + buildConfiguration = "Debug" | ||
| 27 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||
| 28 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||
| 29 | + shouldUseLaunchSchemeArgsEnv = "YES"> | ||
| 30 | + <MacroExpansion> | ||
| 31 | + <BuildableReference | ||
| 32 | + BuildableIdentifier = "primary" | ||
| 33 | + BlueprintIdentifier = "97C146ED1CF9000F007C117D" | ||
| 34 | + BuildableName = "Runner.app" | ||
| 35 | + BlueprintName = "Runner" | ||
| 36 | + ReferencedContainer = "container:Runner.xcodeproj"> | ||
| 37 | + </BuildableReference> | ||
| 38 | + </MacroExpansion> | ||
| 39 | + <Testables> | ||
| 40 | + <TestableReference | ||
| 41 | + skipped = "NO" | ||
| 42 | + parallelizable = "YES"> | ||
| 43 | + <BuildableReference | ||
| 44 | + BuildableIdentifier = "primary" | ||
| 45 | + BlueprintIdentifier = "331C8080294A63A400263BE5" | ||
| 46 | + BuildableName = "RunnerTests.xctest" | ||
| 47 | + BlueprintName = "RunnerTests" | ||
| 48 | + ReferencedContainer = "container:Runner.xcodeproj"> | ||
| 49 | + </BuildableReference> | ||
| 50 | + </TestableReference> | ||
| 51 | + </Testables> | ||
| 52 | + </TestAction> | ||
| 53 | + <LaunchAction | ||
| 54 | + buildConfiguration = "Debug" | ||
| 55 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||
| 56 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||
| 57 | + launchStyle = "0" | ||
| 58 | + useCustomWorkingDirectory = "NO" | ||
| 59 | + ignoresPersistentStateOnLaunch = "NO" | ||
| 60 | + debugDocumentVersioning = "YES" | ||
| 61 | + debugServiceExtension = "internal" | ||
| 62 | + allowLocationSimulation = "YES"> | ||
| 63 | + <BuildableProductRunnable | ||
| 64 | + runnableDebuggingMode = "0"> | ||
| 65 | + <BuildableReference | ||
| 66 | + BuildableIdentifier = "primary" | ||
| 67 | + BlueprintIdentifier = "97C146ED1CF9000F007C117D" | ||
| 68 | + BuildableName = "Runner.app" | ||
| 69 | + BlueprintName = "Runner" | ||
| 70 | + ReferencedContainer = "container:Runner.xcodeproj"> | ||
| 71 | + </BuildableReference> | ||
| 72 | + </BuildableProductRunnable> | ||
| 73 | + </LaunchAction> | ||
| 74 | + <ProfileAction | ||
| 75 | + buildConfiguration = "Profile" | ||
| 76 | + shouldUseLaunchSchemeArgsEnv = "YES" | ||
| 77 | + savedToolIdentifier = "" | ||
| 78 | + useCustomWorkingDirectory = "NO" | ||
| 79 | + debugDocumentVersioning = "YES"> | ||
| 80 | + <BuildableProductRunnable | ||
| 81 | + runnableDebuggingMode = "0"> | ||
| 82 | + <BuildableReference | ||
| 83 | + BuildableIdentifier = "primary" | ||
| 84 | + BlueprintIdentifier = "97C146ED1CF9000F007C117D" | ||
| 85 | + BuildableName = "Runner.app" | ||
| 86 | + BlueprintName = "Runner" | ||
| 87 | + ReferencedContainer = "container:Runner.xcodeproj"> | ||
| 88 | + </BuildableReference> | ||
| 89 | + </BuildableProductRunnable> | ||
| 90 | + </ProfileAction> | ||
| 91 | + <AnalyzeAction | ||
| 92 | + buildConfiguration = "Debug"> | ||
| 93 | + </AnalyzeAction> | ||
| 94 | + <ArchiveAction | ||
| 95 | + buildConfiguration = "Release" | ||
| 96 | + revealArchiveInOrganizer = "YES"> | ||
| 97 | + </ArchiveAction> | ||
| 98 | +</Scheme> |
| 1 | +import Flutter | ||
| 2 | +import UIKit | ||
| 3 | + | ||
| 4 | +@UIApplicationMain | ||
| 5 | +@objc class AppDelegate: FlutterAppDelegate { | ||
| 6 | + override func application( | ||
| 7 | + _ application: UIApplication, | ||
| 8 | + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? | ||
| 9 | + ) -> Bool { | ||
| 10 | + GeneratedPluginRegistrant.register(with: self) | ||
| 11 | + return super.application(application, didFinishLaunchingWithOptions: launchOptions) | ||
| 12 | + } | ||
| 13 | +} |
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "size" : "20x20", | ||
| 5 | + "idiom" : "iphone", | ||
| 6 | + "filename" : "Icon-App-20x20@2x.png", | ||
| 7 | + "scale" : "2x" | ||
| 8 | + }, | ||
| 9 | + { | ||
| 10 | + "size" : "20x20", | ||
| 11 | + "idiom" : "iphone", | ||
| 12 | + "filename" : "Icon-App-20x20@3x.png", | ||
| 13 | + "scale" : "3x" | ||
| 14 | + }, | ||
| 15 | + { | ||
| 16 | + "size" : "29x29", | ||
| 17 | + "idiom" : "iphone", | ||
| 18 | + "filename" : "Icon-App-29x29@1x.png", | ||
| 19 | + "scale" : "1x" | ||
| 20 | + }, | ||
| 21 | + { | ||
| 22 | + "size" : "29x29", | ||
| 23 | + "idiom" : "iphone", | ||
| 24 | + "filename" : "Icon-App-29x29@2x.png", | ||
| 25 | + "scale" : "2x" | ||
| 26 | + }, | ||
| 27 | + { | ||
| 28 | + "size" : "29x29", | ||
| 29 | + "idiom" : "iphone", | ||
| 30 | + "filename" : "Icon-App-29x29@3x.png", | ||
| 31 | + "scale" : "3x" | ||
| 32 | + }, | ||
| 33 | + { | ||
| 34 | + "size" : "40x40", | ||
| 35 | + "idiom" : "iphone", | ||
| 36 | + "filename" : "Icon-App-40x40@2x.png", | ||
| 37 | + "scale" : "2x" | ||
| 38 | + }, | ||
| 39 | + { | ||
| 40 | + "size" : "40x40", | ||
| 41 | + "idiom" : "iphone", | ||
| 42 | + "filename" : "Icon-App-40x40@3x.png", | ||
| 43 | + "scale" : "3x" | ||
| 44 | + }, | ||
| 45 | + { | ||
| 46 | + "size" : "60x60", | ||
| 47 | + "idiom" : "iphone", | ||
| 48 | + "filename" : "Icon-App-60x60@2x.png", | ||
| 49 | + "scale" : "2x" | ||
| 50 | + }, | ||
| 51 | + { | ||
| 52 | + "size" : "60x60", | ||
| 53 | + "idiom" : "iphone", | ||
| 54 | + "filename" : "Icon-App-60x60@3x.png", | ||
| 55 | + "scale" : "3x" | ||
| 56 | + }, | ||
| 57 | + { | ||
| 58 | + "size" : "20x20", | ||
| 59 | + "idiom" : "ipad", | ||
| 60 | + "filename" : "Icon-App-20x20@1x.png", | ||
| 61 | + "scale" : "1x" | ||
| 62 | + }, | ||
| 63 | + { | ||
| 64 | + "size" : "20x20", | ||
| 65 | + "idiom" : "ipad", | ||
| 66 | + "filename" : "Icon-App-20x20@2x.png", | ||
| 67 | + "scale" : "2x" | ||
| 68 | + }, | ||
| 69 | + { | ||
| 70 | + "size" : "29x29", | ||
| 71 | + "idiom" : "ipad", | ||
| 72 | + "filename" : "Icon-App-29x29@1x.png", | ||
| 73 | + "scale" : "1x" | ||
| 74 | + }, | ||
| 75 | + { | ||
| 76 | + "size" : "29x29", | ||
| 77 | + "idiom" : "ipad", | ||
| 78 | + "filename" : "Icon-App-29x29@2x.png", | ||
| 79 | + "scale" : "2x" | ||
| 80 | + }, | ||
| 81 | + { | ||
| 82 | + "size" : "40x40", | ||
| 83 | + "idiom" : "ipad", | ||
| 84 | + "filename" : "Icon-App-40x40@1x.png", | ||
| 85 | + "scale" : "1x" | ||
| 86 | + }, | ||
| 87 | + { | ||
| 88 | + "size" : "40x40", | ||
| 89 | + "idiom" : "ipad", | ||
| 90 | + "filename" : "Icon-App-40x40@2x.png", | ||
| 91 | + "scale" : "2x" | ||
| 92 | + }, | ||
| 93 | + { | ||
| 94 | + "size" : "76x76", | ||
| 95 | + "idiom" : "ipad", | ||
| 96 | + "filename" : "Icon-App-76x76@1x.png", | ||
| 97 | + "scale" : "1x" | ||
| 98 | + }, | ||
| 99 | + { | ||
| 100 | + "size" : "76x76", | ||
| 101 | + "idiom" : "ipad", | ||
| 102 | + "filename" : "Icon-App-76x76@2x.png", | ||
| 103 | + "scale" : "2x" | ||
| 104 | + }, | ||
| 105 | + { | ||
| 106 | + "size" : "83.5x83.5", | ||
| 107 | + "idiom" : "ipad", | ||
| 108 | + "filename" : "Icon-App-83.5x83.5@2x.png", | ||
| 109 | + "scale" : "2x" | ||
| 110 | + }, | ||
| 111 | + { | ||
| 112 | + "size" : "1024x1024", | ||
| 113 | + "idiom" : "ios-marketing", | ||
| 114 | + "filename" : "Icon-App-1024x1024@1x.png", | ||
| 115 | + "scale" : "1x" | ||
| 116 | + } | ||
| 117 | + ], | ||
| 118 | + "info" : { | ||
| 119 | + "version" : 1, | ||
| 120 | + "author" : "xcode" | ||
| 121 | + } | ||
| 122 | +} |
10.7 KB
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png
0 → 100644
295 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png
0 → 100644
406 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png
0 → 100644
450 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png
0 → 100644
282 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png
0 → 100644
462 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png
0 → 100644
704 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png
0 → 100644
406 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png
0 → 100644
586 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png
0 → 100644
862 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png
0 → 100644
862 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png
0 → 100644
1.6 KB
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png
0 → 100644
762 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png
0 → 100644
1.2 KB
1.4 KB
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "universal", | ||
| 5 | + "filename" : "LaunchImage.png", | ||
| 6 | + "scale" : "1x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "universal", | ||
| 10 | + "filename" : "LaunchImage@2x.png", | ||
| 11 | + "scale" : "2x" | ||
| 12 | + }, | ||
| 13 | + { | ||
| 14 | + "idiom" : "universal", | ||
| 15 | + "filename" : "LaunchImage@3x.png", | ||
| 16 | + "scale" : "3x" | ||
| 17 | + } | ||
| 18 | + ], | ||
| 19 | + "info" : { | ||
| 20 | + "version" : 1, | ||
| 21 | + "author" : "xcode" | ||
| 22 | + } | ||
| 23 | +} |
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
0 → 100644
68 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
0 → 100644
68 字节
flutter-examples/streaming_asr/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
0 → 100644
68 字节
| 1 | +# Launch Screen Assets | ||
| 2 | + | ||
| 3 | +You can customize the launch screen with your own desired assets by replacing the image files in this directory. | ||
| 4 | + | ||
| 5 | +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. |
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> | ||
| 3 | + <dependencies> | ||
| 4 | + <deployment identifier="iOS"/> | ||
| 5 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/> | ||
| 6 | + </dependencies> | ||
| 7 | + <scenes> | ||
| 8 | + <!--View Controller--> | ||
| 9 | + <scene sceneID="EHf-IW-A2E"> | ||
| 10 | + <objects> | ||
| 11 | + <viewController id="01J-lp-oVM" sceneMemberID="viewController"> | ||
| 12 | + <layoutGuides> | ||
| 13 | + <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/> | ||
| 14 | + <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/> | ||
| 15 | + </layoutGuides> | ||
| 16 | + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> | ||
| 17 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 18 | + <subviews> | ||
| 19 | + <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"> | ||
| 20 | + </imageView> | ||
| 21 | + </subviews> | ||
| 22 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 23 | + <constraints> | ||
| 24 | + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/> | ||
| 25 | + <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/> | ||
| 26 | + </constraints> | ||
| 27 | + </view> | ||
| 28 | + </viewController> | ||
| 29 | + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 30 | + </objects> | ||
| 31 | + <point key="canvasLocation" x="53" y="375"/> | ||
| 32 | + </scene> | ||
| 33 | + </scenes> | ||
| 34 | + <resources> | ||
| 35 | + <image name="LaunchImage" width="168" height="185"/> | ||
| 36 | + </resources> | ||
| 37 | +</document> |
| 1 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r"> | ||
| 3 | + <dependencies> | ||
| 4 | + <deployment identifier="iOS"/> | ||
| 5 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/> | ||
| 6 | + </dependencies> | ||
| 7 | + <scenes> | ||
| 8 | + <!--Flutter View Controller--> | ||
| 9 | + <scene sceneID="tne-QT-ifu"> | ||
| 10 | + <objects> | ||
| 11 | + <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController"> | ||
| 12 | + <layoutGuides> | ||
| 13 | + <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/> | ||
| 14 | + <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/> | ||
| 15 | + </layoutGuides> | ||
| 16 | + <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC"> | ||
| 17 | + <rect key="frame" x="0.0" y="0.0" width="600" height="600"/> | ||
| 18 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 19 | + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> | ||
| 20 | + </view> | ||
| 21 | + </viewController> | ||
| 22 | + <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/> | ||
| 23 | + </objects> | ||
| 24 | + </scene> | ||
| 25 | + </scenes> | ||
| 26 | +</document> |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 3 | +<plist version="1.0"> | ||
| 4 | +<dict> | ||
| 5 | + <key>NSMicrophoneUsageDescription</key> | ||
| 6 | + <string>Need microphone access for recording speech</string> | ||
| 7 | + <key>CFBundleDevelopmentRegion</key> | ||
| 8 | + <string>$(DEVELOPMENT_LANGUAGE)</string> | ||
| 9 | + <key>CFBundleDisplayName</key> | ||
| 10 | + <string>Streaming Asr</string> | ||
| 11 | + <key>CFBundleExecutable</key> | ||
| 12 | + <string>$(EXECUTABLE_NAME)</string> | ||
| 13 | + <key>CFBundleIdentifier</key> | ||
| 14 | + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | ||
| 15 | + <key>CFBundleInfoDictionaryVersion</key> | ||
| 16 | + <string>6.0</string> | ||
| 17 | + <key>CFBundleName</key> | ||
| 18 | + <string>streaming_asr</string> | ||
| 19 | + <key>CFBundlePackageType</key> | ||
| 20 | + <string>APPL</string> | ||
| 21 | + <key>CFBundleShortVersionString</key> | ||
| 22 | + <string>$(FLUTTER_BUILD_NAME)</string> | ||
| 23 | + <key>CFBundleSignature</key> | ||
| 24 | + <string>????</string> | ||
| 25 | + <key>CFBundleVersion</key> | ||
| 26 | + <string>$(FLUTTER_BUILD_NUMBER)</string> | ||
| 27 | + <key>LSRequiresIPhoneOS</key> | ||
| 28 | + <true/> | ||
| 29 | + <key>UILaunchStoryboardName</key> | ||
| 30 | + <string>LaunchScreen</string> | ||
| 31 | + <key>UIMainStoryboardFile</key> | ||
| 32 | + <string>Main</string> | ||
| 33 | + <key>UISupportedInterfaceOrientations</key> | ||
| 34 | + <array> | ||
| 35 | + <string>UIInterfaceOrientationPortrait</string> | ||
| 36 | + <string>UIInterfaceOrientationLandscapeLeft</string> | ||
| 37 | + <string>UIInterfaceOrientationLandscapeRight</string> | ||
| 38 | + </array> | ||
| 39 | + <key>UISupportedInterfaceOrientations~ipad</key> | ||
| 40 | + <array> | ||
| 41 | + <string>UIInterfaceOrientationPortrait</string> | ||
| 42 | + <string>UIInterfaceOrientationPortraitUpsideDown</string> | ||
| 43 | + <string>UIInterfaceOrientationLandscapeLeft</string> | ||
| 44 | + <string>UIInterfaceOrientationLandscapeRight</string> | ||
| 45 | + </array> | ||
| 46 | + <key>CADisableMinimumFrameDurationOnPhone</key> | ||
| 47 | + <true/> | ||
| 48 | + <key>UIApplicationSupportsIndirectInputEvents</key> | ||
| 49 | + <true/> | ||
| 50 | +</dict> | ||
| 51 | +</plist> |
| 1 | +#import "GeneratedPluginRegistrant.h" |
| 1 | +import Flutter | ||
| 2 | +import UIKit | ||
| 3 | +import XCTest | ||
| 4 | + | ||
| 5 | +class RunnerTests: XCTestCase { | ||
| 6 | + | ||
| 7 | + func testExample() { | ||
| 8 | + // If you add code to the Runner application, consider adding tests here. | ||
| 9 | + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. | ||
| 10 | + } | ||
| 11 | + | ||
| 12 | +} |
| @@ -5,7 +5,7 @@ description: > | @@ -5,7 +5,7 @@ description: > | ||
| 5 | 5 | ||
| 6 | publish_to: 'none' | 6 | publish_to: 'none' |
| 7 | 7 | ||
| 8 | -version: 1.10.10 | 8 | +version: 1.10.11 |
| 9 | 9 | ||
| 10 | topics: | 10 | topics: |
| 11 | - speech-recognition | 11 | - speech-recognition |
| @@ -30,7 +30,7 @@ dependencies: | @@ -30,7 +30,7 @@ dependencies: | ||
| 30 | record: ^5.1.0 | 30 | record: ^5.1.0 |
| 31 | url_launcher: ^6.2.6 | 31 | url_launcher: ^6.2.6 |
| 32 | 32 | ||
| 33 | - sherpa_onnx: ^1.10.10 | 33 | + sherpa_onnx: ^1.10.11 |
| 34 | # sherpa_onnx: | 34 | # sherpa_onnx: |
| 35 | # path: ../../flutter/sherpa_onnx | 35 | # path: ../../flutter/sherpa_onnx |
| 36 | 36 |
| @@ -15,20 +15,26 @@ flutter create --template plugin sherpa_onnx | @@ -15,20 +15,26 @@ flutter create --template plugin sherpa_onnx | ||
| 15 | flutter create --template plugin_ffi --platforms macos sherpa_onnx_macos | 15 | flutter create --template plugin_ffi --platforms macos sherpa_onnx_macos |
| 16 | ``` | 16 | ``` |
| 17 | 17 | ||
| 18 | -3. Create `sherpa_onnx_linux | 18 | +3. Create `sherpa_onnx_linux` |
| 19 | 19 | ||
| 20 | ```bash | 20 | ```bash |
| 21 | flutter create --template plugin_ffi --platforms linux sherpa_onnx_linux | 21 | flutter create --template plugin_ffi --platforms linux sherpa_onnx_linux |
| 22 | ``` | 22 | ``` |
| 23 | 23 | ||
| 24 | -4. Create `sherpa_onnx_windows | 24 | +4. Create `sherpa_onnx_windows` |
| 25 | 25 | ||
| 26 | ```bash | 26 | ```bash |
| 27 | flutter create --template plugin_ffi --platforms linux sherpa_onnx_windows | 27 | flutter create --template plugin_ffi --platforms linux sherpa_onnx_windows |
| 28 | ``` | 28 | ``` |
| 29 | 29 | ||
| 30 | -5. Create `sherpa_onnx_android | 30 | +5. Create `sherpa_onnx_android` |
| 31 | 31 | ||
| 32 | ```bash | 32 | ```bash |
| 33 | flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android | 33 | flutter create --template plugin_ffi --platforms android --org com.k2fsa.sherpa.onnx sherpa_onnx_android |
| 34 | ``` | 34 | ``` |
| 35 | + | ||
| 36 | +6. Create `sherpa_onnx_ios` | ||
| 37 | + | ||
| 38 | +```bash | ||
| 39 | +flutter create --template plugin_ffi --platforms ios sherpa_onnx_ios | ||
| 40 | +``` |
| @@ -19,11 +19,9 @@ String? _path; | @@ -19,11 +19,9 @@ String? _path; | ||
| 19 | 19 | ||
| 20 | // see also | 20 | // see also |
| 21 | // https://github.com/flutter/codelabs/blob/main/ffigen_codelab/step_05/lib/ffigen_app.dart | 21 | // https://github.com/flutter/codelabs/blob/main/ffigen_codelab/step_05/lib/ffigen_app.dart |
| 22 | +// https://api.flutter.dev/flutter/dart-io/Platform-class.html | ||
| 22 | final DynamicLibrary _dylib = () { | 23 | final DynamicLibrary _dylib = () { |
| 23 | - if (Platform.isIOS) { | ||
| 24 | - throw UnsupportedError('Unknown platform: ${Platform.operatingSystem}'); | ||
| 25 | - } | ||
| 26 | - if (Platform.isMacOS) { | 24 | + if (Platform.isMacOS || Platform.isIOS) { |
| 27 | if (_path == null) { | 25 | if (_path == null) { |
| 28 | return DynamicLibrary.open('libsherpa-onnx-c-api.dylib'); | 26 | return DynamicLibrary.open('libsherpa-onnx-c-api.dylib'); |
| 29 | } else { | 27 | } else { |
| @@ -17,7 +17,7 @@ topics: | @@ -17,7 +17,7 @@ topics: | ||
| 17 | - voice-activity-detection | 17 | - voice-activity-detection |
| 18 | 18 | ||
| 19 | # remember to change the version in ../sherpa_onnx_macos/macos/sherpa_onnx_macos.podspec | 19 | # remember to change the version in ../sherpa_onnx_macos/macos/sherpa_onnx_macos.podspec |
| 20 | -version: 1.10.10 | 20 | +version: 1.10.11 |
| 21 | 21 | ||
| 22 | homepage: https://github.com/k2-fsa/sherpa-onnx | 22 | homepage: https://github.com/k2-fsa/sherpa-onnx |
| 23 | 23 | ||
| @@ -30,24 +30,31 @@ dependencies: | @@ -30,24 +30,31 @@ dependencies: | ||
| 30 | flutter: | 30 | flutter: |
| 31 | sdk: flutter | 31 | sdk: flutter |
| 32 | 32 | ||
| 33 | - sherpa_onnx_android: ^1.10.10 | 33 | + sherpa_onnx_android: ^1.10.11 |
| 34 | # path: ../sherpa_onnx_android | 34 | # path: ../sherpa_onnx_android |
| 35 | 35 | ||
| 36 | - sherpa_onnx_macos: ^1.10.10 | 36 | + sherpa_onnx_macos: ^1.10.11 |
| 37 | # path: ../sherpa_onnx_macos | 37 | # path: ../sherpa_onnx_macos |
| 38 | 38 | ||
| 39 | - sherpa_onnx_linux: ^1.10.10 | 39 | + sherpa_onnx_linux: ^1.10.11 |
| 40 | # path: ../sherpa_onnx_linux | 40 | # path: ../sherpa_onnx_linux |
| 41 | # | 41 | # |
| 42 | - sherpa_onnx_windows: ^1.10.10 | 42 | + sherpa_onnx_windows: ^1.10.11 |
| 43 | # path: ../sherpa_onnx_windows | 43 | # path: ../sherpa_onnx_windows |
| 44 | 44 | ||
| 45 | + sherpa_onnx_ios: ^1.10.11 | ||
| 46 | + # sherpa_onnx_ios: | ||
| 47 | + # path: ../sherpa_onnx_ios | ||
| 48 | + | ||
| 45 | flutter: | 49 | flutter: |
| 46 | plugin: | 50 | plugin: |
| 47 | platforms: | 51 | platforms: |
| 48 | android: | 52 | android: |
| 49 | default_package: sherpa_onnx_android | 53 | default_package: sherpa_onnx_android |
| 50 | 54 | ||
| 55 | + ios: | ||
| 56 | + default_package: sherpa_onnx_ios | ||
| 57 | + | ||
| 51 | macos: | 58 | macos: |
| 52 | default_package: sherpa_onnx_macos | 59 | default_package: sherpa_onnx_macos |
| 53 | 60 |
flutter/sherpa_onnx_ios/.gitignore
0 → 100644
| 1 | +# Miscellaneous | ||
| 2 | +*.class | ||
| 3 | +*.log | ||
| 4 | +*.pyc | ||
| 5 | +*.swp | ||
| 6 | +.DS_Store | ||
| 7 | +.atom/ | ||
| 8 | +.buildlog/ | ||
| 9 | +.history | ||
| 10 | +.svn/ | ||
| 11 | +migrate_working_dir/ | ||
| 12 | + | ||
| 13 | +# IntelliJ related | ||
| 14 | +*.iml | ||
| 15 | +*.ipr | ||
| 16 | +*.iws | ||
| 17 | +.idea/ | ||
| 18 | + | ||
| 19 | +# The .vscode folder contains launch configuration and tasks you configure in | ||
| 20 | +# VS Code which you may wish to be included in version control, so this line | ||
| 21 | +# is commented out by default. | ||
| 22 | +#.vscode/ | ||
| 23 | + | ||
| 24 | +# Flutter/Dart/Pub related | ||
| 25 | +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. | ||
| 26 | +/pubspec.lock | ||
| 27 | +**/doc/api/ | ||
| 28 | +.dart_tool/ | ||
| 29 | +build/ |
flutter/sherpa_onnx_ios/.metadata
0 → 100644
| 1 | +# This file tracks properties of this Flutter project. | ||
| 2 | +# Used by Flutter tool to assess capabilities and perform upgrades etc. | ||
| 3 | +# | ||
| 4 | +# This file should be version controlled and should not be manually edited. | ||
| 5 | + | ||
| 6 | +version: | ||
| 7 | + revision: "5dcb86f68f239346676ceb1ed1ea385bd215fba1" | ||
| 8 | + channel: "stable" | ||
| 9 | + | ||
| 10 | +project_type: plugin_ffi | ||
| 11 | + | ||
| 12 | +# Tracks metadata for the flutter migrate command | ||
| 13 | +migration: | ||
| 14 | + platforms: | ||
| 15 | + - platform: root | ||
| 16 | + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 | ||
| 17 | + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 | ||
| 18 | + - platform: ios | ||
| 19 | + create_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 | ||
| 20 | + base_revision: 5dcb86f68f239346676ceb1ed1ea385bd215fba1 | ||
| 21 | + | ||
| 22 | + # User provided section | ||
| 23 | + | ||
| 24 | + # List of Local paths (relative to this file) that should be | ||
| 25 | + # ignored by the migrate tool. | ||
| 26 | + # | ||
| 27 | + # Files that are not part of the templates will be ignored by default. | ||
| 28 | + unmanaged_files: | ||
| 29 | + - 'lib/main.dart' | ||
| 30 | + - 'ios/Runner.xcodeproj/project.pbxproj' |
flutter/sherpa_onnx_ios/README.md
0 → 100644
| 1 | +# | ||
| 2 | +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. | ||
| 3 | +# Run `pod lib lint sherpa_onnx_ios.podspec` to validate before publishing. | ||
| 4 | +# | ||
| 5 | +# See also | ||
| 6 | +# https://github.com/google/webcrypto.dart/blob/2010361a106d7a872d90e3dfebfed250e2ede609/ios/webcrypto.podspec#L23-L28 | ||
| 7 | +# https://groups.google.com/g/dart-ffi/c/nUATMBy7r0c | ||
| 8 | +Pod::Spec.new do |s| | ||
| 9 | + s.name = 'sherpa_onnx_ios' | ||
| 10 | + s.version = '1.10.11' | ||
| 11 | + s.summary = 'A new Flutter FFI plugin project.' | ||
| 12 | + s.description = <<-DESC | ||
| 13 | +A new Flutter FFI plugin project. | ||
| 14 | + DESC | ||
| 15 | + s.homepage = 'https://github.com/k2-fsa/sherpa-onnx' | ||
| 16 | + s.license = { :file => '../LICENSE' } | ||
| 17 | + s.author = { 'Fangjun Kuang' => 'csukuangfj@gmail.com' } | ||
| 18 | + | ||
| 19 | + # This will ensure the source files in Classes/ are included in the native | ||
| 20 | + # builds of apps using this FFI plugin. Podspec does not support relative | ||
| 21 | + # paths, so Classes contains a forwarder C file that relatively imports | ||
| 22 | + # `../src/*` so that the C sources can be shared among all target platforms. | ||
| 23 | + s.source = { :path => '.' } | ||
| 24 | + s.dependency 'Flutter' | ||
| 25 | + s.platform = :ios, '12.0' | ||
| 26 | + s.ios.vendored_libraries = '*.dylib', '*.a' | ||
| 27 | + | ||
| 28 | + # Flutter.framework does not contain a i386 slice. | ||
| 29 | + s.pod_target_xcconfig = { | ||
| 30 | + 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' | ||
| 31 | + } | ||
| 32 | + s.swift_version = '5.0' | ||
| 33 | +end |
flutter/sherpa_onnx_ios/lib/README.md
0 → 100644
flutter/sherpa_onnx_ios/pubspec.yaml
0 → 100644
| 1 | +name: sherpa_onnx_ios | ||
| 2 | + | ||
| 3 | +description: > | ||
| 4 | + Speech recognition, speech synthesis, and speaker recognition using next-gen Kaldi | ||
| 5 | + with onnxruntime without Internet connection. | ||
| 6 | + | ||
| 7 | +version: 0.0.1 | ||
| 8 | + | ||
| 9 | +repository: https://github.com/k2-fsa/sherpa-onnx/tree/master/flutter | ||
| 10 | + | ||
| 11 | +issue_tracker: https://github.com/k2-fsa/sherpa-onnx/issues | ||
| 12 | +documentation: https://k2-fsa.github.io/sherpa/onnx/ | ||
| 13 | + | ||
| 14 | +homepage: https://github.com/k2-fsa/sherpa-onnx | ||
| 15 | + | ||
| 16 | +topics: | ||
| 17 | + - speech-recognition | ||
| 18 | + - speech-synthesis | ||
| 19 | + - speaker-identification | ||
| 20 | + - audio-tagging | ||
| 21 | + - voice-activity-detection | ||
| 22 | + | ||
| 23 | +environment: | ||
| 24 | + sdk: '>=3.4.0 <4.0.0' | ||
| 25 | + flutter: '>=3.3.0' | ||
| 26 | + | ||
| 27 | +dependencies: | ||
| 28 | + flutter: | ||
| 29 | + sdk: flutter | ||
| 30 | + | ||
| 31 | +flutter: | ||
| 32 | + plugin: | ||
| 33 | + platforms: | ||
| 34 | + ios: | ||
| 35 | + ffiPlugin: true | ||
| 36 | + |
| @@ -4,7 +4,7 @@ | @@ -4,7 +4,7 @@ | ||
| 4 | # | 4 | # |
| 5 | Pod::Spec.new do |s| | 5 | Pod::Spec.new do |s| |
| 6 | s.name = 'sherpa_onnx_macos' | 6 | s.name = 'sherpa_onnx_macos' |
| 7 | - s.version = '1.10.7' | 7 | + s.version = '1.10.11' |
| 8 | s.summary = 'sherpa-onnx Flutter FFI plugin project.' | 8 | s.summary = 'sherpa-onnx Flutter FFI plugin project.' |
| 9 | s.description = <<-DESC | 9 | s.description = <<-DESC |
| 10 | sherpa-onnx Flutter FFI plugin project. | 10 | sherpa-onnx Flutter FFI plugin project. |
-
请 注册 或 登录 后发表评论