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 @@
-
-
-
-
+
+
-
-
+
+