Comments (17)
Hi @pokryfka, thanks for bringing this to our attention. aws-mobile-appsync-sdk-ios uses Travis CI, which does not yet support Xcode 13.
Until Xcode 13 is available in our CI pipeline, it should be possible for Carthage to build the SDK from source. Is this behavior working for you?
from aws-mobile-appsync-sdk-ios.
Thank you for following up on that.
Yes, I can compile it.
The main issue with it is that it takes quite a long time.
It compiles all the targets of AWSCore, most of them are not needed by AppSync itself.
Looking forward to CI update.
from aws-mobile-appsync-sdk-ios.
@ameter Travis CI added an image with Xcode 13.1
from https://docs.travis-ci.com/user/reference/osx/#xcode-version
Xcode 13.1 is available by adding osx_image: xcode13.1 to your .travis.yml.
from aws-mobile-appsync-sdk-ios.
👋
from aws-mobile-appsync-sdk-ios.
@pokryfka Thanks for following up. We'll update the build and provide an update here when the new version is ready.
from aws-mobile-appsync-sdk-ios.
@pokryfka we updated our CI script and released a new of version of the SDK. Let us know if that solves your issues
from aws-mobile-appsync-sdk-ios.
Thank you for the change.
Unfortunately ABI changed again and the latest stable version, 5.5.2
, is not binary compatible with 5.5.1
:/
I guess its primarily because of async/await backward compatibility.
*** Downloading aws-mobile-appsync-sdk-ios binary at "3.4.2"
*** Skipped installing aws-mobile-appsync-sdk-ios binary due to the error:
"Incompatible Swift version - framework was built with 5.5.1 (swiftlang-1300.0.31.4 clang-1300.0.29.6) and the local version is 5.5.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)."
Please note that Travis does have image with Xcode 13.2.1/Swift 5.5.2:
Xcode 13.2.1 is available by adding osx_image: xcode13.2 to your .travis.yml.
from aws-mobile-appsync-sdk-ios.
Thank you!
from aws-mobile-appsync-sdk-ios.
Well, binaries are fetched as expected but they dont include AppSync at all.
from aws-mobile-appsync-sdk-ios.
@pokryfka We released AppSync SDK v3.5.0 that includes a pre-built version of the framework bundled in a XCFramework. Let us know if that solves your issue.
from aws-mobile-appsync-sdk-ios.
@pokryfka We released AppSync SDK v3.5.0 that includes a pre-built version of the framework bundled in a XCFramework. Let us know if that solves your issue.
Thank you for the update.
I made a quick test and the generated framework can be imported (embedded), however when the library is loaded (runtime) it lacks some symbols from AppSyncRealTimeClient
.
(I did embed AppSyncRealTimeClient).
Will try to investigate further.
dyld[41253]: Symbol not found: _$s21AppSyncRealTimeClient0aB11MessageTypeO9subscribeyACSScACmFWC
Referenced from: /Users/michal/Library/Developer/Xcode/DerivedData/SuperPro-buvmonsqzsflotdpwrvmqdchvsof/Build/Products/Debug-iphonesimulator/AWSAppSync.framework/AWSAppSync
Expected in: /Users/michal/Library/Developer/Xcode/DerivedData/SuperPro-buvmonsqzsflotdpwrvmqdchvsof/Build/Products/Debug-iphonesimulator/AppSyncRealTimeClient.framework/AppSyncRealTimeClient
Symbol not found: _$s21AppSyncRealTimeClient0aB11MessageTypeO9subscribeyACSScACmFWC
For the record, Cartfile
does not pin any specific version:
github "awslabs/aws-mobile-appsync-sdk-ios"
and its resolved to:
github "aws-amplify/aws-appsync-realtime-client-ios" "1.9.0"
github "aws/aws-sdk-ios" "2.27.1"
github "awslabs/aws-mobile-appsync-sdk-ios" "3.5.0"
github "daltoniam/starscream" "4.0.4"
github "stephencelis/SQLite.swift" "0.12.2"
from aws-mobile-appsync-sdk-ios.
@pokryfka are you getting that error from a clean build? If you haven't done that already, I'd also recommend to clean your derived data folder just to rule out that the issue isn't related to old artifacts.
from aws-mobile-appsync-sdk-ios.
@pokryfka are you getting that error from a clean build? If you haven't done that already, I'd also recommend to clean your derived data folder just to rule out that the issue isn't related to old artifacts.
removing derived data does not help.
I just rechecked it in clean environment and the problem remains:
dyld[37985]: Symbol not found: _$s21AppSyncRealTimeClient0aB11MessageTypeO9subscribeyACSScACmFWC
Referenced from: /Users/pokryfka/Library/Developer/Xcode/DerivedData/SuperPro-aojgolpochodiodkgrdjucubyrye/Build/Products/Debug-iphonesimulator/AWSAppSync.framework/AWSAppSync
The problem does not happen when I build xframeworks
myself which I do using using Carthage:
carthage build --use-xcframeworks --platform ios --no-use-binaries
(without --no-use-binaries
Carthage downloads binaries which saves a lot of compilation time but, for now, does not work - see error above)
Cartfile
:
github "awslabs/aws-mobile-appsync-sdk-ios"
Cartfile.resolved
:
github "aws-amplify/aws-appsync-realtime-client-ios" "1.9.0"
github "aws/aws-sdk-ios" "2.27.2"
github "awslabs/aws-mobile-appsync-sdk-ios" "3.5.0"
github "daltoniam/starscream" "4.0.4"
github "stephencelis/SQLite.swift" "0.12.2"
--
enums seem to be compiled/bridged/exported differently,
I also noticed warning when switching AWSAppSyncClientError
value to handle "unknown" case
which does not happen when I compile frameworks myself.
from aws-mobile-appsync-sdk-ios.
BTW Reachibility
is not explicitly listed as dependency, it used to be prior to 3.5.0
from aws-mobile-appsync-sdk-ios.
@pokryfka how are you linking the framework in your project?
Your target should be linking at least the following binaries:
- AppSyncRealTimeClient
- AWSAppSync
- AWSCore
- SQLite
- Starscream
BTW Reachibility is not explicitly listed as dependency, it used to be prior to 3.5.0
That's expected, we've opted to temporarily embed and renamed that to AWSAppSyncReachability
to circumvent this Swift compiler issue. In the long term we'd like to use Apple's Network framework.
from aws-mobile-appsync-sdk-ios.
right, I link all of these:
private let appSyncFrameworks = [
"AWSAppSync",
"AppSyncRealTimeClient",
"AWSCore",
"SQLite",
"Starscream",
"Reachability",
]
it all works well when I build them myself via carthage build --use-xcframeworks --platform ios --no-use-binaries
if I fetch them, which I do using carthage build --use-xcframeworks --platform ios
there are linking problems
from aws-mobile-appsync-sdk-ios.
we can close it as far as I am concerned,
I switched to SPM as Xcode support of SPM got a bit better
BTW I noticed that even when adding AppSync via SPM it still gets AWSCore xcframeworks,
its just that they are not downloaded by Carthage
from aws-mobile-appsync-sdk-ios.
Related Issues (20)
- AWS AppSync SDK with AppSync APIs v2 protocol (pure WebSockets) HOT 1
- AWSAppSyncClient: AWSPerformMutationQueue Crash HOT 2
- Crash: AWSAppSyncClient.sync HOT 5
- Removing pods from source control HOT 2
- AWSMobileClient Crash when app starts HOT 3
- Completion Handler on AWSAppSyncClient.perform called more than once. HOT 1
- Enabling retry for custom scenarios HOT 1
- Update SQLite dependency to match Amplify.DataStore's SQLite version
- Make public constructor for GraphQLError HOT 2
- SPM dependency conflict with Amplify library HOT 6
- Using AWSAppSync with Amplify DataStore HOT 5
- App crashes: AWSAppSync $s10AWSAppSync36AWSCognitoUserPoolsAuthProviderAsyncPAAE09getLatestF5TokenSSyF HOT 1
- SPM dependency resolution failure using aws-mobile-appsync-sdk-ios 3.6.2 and amplify-swift 2.6.0 HOT 2
- AWS subscriptions - subscribe function is not thread safe and causes crashes HOT 1
- Version incompability with other amplify packages HOT 2
- Unknow TCP connection process keep running even when all subscriptions are unsubscribed HOT 1
- How to avoid duplicate mutations when the app is backgrounded/quit before the mutation is finished? HOT 1
- AppSync retry mechanism HOT 3
- Built app with Xcode 15.2 crashes after AppSyncClient subscribe on iOS 16.3.1 version or lower HOT 4
- For iOS App, We are using this SDK, We are getting ITMS-91053: Missing API declaration recently because PrivacyInfo needs to be included for 3rd party SDK. HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aws-mobile-appsync-sdk-ios.