diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 11ff53d46..e011aa942 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ env: # takes a considerable amount of time if it is compiled with the default opt-level # for tests. Therefore, we compile them with a higher opt-level to run them faster. OPT_TESTS_RUSTFLAGS: '-C opt-level=3 -C debug-assertions=yes -D warnings' - FLUTTER_VERSION: '2.0.0' + FLUTTER_VERSION: '2.0.6' JAVA_VERSION: '12.x' DART_WORKSPACE: ${{ github.workspace }}/bindings/dart CARGO_INCREMENTAL: 0 @@ -180,6 +180,8 @@ jobs: needs: [registry-cache, check] runs-on: ubuntu-20.04 timeout-minutes: 20 + outputs: + cache-key: ${{ steps.cache-key.outputs.key }} steps: - name: Checkout repository uses: actions/checkout@v2 @@ -201,11 +203,16 @@ jobs: ~/.cargo/git key: ${{ needs.registry-cache.outputs.cache-key }} + - name: Generate build artifacts key + id: cache-key + shell: bash + run: echo "::set-output name=key::$(echo "${{ runner.os }}-cargo-${{ steps.rust-toolchain.outputs.rustc }}-tests-${{ needs.registry-cache.outputs.cache-date }}-${{ hashFiles('**/Cargo.lock') }}")" + - name: Cache build artifacts uses: actions/cache@v2 with: path: ${{ github.workspace }}/target - key: ${{ runner.os }}-cargo-${{ steps.rust-toolchain.outputs.rustc }}-tests-${{ needs.registry-cache.outputs.cache-date }}-${{ hashFiles('**/Cargo.lock') }} + key: ${{ steps.cache-key.outputs.key }} restore-keys: ${{ runner.os }}-cargo-${{ steps.rust-toolchain.outputs.rustc }}-tests-${{ needs.registry-cache.outputs.cache-date }}- - name: Download data @@ -387,6 +394,19 @@ jobs: working-directory: ./xayn-ai-ffi-c run: cargo lipo --targets ${{ matrix.target }} + - name: Prepare lib for upload + run: | + dir=target/${{ matrix.target }}/debug + mv $dir/libxayn_ai_ffi_c.a $dir/libxayn_ai_ffi_c_${{ matrix.target }}.a + + - name: Upload library artifacts + uses: actions/upload-artifact@v2 + with: + name: build-ios-${{ matrix.target }}-${{ github.sha }} + retention-days: 1 + if-no-files-found: error + path: target/${{ matrix.target}}/debug/libxayn_ai_ffi_c_${{ matrix.target }}.a + test-wasm-lib: name: test-wasm-lib needs: [registry-cache, test] @@ -431,8 +451,8 @@ jobs: RUSTFLAGS: ${{ env.OPT_TESTS_RUSTFLAGS }} run: wasm-pack test --firefox --chrome --headless - build-xain-ai-lib: - name: build-xain-ai-lib + build-linux-lib: + name: build-linux-lib needs: [registry-cache, test] runs-on: ubuntu-20.04 outputs: @@ -459,28 +479,35 @@ jobs: ~/.cargo/git key: ${{ needs.registry-cache.outputs.cache-key }} - - name: Cache build artifacts - uses: actions/cache@v2 + - name: Restore build artifacts + uses: actions/cache@v2.1.4 with: path: ${{ github.workspace }}/target - key: ${{ runner.os }}-cargo-${{ steps.rust-toolchain.outputs.rustc }}-build-xain-ai-lib-${{ needs.registry-cache.outputs.cache-date }}-${{ hashFiles('**/Cargo.lock') }} - restore-keys: ${{ runner.os }}-cargo-${{ steps.rust-toolchain.outputs.rustc }}-build-xain-ai-lib-${{ needs.registry-cache.outputs.cache-date }}- + key: ${{ needs.test.outputs.cache-key }} - - name: Build xayn-ai-ffi-c lib + - name: Build linux lib + # We have to use the same RUSTFLAGS that are used in the test + # job in order to be able to reuse the cache. If we do not do this, + # the compiler will recompile all the libraries from scratch. + env: + RUSTFLAGS: "-D warnings" run: cargo build - - name: Generate lib cache key + - name: Generate lib artifacts key id: cache-key shell: bash - run: echo "::set-output name=key::$(echo libxayn_ai_ffi_c-${{ hashFiles('target/debug/libxayn_ai_ffi_c.so', 'xayn-ai-ffi-c/ffi.h') }})" + run: echo "::set-output name=key::$(echo build-x86_64-unknown-linux-gnu-${{ hashFiles('target/debug/libxayn_ai_ffi_c.so', 'xayn-ai-ffi-c/ffi.h') }})" - - name: Cache library artifacts - uses: actions/cache@v2 + - name: Upload library artifacts + uses: actions/upload-artifact@v2 with: + name: ${{ steps.cache-key.outputs.key }} + retention-days: 1 + if-no-files-found: error path: | ${{ github.workspace }}/target/debug/libxayn_ai_ffi_c.so ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h - key: ${{ steps.cache-key.outputs.key }} + ${{ env.DART_WORKSPACE }}/ios/Classes/XaynAiFfiDartPlugin.h flutter-format: name: flutter-format @@ -514,7 +541,7 @@ jobs: flutter-analyze: name: flutter-analyze - needs: build-xain-ai-lib + needs: build-linux-lib runs-on: ubuntu-20.04 timeout-minutes: 10 steps: @@ -541,13 +568,17 @@ jobs: with: flutter-version: ${{ env.FLUTTER_VERSION }} - - name: Restore ${{ needs.build-xain-ai-lib.outputs.cache-key }} cache - uses: actions/cache@v2.1.4 + - name: Download ${{ needs.build-linux-lib.outputs.cache-key }} artifacts + uses: actions/download-artifact@v2 with: - path: | - ${{ github.workspace }}/target/debug/libxayn_ai_ffi_c.so - ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h - key: ${{ needs.build-xain-ai-lib.outputs.cache-key }} + name: ${{ needs.build-linux-lib.outputs.cache-key }} + path: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + + - name: Move C-header and linux lib + working-directory: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + run: | + mv xayn-ai-ffi-c/ffi.h ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h + cp -R target ${{ github.workspace }} - name: Download data run: sh download_data.sh @@ -566,7 +597,7 @@ jobs: flutter-test: name: flutter-test - needs: build-xain-ai-lib + needs: build-linux-lib runs-on: ubuntu-20.04 timeout-minutes: 10 steps: @@ -592,13 +623,17 @@ jobs: with: flutter-version: ${{ env.FLUTTER_VERSION }} - - name: Restore ${{ needs.build-xain-ai-lib.outputs.cache-key }} cache - uses: actions/cache@v2.1.4 + - name: Download ${{ needs.build-linux-lib.outputs.cache-key }} artifacts + uses: actions/download-artifact@v2 with: - path: | - ${{ github.workspace }}/target/debug/libxayn_ai_ffi_c.so - ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h - key: ${{ needs.build-xain-ai-lib.outputs.cache-key }} + name: ${{ needs.build-linux-lib.outputs.cache-key }} + path: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + + - name: Move C-header and linux lib + working-directory: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + run: | + mv xayn-ai-ffi-c/ffi.h ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h + cp -R target ${{ github.workspace }} - name: Install flutter dependencies working-directory: ${{ env.DART_WORKSPACE }} @@ -614,3 +649,87 @@ jobs: - name: Run flutter tests working-directory: ${{ env.DART_WORKSPACE }} run: flutter test + + flutter-build-example: + name: flutter-build-example + needs: [build-linux-lib, build-ios-libs] + runs-on: ${{ matrix.os }} + timeout-minutes: 20 + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04, macos-10.15] + include: + - os: ubuntu-20.04 + cmd: flutter build apk --debug --split-per-abi + - os: macos-10.15 + cmd: flutter build ios --debug --no-codesign + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Setup java ${{ env.JAVA_VERSION }} + uses: actions/setup-java@v1 + with: + java-version: ${{ env.JAVA_VERSION }} + + - name: Install libclang-10-dev + if: matrix.os == 'ubuntu-20.04' + run: sudo apt-get install libclang-10-dev + + - name: Download ${{ needs.build-linux-lib.outputs.cache-key }} artifacts + uses: actions/download-artifact@v2 + with: + name: ${{ needs.build-linux-lib.outputs.cache-key }} + path: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + + - name: Move C-header + working-directory: ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + run: mv xayn-ai-ffi-c/ffi.h ${{ github.workspace }}/xayn-ai-ffi-c/ffi.h + + - name: Download iOS aarch64 artifacts + if: matrix.os == 'macos-10.15' + uses: actions/download-artifact@v2 + with: + name: build-ios-aarch64-apple-ios-${{ github.sha }} + path: ${{ runner.temp }}/build-ios-${{ github.sha }} + + - name: Download iOS x84_64 artifacts + if: matrix.os == 'macos-10.15' + uses: actions/download-artifact@v2 + with: + name: build-ios-x86_64-apple-ios-${{ github.sha }} + path: ${{ runner.temp }}/build-ios-${{ github.sha }} + + - name: Move iOS artifacts + if: matrix.os == 'macos-10.15' + run: | + cd ${{ runner.temp }}/${{ needs.build-linux-lib.outputs.cache-key }} + cp bindings/dart/ios/Classes/XaynAiFfiDartPlugin.h ${{ env.DART_WORKSPACE }}/ios/Classes/ + cd ${{ runner.temp }}/build-ios-${{ github.sha }} + find . -iname '*.a' -exec cp \{\} ${{ env.DART_WORKSPACE }}/ios \; + + - name: Set path or install flutter + uses: subosito/flutter-action@v1 + with: + flutter-version: ${{ env.FLUTTER_VERSION }} + + - name: Install flutter dependencies + working-directory: ${{ env.DART_WORKSPACE }} + run: flutter pub get + + - name: Generate flutter ffi + working-directory: ${{ env.DART_WORKSPACE }} + run: flutter pub run ffigen + + - name: Download data + run: sh download_data.sh + + - name: Build flutter example + working-directory: ${{ env.DART_WORKSPACE }}/example + run: ${{ matrix.cmd }} + + - name: Build archive + if: matrix.os == 'macos-10.15' + working-directory: ${{ env.DART_WORKSPACE }}/example + run: xcodebuild -workspace ios/Runner.xcworkspace -scheme Runner archive -configuration release -archivePath build/Runner.xcarchive CODE_SIGNING_ALLOWED="NO" diff --git a/bindings/dart/example/ios/Flutter/AppFrameworkInfo.plist b/bindings/dart/example/ios/Flutter/AppFrameworkInfo.plist index 9367d483e..ce6237b30 100644 --- a/bindings/dart/example/ios/Flutter/AppFrameworkInfo.plist +++ b/bindings/dart/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 8.0 + 12.1 diff --git a/bindings/dart/example/ios/Podfile b/bindings/dart/example/ios/Podfile index 1e8c3c90a..3b269019b 100644 --- a/bindings/dart/example/ios/Podfile +++ b/bindings/dart/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '9.0' +platform :ios, '12.1' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' @@ -37,5 +37,9 @@ end post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) + target.build_configurations.each do |config| + config.build_settings['ENABLE_BITCODE'] = 'NO' + config.build_settings["EXCLUDED_ARCHS"] = "armv7" + end end end diff --git a/bindings/dart/example/ios/Podfile.lock b/bindings/dart/example/ios/Podfile.lock new file mode 100644 index 000000000..520de51f0 --- /dev/null +++ b/bindings/dart/example/ios/Podfile.lock @@ -0,0 +1,28 @@ +PODS: + - Flutter (1.0.0) + - path_provider (0.0.1): + - Flutter + - xayn_ai_ffi_dart (0.0.1): + - Flutter + +DEPENDENCIES: + - Flutter (from `Flutter`) + - path_provider (from `.symlinks/plugins/path_provider/ios`) + - xayn_ai_ffi_dart (from `.symlinks/plugins/xayn_ai_ffi_dart/ios`) + +EXTERNAL SOURCES: + Flutter: + :path: Flutter + path_provider: + :path: ".symlinks/plugins/path_provider/ios" + xayn_ai_ffi_dart: + :path: ".symlinks/plugins/xayn_ai_ffi_dart/ios" + +SPEC CHECKSUMS: + Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c + path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c + xayn_ai_ffi_dart: 286b391bc1afb0c5b9c3d3e15cf1a54df623ffda + +PODFILE CHECKSUM: 8462e319511eccc6fb15d8c90ec86661a5952ac8 + +COCOAPODS: 1.10.1 diff --git a/bindings/dart/example/ios/Runner.xcodeproj/project.pbxproj b/bindings/dart/example/ios/Runner.xcodeproj/project.pbxproj index 333be0052..6390d899f 100644 --- a/bindings/dart/example/ios/Runner.xcodeproj/project.pbxproj +++ b/bindings/dart/example/ios/Runner.xcodeproj/project.pbxproj @@ -3,12 +3,13 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 72DFB68CF548092F2874C832 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 687EF9772752952388763721 /* Pods_Runner.framework */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; @@ -31,10 +32,13 @@ /* Begin PBXFileReference section */ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 1C235D5BFE26DE2B38DFA443 /* 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 = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 687EF9772752952388763721 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 8244B117EFEC78AF00829994 /* 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 = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -42,6 +46,7 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + A1315991F349B5845D30D06E /* 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 = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -49,12 +54,31 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 72DFB68CF548092F2874C832 /* Pods_Runner.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 4B6746522132B6DE3F9EE2C1 /* Pods */ = { + isa = PBXGroup; + children = ( + 8244B117EFEC78AF00829994 /* Pods-Runner.debug.xcconfig */, + A1315991F349B5845D30D06E /* Pods-Runner.release.xcconfig */, + 1C235D5BFE26DE2B38DFA443 /* Pods-Runner.profile.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + 80FC18BEE143DC02F68D3B4F /* Frameworks */ = { + isa = PBXGroup; + children = ( + 687EF9772752952388763721 /* Pods_Runner.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; 9740EEB11CF90186004384FC /* Flutter */ = { isa = PBXGroup; children = ( @@ -72,6 +96,8 @@ 9740EEB11CF90186004384FC /* Flutter */, 97C146F01CF9000F007C117D /* Runner */, 97C146EF1CF9000F007C117D /* Products */, + 4B6746522132B6DE3F9EE2C1 /* Pods */, + 80FC18BEE143DC02F68D3B4F /* Frameworks */, ); sourceTree = ""; }; @@ -105,12 +131,14 @@ isa = PBXNativeTarget; buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; buildPhases = ( + B044492691A10A4D075F8CF7 /* [CP] Check Pods Manifest.lock */, 9740EEB61CF901F6004384FC /* Run Script */, 97C146EA1CF9000F007C117D /* Sources */, 97C146EB1CF9000F007C117D /* Frameworks */, 97C146EC1CF9000F007C117D /* Resources */, 9705A1C41CF9048500538489 /* Embed Frameworks */, 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + 1882B6A1FC1F068401D8749B /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -169,6 +197,23 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 1882B6A1FC1F068401D8749B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -197,6 +242,28 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; }; + B044492691A10A4D075F8CF7 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -264,6 +331,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -272,7 +340,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -290,7 +358,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.xayn.xaynAiFfiDartExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -332,6 +403,7 @@ DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; + EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; @@ -346,7 +418,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -387,6 +459,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; + EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -395,11 +468,12 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.1; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; @@ -414,7 +488,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.xayn.xaynAiFfiDartExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -433,7 +510,10 @@ CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; ENABLE_BITCODE = NO; INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.xayn.xaynAiFfiDartExample; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; diff --git a/bindings/dart/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/bindings/dart/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a28140cfd..46d2d0d85 100644 --- a/bindings/dart/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/bindings/dart/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ - - - - + + - - + +