Recent Releases of https://github.com/awslabs/aws-mobile-appsync-sdk-ios
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.7.1 (2024-05-21)
Bug Fixes
- Making APIKeyBasedConnectionPool thread-safe to prevent crashes (#596)
Misc.
- update missing sdk dependencies to 2.36.2 (#597)
- bump rexml from 3.2.5 to 3.2.8 (#598)
- Swift
Published by thisisabhash about 2 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.7.0 (2024-04-23)
Features
- update minimum ios deployment target to v12(PR #586)
- update dependency AppSyncRealTimeClient to 3.2.0
- update dependencies of AWSSDK to 2.36.0
SHA-512 checksum:
AWSAppSync.xcframework.zip c222669f04632e4bc6a1f4fce32f7893123051f88f0fa47a8d009cf254f4dcdb8e9b70bc8722eaed332c073d0b21f29cf8b499a70eb24da3fa9b059b5923f6bc
- Swift
Published by 5d about 2 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.5 (2024-04-23)
Bug Fixes
- fix AppSyncRealTimClient dependency version defined in podspec and podfile(PR #591)
Misc.
- updating AWS SDK dependency to 2.35.0(PR #590)
SHA-512 checksum:
AWSAppSync.xcframework.zip 1e08f4d94fad809f06791afd223c89a230c10dc5423924a2af9d77775d4f23e15de0381eaedaee48817bb8485fdccd0529b923e18d65ff6ccd06403d03c4f620
- Swift
Published by 5d about 2 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.4 (2024-02-28)
Bug Fixes
- fix: Perform optimistic updates without awaiting (https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/548)
Misc.
- Updating AWS SDK dependency to 2.34.0 (https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/583)
- Swift
Published by ruisebas over 2 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.3 (2023-12-14)
Bug fixes:
- subscribe function is not thread safe and causes crashes (https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/569) ### Misc updates:
- Update Podspec
- Swift
Published by phantumcode over 2 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.2
Misc. Updates
- Update SDK dependency to 2.30.1 and AppSyncRealTimeClient dependency to 3.0.0 (https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/561)
- Swift
Published by thisisabhash over 3 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.1
Misc.
- chore: skip build xcframework when build for cocoapods https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/524
- chore: Update the gemfile to pin to version https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/530
- Swift
Published by royjit about 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.6.0
Features
- feat: Upgrade AppSyncRTClient 1.8.0 and enable logs (PR #519)
Bug Fixes
- fix: Thread safe subscription watcher cancel (PR #523)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- feat: Upgrade AppSyncRealTimeClient 1.7.0 for Starscream 4 (PR #518)
- AppSync SDK is now also released as an XCFramework (PR #521)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.4.3
Misc. Updates
- AppSync is now built with Xcode 13.2 in the CI/CD pipeline
- Upgrade to 2.27.0 SDK. PR #514
- Swift
Published by royjit over 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- fix: remove race condition on activeTimer access in AWSAppSyncHTTPNetworkTransport (#501)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Update to 2.26.0 SDK dependencies (PR #492)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Updated
LambdaAuthInterceptorto support async auth provider (PR #488)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 4 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.3.1
Misc. Updates
- Update to 2.25.0 SDK dependencies (PR #484)
- Swift
Published by diegocstn almost 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
New Features
Added support for AWS Lambda auth mode (PR #478)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools almost 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Update to 2.24.0 SDK dependencies (PR #472)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
New Features
- Swift Package Manager
- The AWS AppSync SDK for iOS can now be installed via Swift Package Manager. See the README for full details.
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Update dependencies (PR #462)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
Build
- Appsync iOS is distributed as XCFrameworks rather than traditional .frameworks with βfatβ binaries. See the README for installation instructions.
- chore: Pinned Reachability library version to 5.0.0 (PR #455)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.1.15
Misc. Updates
- Update dependencies to consume AppSyncRealTimeClient fix for race condition on disconnect (PR #454)
- Swift
Published by palpatim over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Add a parameter for the api key expiration for integ test setup CFN template (PR #439)
- Update dependencies. (PR #441)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fix bug in subscription where data is not translated correctly to a format valid for JSONSerialization (See Issue #401, PR #402). Thanks @LachlanMcCulloch! π
Misc. Updates
- Updated to latest dependencies
- AppSync is now built with Xcode 11.6 in the CI/CD pipeline
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.1.14
Misc. Updates
Upgrade to 2.22.0 SDK. PR #451
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Update dependencies. (PR #445)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.1.11
Misc. Updates
- Refactored
AWSAppSyncHTTPNetworkTransportto simplify internal auth handling, and to support providing your ownURLSessionin the new initializer. (PR #422). Thanks for the initial PR, @lesmuc! π - Update dependencies. (PR #436)
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Upgrade to 2.18.0 SDK. PR #432
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Deprecated release
This release is deprecated due to errors. Please use 3.1.9 or greater.
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Upgrade to 2.16.0 SDK. PR #410
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 5 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 3.1.4
Bug Fixes
- Updated AppSync RealTime Client, which fixes stale connection handling upon resume from background:
- https://github.com/awslabs/aws-mobile-appsync-sdk-ios/issues/396
- https://github.com/awslabs/aws-mobile-appsync-sdk-ios/issues/403
- Also see https://github.com/aws-amplify/aws-appsync-realtime-client-ios/issues/24
Misc. Updates
- Updated to latest dependencies
- Swift
Published by aws-mobile-appsync-sdk-ios-tools almost 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
General SDK improvements
- Upgrade to 2.14.0 SDK and 1.2.0 realtime client. See PR #400
Misc. Updates
- Changed the repo's default branch to 'main'
- Build Carthage binaries using Xcode 11.5
- Swift
Published by aws-mobile-appsync-sdk-ios-tools almost 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
General SDK improvements
- Upgrade to AppSyncRealTimeClient 1.1.6
Misc. Updates
- Fix SwiftLint violation (PR #379) Thanks @RafaelPlantard!
- Update AWS dependencies to 2.13.1
- Add SwiftLint as a Pod dependency
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Deprecated release
This release is deprecated due to errors. Please use 3.1.2 or greater.
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
General SDK improvements
- Add Codable and Hashable to AWSAppSyncAuthType. See PR #352 Thanks @LachlanMcCulloch!
- Improved AppSyncSubscriptionWithSync with fixing retain cycle and adding
isCancelledstate. See Issue #342 and PR #355. Thanks, @LachlanMcCulloch! - Use AppSyncRealTimeClient 1.1.0 containing consolidated interceptors. See PR #353 for more details
- Update to use AppSyncRealTimeClient ~> 1.1, with Cartfile fix. See PR #367
- Swift
Published by aws-mobile-appsync-sdk-ios-tools about 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Default to
exponentialAWSAppSyncRetryStrategy when scheduling a delta sync when the appSyncClient reference is unavailable (#325). - Remove force-unwrap in derivation of retry strategy during delta sync. See issue #325 PR #327.
- Fix strong reference cycle in delta sync. See issue #342 PR #343. Thanks, @LachlanMcCulloch!
Misc. Updates
- Moved Realtime subscription connection logic to a separate package. See PR #338
- Made internal subscription connection to receive null as data in variables.
- Updated podspec file to use the right source file.
- Swift
Published by royjit over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Deprecated release
This release is deprecated due to errors. Please use 3.0.2 or greater.
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
General SDK improvements
Breaking API Changes
- Added support for connecting to AWS AppSync using pure WebSockets for GraphQL subscriptions.
- Selection set filtering will be done per client as each client can define their own selection set. In this case the subscription selection set must be a subset of the mutation selection set. For example, a subscription
addedPost{author title}linked to the mutationaddPost(...){id author title url version}would receive only the author and the title of the post and none of the other fields. However, if the mutation didn't have the author in its selection set the subscriber would get anullvalue for the author field (or an error in case the author field is defined as required/not-null in the schema). - In the earlier SDK version, if you didnβt configure the associated subscription selection set with the required fields and relied on the mutation fields to push data to subscribed client, the behavior will change when you move to this version that use pure WebSockets. In the example above, a subscription without the "author" field defined in its selection set would still return the author name with MQTT over WebSockets as the field is defined in the mutation, the same behavior wonβt apply for pure WebSockets. The subscription selection set is essential when using pure WebSockets: if a field is not explicitly defined in the subscription it won't be returned by AWS AppSync.
Breaking Build Changes
- Adopted Semantic versioning
- Starting with version 3.0.0 AppSync AWS iOS SDK will follow semantic versioning.
Misc. Updates
- Updated Reachability dependency to 5.0.0
- Swift
Published by palpatim over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- General SDK improvements
- Breaking Build Change Removed deprecated APIs for
AWSAppSyncSubscriptionErrorAWSAppSyncClientErrorAWSSQLLiteNormalizedCacheErrorMutationCacheAWSAppSyncClientConfigurationAWSAppSyncCacheConfiguration- Breaking Build Change The AWS AppSync SDK for iOS now requires Xcode 11 or above to build
- AppSync is now built targeting Swift 5.1
- Updated AWS SDK dependencies to 2.12.0
- Updated Reachability dependency to 4.3.1
- Updated SQLite.Swift dependency to 0.12.2
- Swift
Published by aws-mobile-appsync-sdk-ios-tools over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fixed a bug where data less than 128 bytes would cause a crash if logging were enabled. See issues #258 and #216, and PR #259. Thanks @johnmurphy01! π
Misc. Updates
- Updated AWS SDK dependencies to 2.11.0
- Swift
Published by palpatim over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 2.14.2 (Deprecated)
Deprecated release
This release has invalid dependency declaration in the AWSAppSync.podspec. Please use release 2.14.3 instead.
- Swift
Published by palpatim over 6 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Updated AWS SDK dependencies to 2.10.2
- Swift
Published by palpatim almost 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fix a bug where delta sync was not correctly storing/ retrieving the
lastSyncTime. See issue #232 - Breaking API Change To fix the delta sync logic, there was a change in the hashing function used internally. This change can cause the existing app to ignore the cache for the first sync and fetch data using base query. Subsequent sync operation should work as normal.
- Swift
Published by palpatim almost 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fixed a bug where calling multiple subscriptions in a burst could result in a crash.
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
New Features
- Support multiple authorization modes for a single AWS AppSync GraphQL endpoint.
- Breaking API Change Introduced
clientDatabasePrefixin theAWSAppSyncServiceConfigProviderthat accepts a prefix that will be used in the construction of database name for caching query responses, offline mutations and subscriptions metadata. The usage of the prefix can be enabled by the flaguseClientDatabasePrefix: trueas part of theAWSAppSyncCacheConfiguration. When the prefix is used, the name of the database would look as follows:
Purpose of cache | No prefix | Valid prefix
--- | --- | ---
Query responses | queries.db | <ClientDatabasePrefix>_queries.db
Offline Mutations | offlineMutations.db | <ClientDatabasePrefix>_offlineMutations.db
Subscriptions metadata for Delta Sync | subscriptionMetadataCache.db | <ClientDatabasePrefix>_subscriptionMetadataCache.db
The
ClientDatabasePrefixcan be passed viaawsconfiguration.jsonthat is generated from the AWS AppSync Console and Amplify CLI."AppSync": { "Default": { "ApiUrl": "https://xyz.appsync-api.us-east-2.amazonaws.com/graphql", "Region": "us-east-2", "AuthMode": "API_KEY", "ApiKey": "da2-xyz", "ClientDatabasePrefix": "MyAppSyncAPIName_API_KEY" } }The
AWSAppSyncClientobject can be constructed as follows:swift let serviceConfigAPIKey = try AWSAppSyncServiceConfig() let cacheConfigAPIKey = try AWSAppSyncCacheConfiguration(useClientDatabasePrefix: true, appSyncServiceConfig: serviceConfigAPIKey!) let clientConfigAPIKey = try AWSAppSyncClientConfiguration(appSyncServiceConfig: serviceConfigAPIKey!, cacheConfiguration: cacheConfigAPIKey!) let clientAPIKey = try AWSAppSyncClient(appSyncConfig: clientConfigAPIKey!)- Deprecated
clearCache()please useclearCaches(options:)instead. This new method will clear the query responses, offline mutations and subscriptions metadata by default and the options parameter can be used to fine-tune the operation.
- Deprecated
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fix a bug where subscriptions would be blocked from starting again after being cancelled. See issue #249
- Swift
Published by palpatim about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
2.12.1
Misc. Updates
- Make network reachability provider mockable See PR #245. Thanks @gleue! π
Bug Fixes
- Improved internal handling of subscription cancellation and disconnect.
- With this update, the cancellation behavior for subscription is more robust in both cases - when developer issues
canceland when SDK notifiesconnectionErrorin thestatusChangeHandlerandresultHandler - As a best practice, we recommend that if you do not want to receive any more callbacks on the
statusChangeHandlerandresultHandlerfor the subscription, issue acancelwhich would immediately stop all communication to the watcher. - Once
cancelis issued, no notifications or error callbacks will be given to the watcher. If the watcher object is not reference from application code, it will internally issue acanceland ensure that no callbacks are given.
- With this update, the cancellation behavior for subscription is more robust in both cases - when developer issues
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Upgraded SQLite.swift to 0.11.6 to fix a bug in persistent cache handling. See issue #211. Apps that declare direct dependencies on SQLite.swift must update the pods to avoid a conflict and get the fixed version. This new requires that AppSync be built using Xcode 10.2 or later.
Misc. Updates
Breaking Build Environment Changes
- AppSync SDK for iOS now requires Xcode 10.2 or later to build.
Other changes
- Updated AWS SDK dependencies to 2.9.6
- Updated SQLite.swift to 0.11.6
- Swift
Published by palpatim about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Fixed a bug where cancelled mutations would not be cleared from the persistent store and would be sent to service on app restart. See issue #187
Misc. Updates
- Updated AWS SDK dependencies to 2.9.5
- Swift
Published by palpatim about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
Behavior Change for Mutation Queue
- With this update, the internal operation logic of how mutations are processed is updated
- The mutation queue in the previous SDKs, depended on notification from reachability to determine if the mutations could be sent to the service; in the new behavior we are more aligned to Apple's Designing for Real-World Networks guidance
- The AppSync client will now
alwaysattempt to make a mutation request regardless of the network state - One the network response comes back, the SDK will inspect the error from
NSURLSessionand determine if the error was due to network not available, host not found or DNS lookup failed. If it was, the SDK will schedule a retry timer responsible to retry the request which will grow exponentially with every attempt - The retry handler will also watch for notification from reachability to determine if network is available again; in cases where SDK does get the notification, it will preempt the timer and make the request right away
- If the notification is not received, the timer will continue to retry the request. The polling interval is capped at 5 minutes to ensure that attempts are made at frequent attempts while respecting resources on device
- The mutations will retried at these intervals repeatedly until they are successful or cancelled
- AppSync client will ensure that it works with auth clients who return the correct errors. The AWS credential providers are validated to check if they return the correct
NSURLSessionerrors so that retry can be scheduled - If using a custom auth client, while invoking the error callback for auth provider, it is recommended to include
NSURLErrorDomainin thedomainfield and the indicated error code incodefield. - There are no API changes required to update to this behavior
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
2.10.4
New Features
- The AppSyncClient now supports specifying retry strategy using the
retryStrategyparameter inAWSAppSyncClientConfiguration. You can choose betweenaggressiveandexponential(default selection).
Bug Fixes
- Mark
uniqueIdentifierfield inAWSSubscriptionWatcheras public which was incorrectly marked private in previous version.
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
2.10.3
New Features
- The AppSyncClient's
subscribemethod now accepts an optionalstatusChangeHandler. If provided, then theAWSAppSyncSubscriptionWatcherreturned by thesubscribemethod will invoke that method when it is notified of changes to the state of the underlying MQTT client.AWSAppSyncSubscriptionWatcherStatusfor a description of the statuses and their progression. Thanks @fans3210, @shannon-hager-skookum, and @achager for contributing your thoughts to the original request (Issue #42) and to @MarioBajr for contributing the original implementation on PR #75. - Added a
queuedMutationCountproperty to AppSyncClient (Issue #192)
Bug fixes
- Fixed incorrect AWSCore dependency version in podspec (Issue #190)
- Fixed data races in AppSyncMQTTClient that were causing crashes (Issue #184)
Misc. Updates
- Added
AWSAppSyncClientLogFormatterutility class. Developers who want to use it can add it to the appropriate logger. For example, a configuration like:swift AWSDDLog.sharedInstance.logLevel = .verbose AWSDDTTYLogger.sharedInstance.logFormatter = AWSAppSyncClientLogFormatter() AWSDDLog.sharedInstance.add(AWSDDTTYLogger.sharedInstance)would output log messages like:2019-03-04 07:21:32.131-0800 [I AWSAppSyncClient.init(appSyncConfig:reachabilityFactory:), L75] Initializing AppSyncClient 2019-03-04 07:21:32.135-0800 [V AWSPerformMutationQueue.init(appSyncClient:networkClient:reachabiltyChangeNotifier:cacheFileURL:), L24] Initializing AWSPerformMutationQueue 2019-03-04 07:21:32.135-0800 [V AWSPerformMutationQueue.resume(), L95] Resuming OperationQueuePlease note thatverboselogging is quite verbose, and there is a significant difference betweenverboseanddebug. We will be makingdebugmore useful as we go. (See Issue #145)
As always, we recommend turning off logging when deploying to production. - Added some verbose logging around mutation queue handling and subscription connections; minor log additions elsewhere - Minor dead code removal & miscellaneous cleanup
- Swift
Published by rohandubal about 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug fixes
- Fixed a bug where queries with dots (
".") in the arguments were not being properly cached (Issue #110, #165) AWSAppSyncClient.perform(mutation:queue:optimisticUpdate:conflictResolutionBlock:resultHandler:)now properly invokes its result handler callbacks on the suppliedqueueinstead of always usingDispatchQueue.main
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug fixes
- Prepopulate the queries cache with an empty
QUERY_ROOTrecord, to allow optimistic updates of the cache where no queries have been previously performed. (Issue #92, #101) - Fix how "cache hits" are determined in queries, to match Apollo behavior. (#90)
A "cache hit" is defined as all members of the selection set having a non-nil value. For a simple query, (e.g., the
HeroNameQueryof the StarWars API), that is an easy mental map:
Cache hit
```javascript
{
"QUERY_ROOT": { "hero": "#hero" },
"#hero": { "hero": {"name": "R2-D2", "__typename": "Droid"} }
}
```
Cache misses ```javascript {}
{ "QUERY_ROOT": null }
{ "QUERY_ROOT": {} }
{
"QUERY_ROOT": { "hero": "#hero" },
"#hero": { "hero": null }
}
// Misses because type data is incomplete
{
"QUERY_ROOT": { "hero": "#hero" },
"#hero": { "hero": {"name": "R2-D2"} }
}
```
For more complex queries (like the TwoHeroesQuery), only all values being non-nil will result in a cache hit:
Cache Hit
javascript
{
"QUERY_ROOT": {
"hero": "#hero",
"hero(episode:EMPIRE)": "#hero(episode:EMPIRE)"
},
"#hero": {"name": "R2-D2", "__typename": "Droid"},
"#hero(episode:EMPIRE)": {"name": "Luke Skywalker", "__typename": "Human"}
}
Cache Misses ```javascript {}
{ "QUERY_ROOT": null }
{ "QUERY_ROOT": {} }
{
"QUERY_ROOT": { "hero": "#hero" },
"#hero": { "hero": null }
}
{
"QUERY_ROOT": {
"hero": "#hero"
},
"#hero": {"name": "R2-D2", "__typename": "Droid"}
}
```
These definitions match the existing Apollo behavior, as verified in additional tests against the unmodified Apollo codebase.
Misc. Updates
- Updated CloudFormation template to include S3 buckets and associated configuration to support complex object integration tests, and added integration tests for S3 uploads and downloads.
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug fixes
- Merged Apollo iOS PR #427 to fix incompatibility with EnumeratedIterator in latest Xcode 10.2 beta.
- Fixed an issue where performing a mutation with no parameters would crash clients using a backing database. Issue #33
- Reduced database contention to fix crash resuming from background (See Issue #160). Thanks @larryonoff for contributing to this fix! π
Misc. Updates
AWSAppSyncCacheConfiguration
AppSync persistent caches for queries (used by the Apollo store), mutations,
and subscription metadata are now stored in separate files. A new
AWSAppSyncCacheConfiguration API has been added that allows clients to
specify persistent caches for all, some, or none of these caches:
```swift // Specify persistent caches that live in the app's Cache directory let cacheConfiguration = try AWSAppSyncCacheConfiguration()
// ... or specify persistent caches that live in rootDirectory
let cacheConfiguration = try AWSAppSyncCacheConfiguration(withRootDirectory: rootDirectory)
// ... or specify a database path for the query cache and the subscriptionMetadata cache, but an in-memory cache for mutation queue let cacheConfiguration = AWSAppSyncCacheConfiguration(offlineMutations: nil, queries: queriesDatabasePath, subscriptionMetadataCache: subscriptionDatabasePath)
// ... or specify all caches to be in-memory let cacheConfiguration = AWSAppSyncCacheConfiguration.inMemory
// ... then use the cache config in the AWSAppSyncClientConfiguration constructor let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: serviceConfig, cacheConfiguration: cacheConfiguration) let appSyncClient = AWSAppSyncClient(appSyncConfig: appSyncConfig)
// Alternately, specify all in-memory caches by passing no cacheConfiguration
let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: serviceConfig)
let appSyncClient = AWSAppSyncClient(appSyncConfig: appSyncConfig)
```
Migration
Clients can migrate to the new AWSAppSyncCacheConfiguration with a utility method that performs a one-time move of data from the previous databaseURL to the new cache configuration directory:
```swift // Specify persistent caches that live in the app's Cache directory let cacheConfiguration = try AWSAppSyncCacheConfiguration()
let databaseURL = // whatever your old databaseURL was
// Upon successful completion, this method sets a flag in UserDefaults, making it safe // to call at startup for as long as this method exists. AWSAppSyncCacheConfigurationMigration.migrate(from: databaseURL, to: cacheConfiguration) ```
Breaking API Changes
AWSSQLLiteNormalizedCacheErrorhas been renamed toAWSAppSyncQueriesCacheError. Error conditions during manipulations of the Apollo store will now throw this type.
Deprecations
AWSSQLLiteNormalizedCacheis deprecated and will be removed in an upcoming minor version of AWSAppSync, as that implementation is an internal detail. Clients that wish to do cleanup of database files can useAWSAppSyncCacheConfigurationto get the path of the appropriate database file.- The
databaseURLoption toAWSAppSyncClientConfigurationis deprecated. Please use thecacheConfigurationoption (See above) - The
MutationCacheprotocol is deprecated because it is unused.
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
New Features
- Added an
AWSAppSyncClient.clearCache()method to clear the local Apollo cache. See Issue #36, PR #141 Thanks @larryonoff! π
Bug fixes
- AppSyncClient.sync() now properly invokes its subscription callbacks on the supplied
handlerQueueinstead of always usingDispatchQueue.main
Misc. Updates
- AWSAppSync now uses Xcode 10.1 to build its Carthage binaries. This will make the binaries compatible with Swift 4.2.1. Projects that have not yet upgraded to use Swift 4.2.1 will fall back to building from source.
- The AWSAppSync target no longer specifies values for
VALID_ARCHin its build settings but instead uses defaults. See PR#156 Thanks @larryonoff! π
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Bug Fixes
- Updated the Cartfile to depend on the correct version of the AWS iOS SDK. (Note, this is advisory only; we do not retrieve dependencies via Carthage.)
- Added Pods to source control so Carthage users (or anyone else who builds from source) will no longer need to issue a
pod updatebefore building (#150)
This release also includes changes from the previous, broken release, 2.9.0:
Bug Fixes
- Mutation queue handling is rewritten to use
OperationQueue, to fix cases where mutations would either deadlock (#81), or not execute (#106). Thanks @larryonoff! π - S3Objects now correctly upload whether they are included as part of a mutation's parameters or an input type (#122)
Misc. Updates
Breaking API Changes
AWSPerformMutationOperationwaspublic, now it'sinternalAWSAppSyncClient.performnow returnsCancellableinstead ofAWSPerformMutationOperation
Refactored internal network change notifications (#139)
Refactored structure & tests to make future maintenance easier. As part of this, we deprecated the
AWSAppSyncClientInfoclass in favor of theAWSAppSyncServiceConfigProviderprotocol. We provide a default implementationAWSAppSyncServiceConfig.AWSAppSyncClientInfowill be removed in a future minor version.- Thanks to @larryonoff for contributing code and PR feedback to this refactor! π
Refactored tests into Unit and Integration tests. Currently, any test that requires network activity is placed in Integration tests, even if the test hits localhost and not a valid service.
- Updated the README to include new instructions for setting up your integration test environment.
- The project now includes an AWS CloudFormation template to bootstrap your test setups. This will be updated in the future to include S3 buckets and associated configuration to support complex object integration tests.
Known Issues
- The
AWSAppSync.podspecfile incorrectly declares a dependency on version 2.9.0 ofAWSCore. The correct dependency version is 2.8.0, and is updated in the CocoaPods trunk spec repo.
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - [DEPRECATED] 2.9.0
This release has been deprecated. Carthage build failed for this release. Please use 2.9.1 instead.
- Swift
Published by desokroshan over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
- Use Swift 4.2's
Float.random(in:)instead ofarc4random()to generate request retry jitter. See PR #108. Thanks @larryonoff! π - Added SwiftLint to project. See PR #121 and issue #107. Thanks @larryonoff! π
- Increase stability of the integration tests; removed subscription integration test since its functionality is now covered by sync operation test.
- Upgraded SQLite.swift to 0.11.5, which fixes compiler warnings when compiling AWSAppSync in Xcode. Thanks @larryonoff! π
- Breaking API Changes
SyncConfiguration:- The type changed from a
classto astruct - The initializer parameter is now optional, and the previous
defaultSyncConfigurationmethod has been removed. Create a default configuration by invoking the initializer with no arguments,SyncConfiguration()
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 2.7.0
New Features
- Added support for Delta Sync Feature Delta Sync allows you to perform automatic synchronization with an AWS AppSync GraphQL server. The client will perform reconnection, exponential backoff, and retries when network errors take place for simplified data replication to devices. For more details, please refer documentation.
Bug Fixes
- Fixed issue where if a timeout error occurred due to lack of network availability, the callback would not be given back to the developer. See issue #91
Misc. Updates
- Officially convert project to Swift 4.2. Previously, the project used some Swift 4.2 idioms even though the
SWIFT_VERSIONwas officially set to 3. This change makes the support explicit in the project files and README. - Updated SwiftReachability dependency to 4.3.0. (See PR #84)[https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/84] Thanks @larryonoff! π
- Replaced generic struct based AWSAppSyncClientError by a typed enum. (See PR #35)[https://github.com/awslabs/aws-mobile-appsync-sdk-ios/pull/35] Thanks @MarioBajr! π
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Misc. Updates
AWSAppSyncnow depends onAWSCoreversion2.7.xinstead of2.6.x.
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 2.6.23
Bug Fixes
- Resolved retain cycles in AWSAppSyncClient which allow the instance to be deallocated. See PR#88 Thanks @ifabijanovic π
- Resolved retain cycle in underlying MQTT client. Source
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Enhancements
- Allow multiple active subscriptions while using
API_KEYauth. - Add retry logic for the HTTP service calls.
- Allow responses to have missing fields if they are optional.
- Fix issue with optimistic writes which would incorrectly throw
JSONDecodingError.missingValueerror. See issues #51 #8 - Fix warnings imposed by iOS 12. See PR#71
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Enhancements
- Improve subscriptions logic to use a single shared queue and avoid delay between multiple subscriptions. See PR#28 Thanks @MarioBajr! π
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
Enhancements
- Allow asynchronous fetching of User Pools / OIDC auth token. See PR#62 Thanks @JohnRbk π
- Integrate logging with
AWSDDLog. To print logs from the SDK, follow instructions mentioned here.
Bug Fixes
- Fixed a bug in loading configuration from
awsconfiguration.json - Fixed a bug where receiving a non String or JSON object would cause SDK to crash. The SDK would now instead log an error message.
- Swift
Published by rohandubal over 7 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
New Features
- Add support for AWS AppSync configuration through
awsconfiguration.jsoninAWSAppSyncClient.
- Swift
Published by rohandubal almost 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - 2.6.18
2.6.18
Enhancements
- Improve connection handling of underlying MQTTClient.
- Swift
Published by rohandubal almost 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
2.6.17
Enhancements
- Improve performance of AWSAppSyncMQTTClient. See PR#34
- AWSNetworkTransport modifications to enable the ability to mock server. See PR#40
- Fixed typo in AWSGraphQLSubscriptionResponse initializer and variable. See PR#29
Bug Fixes
- Preventing IAM signature requests from blocking the main thread. See PR#32
- Call the AWSAppSyncClientConfiguration connectionStateChangeHandler which was previously un-used. See PR#30
- Swift
Published by rohandubal almost 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios -
2.6.16
New Feature
- Add OpenID Connect (OIDC) support as an authorization option.
Bug Fixes
- Fix SQLite lock issue. See PR#20
- Renamed private AWSSRWebSocket classes in order to avoid duplicated symbols. See PR#21
- Respect the requested callback queue when invoking subscription callbacks. See PR#22
- Swift
Published by rohandubal about 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - AWS AppSync iOS Client
2.6.15
Bug Fix
- Fixed a crash in
cancelmethod ofSubscriptionWatcherby adding a safer workflow. See PR #11
- Swift
Published by rohandubal about 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - AWS AppSync iOS Client
New Features
- Expose whether a result was served from service or cache. Source
- Watchers are now triggered while writing to cache from a transaction. Source
Bug Fixes
- Fixed a bug in
cancelmethod ofSubscriptionWatcherwhere callingcanceland then restarting a subscription in the same view controller would cause a crash.
- Swift
Published by rohandubal about 8 years ago
https://github.com/awslabs/aws-mobile-appsync-sdk-ios - AWS AppSync iOS Client
- Swift
Published by rohandubal over 8 years ago