From 45cb162e5a89e8bbdd80704eded9d2ecf1704ba3 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Tue, 17 May 2022 12:23:23 +0300 Subject: [PATCH] Fix sample project, cleanup tests and add github action --- .github/workflows/ffi.yml | 57 +++++++++ .../MatrixRustSDK.xcodeproj/project.pbxproj | 119 ------------------ .../MatrixRustSDK/ClientError+Error.swift | 11 -- .../MatrixRustSDKTests.swift | 31 ++++- .../MatrixRustSDKUITests.swift | 42 ------- apple/build_xcframework.sh | 14 +-- apple/debug_build_xcframework.sh | 13 +- 7 files changed, 101 insertions(+), 186 deletions(-) create mode 100644 .github/workflows/ffi.yml delete mode 100644 apple/MatrixRustSDK/MatrixRustSDK/ClientError+Error.swift delete mode 100644 apple/MatrixRustSDK/MatrixRustSDKUITests/MatrixRustSDKUITests.swift diff --git a/.github/workflows/ffi.yml b/.github/workflows/ffi.yml new file mode 100644 index 000000000..dc62437a9 --- /dev/null +++ b/.github/workflows/ffi.yml @@ -0,0 +1,57 @@ +name: FFI + +on: + workflow_dispatch: + push: + branches: [main] + pull_request: +# branches: [main] +# types: +# - opened +# - reopened +# - synchronize +# - ready_for_review + +env: + CARGO_TERM_COLOR: always + +jobs: + test: + name: Run Apple platform tests + runs-on: macos-12 + + steps: + - name: Checkout + uses: actions/checkout@v1 + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + + - name: Install targets + run: | + rustup target add aarch64-apple-ios-sim + rustup target add x86_64-apple-ios + + - name: Install Uniffi + uses: actions-rs/cargo@v1 + with: + command: install + args: uniffi_bindgen + + - name: Load cache + uses: Swatinem/rust-cache@v1 + + - name: Generate .xcframework + run: sh apple/debug_build_xcframework.sh ci + + - name: Run XCTests + run: | + xcodebuild test \ + -project apple/MatrixRustSDK/MatrixRustSDK.xcodeproj \ + -scheme MatrixRustSDK \ + -sdk iphonesimulator \ + -destination 'platform=iOS Simulator,name=iPhone 13,OS=15.4' \ No newline at end of file diff --git a/apple/MatrixRustSDK/MatrixRustSDK.xcodeproj/project.pbxproj b/apple/MatrixRustSDK/MatrixRustSDK.xcodeproj/project.pbxproj index 04b66cc16..38cc51514 100644 --- a/apple/MatrixRustSDK/MatrixRustSDK.xcodeproj/project.pbxproj +++ b/apple/MatrixRustSDK/MatrixRustSDK.xcodeproj/project.pbxproj @@ -10,12 +10,10 @@ 181AA19B27B52AB40005F102 /* MatrixSDKFFI.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 181AA19A27B52AB40005F102 /* MatrixSDKFFI.xcframework */; }; 181AA19C27B52AB40005F102 /* MatrixSDKFFI.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 181AA19A27B52AB40005F102 /* MatrixSDKFFI.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 189A89BA27B40BBF0048B0A5 /* sdk.swift in Sources */ = {isa = PBXBuildFile; fileRef = 189A89B927B40BBF0048B0A5 /* sdk.swift */; }; - 189A89C827B4201C0048B0A5 /* ClientError+Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = 189A89C727B4201C0048B0A5 /* ClientError+Error.swift */; }; 18CE89D827B2939900CA89E1 /* MatrixRustSDKApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18CE89D727B2939900CA89E1 /* MatrixRustSDKApp.swift */; }; 18CE89DA27B2939900CA89E1 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18CE89D927B2939900CA89E1 /* ContentView.swift */; }; 18CE89DC27B2939A00CA89E1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 18CE89DB27B2939A00CA89E1 /* Assets.xcassets */; }; 18CE89E927B2939A00CA89E1 /* MatrixRustSDKTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18CE89E827B2939A00CA89E1 /* MatrixRustSDKTests.swift */; }; - 18CE89F327B2939A00CA89E1 /* MatrixRustSDKUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18CE89F227B2939A00CA89E1 /* MatrixRustSDKUITests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -26,13 +24,6 @@ remoteGlobalIDString = 18CE89D327B2939900CA89E1; remoteInfo = MatrixRustSDK; }; - 18CE89EF27B2939A00CA89E1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 18CE89CC27B2939900CA89E1 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 18CE89D327B2939900CA89E1; - remoteInfo = MatrixRustSDK; - }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -52,18 +43,14 @@ /* Begin PBXFileReference section */ 181AA19927B52AA60005F102 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 181AA19A27B52AB40005F102 /* MatrixSDKFFI.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = MatrixSDKFFI.xcframework; path = ../../generated/MatrixSDKFFI.xcframework; sourceTree = ""; }; - 189A899E27B2BADA0048B0A5 /* build_xcframework.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = build_xcframework.sh; sourceTree = SOURCE_ROOT; }; 189A89B927B40BBF0048B0A5 /* sdk.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = sdk.swift; path = ../../../generated/swift/sdk.swift; sourceTree = ""; }; 189A89C327B417CA0048B0A5 /* MatrixRustSDK-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MatrixRustSDK-Bridging-Header.h"; sourceTree = ""; }; - 189A89C727B4201C0048B0A5 /* ClientError+Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ClientError+Error.swift"; sourceTree = ""; }; 18CE89D427B2939900CA89E1 /* MatrixRustSDK.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MatrixRustSDK.app; sourceTree = BUILT_PRODUCTS_DIR; }; 18CE89D727B2939900CA89E1 /* MatrixRustSDKApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixRustSDKApp.swift; sourceTree = ""; }; 18CE89D927B2939900CA89E1 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 18CE89DB27B2939A00CA89E1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 18CE89E427B2939A00CA89E1 /* MatrixRustSDKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MatrixRustSDKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 18CE89E827B2939A00CA89E1 /* MatrixRustSDKTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixRustSDKTests.swift; sourceTree = ""; }; - 18CE89EE27B2939A00CA89E1 /* MatrixRustSDKUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MatrixRustSDKUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 18CE89F227B2939A00CA89E1 /* MatrixRustSDKUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatrixRustSDKUITests.swift; sourceTree = ""; }; 18CE8A0127B293A900CA89E1 /* MatrixRustSDK.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MatrixRustSDK.entitlements; sourceTree = ""; }; /* End PBXFileReference section */ @@ -83,13 +70,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 18CE89EB27B2939A00CA89E1 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -114,7 +94,6 @@ children = ( 18CE89D627B2939900CA89E1 /* MatrixRustSDK */, 18CE89E727B2939A00CA89E1 /* MatrixRustSDKTests */, - 18CE89F127B2939A00CA89E1 /* MatrixRustSDKUITests */, 18CE89D527B2939900CA89E1 /* Products */, 189A89AB27B2E16B0048B0A5 /* Frameworks */, ); @@ -125,7 +104,6 @@ children = ( 18CE89D427B2939900CA89E1 /* MatrixRustSDK.app */, 18CE89E427B2939A00CA89E1 /* MatrixRustSDKTests.xctest */, - 18CE89EE27B2939A00CA89E1 /* MatrixRustSDKUITests.xctest */, ); name = Products; sourceTree = ""; @@ -134,11 +112,9 @@ isa = PBXGroup; children = ( 181AA19927B52AA60005F102 /* Info.plist */, - 189A899E27B2BADA0048B0A5 /* build_xcframework.sh */, 189A89B827B40BB10048B0A5 /* Generated */, 18CE89D727B2939900CA89E1 /* MatrixRustSDKApp.swift */, 18CE89D927B2939900CA89E1 /* ContentView.swift */, - 189A89C727B4201C0048B0A5 /* ClientError+Error.swift */, 18CE8A0127B293A900CA89E1 /* MatrixRustSDK.entitlements */, 18CE89DB27B2939A00CA89E1 /* Assets.xcassets */, 189A89C327B417CA0048B0A5 /* MatrixRustSDK-Bridging-Header.h */, @@ -154,14 +130,6 @@ path = MatrixRustSDKTests; sourceTree = ""; }; - 18CE89F127B2939A00CA89E1 /* MatrixRustSDKUITests */ = { - isa = PBXGroup; - children = ( - 18CE89F227B2939A00CA89E1 /* MatrixRustSDKUITests.swift */, - ); - path = MatrixRustSDKUITests; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -201,24 +169,6 @@ productReference = 18CE89E427B2939A00CA89E1 /* MatrixRustSDKTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 18CE89ED27B2939A00CA89E1 /* MatrixRustSDKUITests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 18CE89FE27B2939A00CA89E1 /* Build configuration list for PBXNativeTarget "MatrixRustSDKUITests" */; - buildPhases = ( - 18CE89EA27B2939A00CA89E1 /* Sources */, - 18CE89EB27B2939A00CA89E1 /* Frameworks */, - 18CE89EC27B2939A00CA89E1 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 18CE89F027B2939A00CA89E1 /* PBXTargetDependency */, - ); - name = MatrixRustSDKUITests; - productName = MatrixRustSDKUITests; - productReference = 18CE89EE27B2939A00CA89E1 /* MatrixRustSDKUITests.xctest */; - productType = "com.apple.product-type.bundle.ui-testing"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -237,10 +187,6 @@ CreatedOnToolsVersion = 13.2.1; TestTargetID = 18CE89D327B2939900CA89E1; }; - 18CE89ED27B2939A00CA89E1 = { - CreatedOnToolsVersion = 13.2.1; - TestTargetID = 18CE89D327B2939900CA89E1; - }; }; }; buildConfigurationList = 18CE89CF27B2939900CA89E1 /* Build configuration list for PBXProject "MatrixRustSDK" */; @@ -258,7 +204,6 @@ targets = ( 18CE89D327B2939900CA89E1 /* MatrixRustSDK */, 18CE89E327B2939A00CA89E1 /* MatrixRustSDKTests */, - 18CE89ED27B2939A00CA89E1 /* MatrixRustSDKUITests */, ); }; /* End PBXProject section */ @@ -279,13 +224,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 18CE89EC27B2939A00CA89E1 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -293,7 +231,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 189A89C827B4201C0048B0A5 /* ClientError+Error.swift in Sources */, 18CE89DA27B2939900CA89E1 /* ContentView.swift in Sources */, 189A89BA27B40BBF0048B0A5 /* sdk.swift in Sources */, 18CE89D827B2939900CA89E1 /* MatrixRustSDKApp.swift in Sources */, @@ -308,14 +245,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 18CE89EA27B2939A00CA89E1 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 18CE89F327B2939A00CA89E1 /* MatrixRustSDKUITests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ @@ -324,11 +253,6 @@ target = 18CE89D327B2939900CA89E1 /* MatrixRustSDK */; targetProxy = 18CE89E527B2939A00CA89E1 /* PBXContainerItemProxy */; }; - 18CE89F027B2939A00CA89E1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 18CE89D327B2939900CA89E1 /* MatrixRustSDK */; - targetProxy = 18CE89EF27B2939A00CA89E1 /* PBXContainerItemProxy */; - }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -553,40 +477,6 @@ }; name = Release; }; - 18CE89FF27B2939A00CA89E1 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = org.matrix.MatrixRustSDKUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = MatrixRustSDK; - }; - name = Debug; - }; - 18CE8A0027B2939A00CA89E1 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = org.matrix.MatrixRustSDKUITests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_EMIT_LOC_STRINGS = NO; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_TARGET_NAME = MatrixRustSDK; - }; - name = Release; - }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -617,15 +507,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 18CE89FE27B2939A00CA89E1 /* Build configuration list for PBXNativeTarget "MatrixRustSDKUITests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 18CE89FF27B2939A00CA89E1 /* Debug */, - 18CE8A0027B2939A00CA89E1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 18CE89CC27B2939900CA89E1 /* Project object */; diff --git a/apple/MatrixRustSDK/MatrixRustSDK/ClientError+Error.swift b/apple/MatrixRustSDK/MatrixRustSDK/ClientError+Error.swift deleted file mode 100644 index 354eccef3..000000000 --- a/apple/MatrixRustSDK/MatrixRustSDK/ClientError+Error.swift +++ /dev/null @@ -1,11 +0,0 @@ -// -// ClientError+Error.swift -// MatrixRustSDK -// -// Created by Stefan Ceriu on 09.02.2022. -// - -import Foundation - -// Fixes code generation problem from uniffi -extension ClientError: Error { } diff --git a/apple/MatrixRustSDK/MatrixRustSDKTests/MatrixRustSDKTests.swift b/apple/MatrixRustSDK/MatrixRustSDKTests/MatrixRustSDKTests.swift index 32ca8b63a..17e7edd68 100644 --- a/apple/MatrixRustSDK/MatrixRustSDKTests/MatrixRustSDKTests.swift +++ b/apple/MatrixRustSDK/MatrixRustSDKTests/MatrixRustSDKTests.swift @@ -9,13 +9,40 @@ import XCTest @testable import MatrixRustSDK class MatrixRustSDKTests: XCTestCase { - func testExample() throws { + + static var client: Client! + + override class func setUp() { + client = try! guestClient(basePath: basePath, homeserver: "https://matrix.org") + } + + func testClientProperties() { + XCTAssertTrue(Self.client.isGuest()) + + XCTAssertNotNil(try? Self.client.restoreToken()) + XCTAssertNotNil(try? Self.client.deviceId()) + XCTAssertNotNil(try? Self.client.displayName()) + } + + func testReadOnlyFileSystemError() { do { let _ = try loginNewClient(basePath: "", username: "test", password: "test") - } catch ClientError.generic(let message) { + } catch ClientError.Generic(let message) { XCTAssertNotNil(message.range(of: "Read-only file system")) } catch { XCTFail("Not expecting any other kind of exception") } } + + // MARK: - Private + + static private var basePath: String { + guard let url = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first else { + fatalError("Should always be able to retrieve the caches directory") + } + + try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: false, attributes: nil) + + return url.path + } } diff --git a/apple/MatrixRustSDK/MatrixRustSDKUITests/MatrixRustSDKUITests.swift b/apple/MatrixRustSDK/MatrixRustSDKUITests/MatrixRustSDKUITests.swift deleted file mode 100644 index 4e6558448..000000000 --- a/apple/MatrixRustSDK/MatrixRustSDKUITests/MatrixRustSDKUITests.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// MatrixRustSDKUITests.swift -// MatrixRustSDKUITests -// -// Created by Stefan Ceriu on 08.02.2022. -// - -import XCTest - -class MatrixRustSDKUITests: XCTestCase { - - override func setUpWithError() throws { - // Put setup code here. This method is called before the invocation of each test method in the class. - - // In UI tests it is usually best to stop immediately when a failure occurs. - continueAfterFailure = false - - // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. - } - - override func tearDownWithError() throws { - // Put teardown code here. This method is called after the invocation of each test method in the class. - } - - func testExample() throws { - // UI tests must launch the application that they test. - let app = XCUIApplication() - app.launch() - - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. - } - - func testLaunchPerformance() throws { - if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { - // This measures how long it takes to launch your application. - measure(metrics: [XCTApplicationLaunchMetric()]) { - XCUIApplication().launch() - } - } - } -} diff --git a/apple/build_xcframework.sh b/apple/build_xcframework.sh index c031934d2..847664052 100755 --- a/apple/build_xcframework.sh +++ b/apple/build_xcframework.sh @@ -17,19 +17,19 @@ REL_TYPE_DIR="release" # Build static libs for all the different architectures # iOS -cargo build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios" # MacOS -cargo build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-darwin" -cargo build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-darwin" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-darwin" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-darwin" # iOS Simulator -cargo build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-sim" -cargo build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-ios" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-sim" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-ios" # Mac Catalyst -cargo +nightly build --locked -Z build-std -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-macabi" -cargo +nightly build --locked -Z build-std -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-ios-macabi" +cargo +nightly build -Z build-std -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-macabi" +cargo +nightly build -Z build-std -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-ios-macabi" # Lipo together the libraries for the same platform diff --git a/apple/debug_build_xcframework.sh b/apple/debug_build_xcframework.sh index 86bc31aec..ba12b63bd 100755 --- a/apple/debug_build_xcframework.sh +++ b/apple/debug_build_xcframework.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -eEu +cd "$(dirname "$0")" + IS_CI=false if [ $# -eq 1 ]; then @@ -22,11 +24,12 @@ mkdir -p ${GENERATED_DIR} REL_FLAG="--release" REL_TYPE_DIR="release" -# Build static the lib for aarch64 simulator - -cargo +nightly build --locked -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-sim" +# iOS Simulator +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "aarch64-apple-ios-sim" +cargo build -p matrix-sdk-ffi ${REL_FLAG} --target "x86_64-apple-ios" lipo -create \ + "${TARGET_DIR}/x86_64-apple-ios/${REL_TYPE_DIR}/libmatrix_sdk_ffi.a" \ "${TARGET_DIR}/aarch64-apple-ios-sim/${REL_TYPE_DIR}/libmatrix_sdk_ffi.a" \ -output "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a" @@ -55,8 +58,8 @@ xcodebuild -create-xcframework \ # Cleanup -if [ -f "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a" ]; then rm -rf "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a"; fi -if [ -d ${HEADERS_DIR} ]; then rm -rf ${HEADERS_DIR}; fi +# if [ -f "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a" ]; then rm -rf "${GENERATED_DIR}/libmatrix_sdk_ffi_iossimulator.a"; fi +# if [ -d ${HEADERS_DIR} ]; then rm -rf ${HEADERS_DIR}; fi if [ "$IS_CI" = false ] ; then echo "Preparing matrix-rust-components-swift"