- Update fueling API
- Add optional context to logEvent request
- Add missing DisableDiscount to project
- Update Pay API
- Add sdk handlers for optional receipt email and receipt attachments
- Handling of 401 for authorized HTTP requests"
- Fix setting access token for non IDKit use cases"
- Fix network requests may not complete when no access token available"
- Fix network requests may not complete when no access token available
- Fix setting access token for non IDKit use cases
- Add exponential backoff to refresh token request
- Handling of 401 for authorized HTTP requests
- Fetch cofu payment methods from geojson instead of tiles
- Update fueling api to 2024-3
- Extend AppDrawer customizability
- Add userLocationAccuracy to AppData
- Adjust SDK for a better api code generation
- Update poi api to 2024-1
- Update pay api to 2024-2
- Update fueling api to 2024-2
- Adjust bump script to correctly prune tags
- Bump version to 23.0.1"
- Bump version to 23.0.1
- Bump version to 23.0.0"
- Bump version to 23.0.0
- Adjust review deploy tag version
- Adjust unit tests to appropriate locale
- Fix webview resets
- Make AppDrawer class more accessible
- Integrate swiftlint as build tool plugin
- Update User API
- Update PayAPI
- Add fetch cofu stations within POIKit.BoundingBox
- Implement shareFile message handler
- Add
POIKit.CofuGasStation
property toPOIKit.GasStation
if available - Remove obsolete
POIModelConvertible
- Fix completion handler of appviewcontroller not always being called
- Raise deployment target to ios 15
- Add privacy manifest
- Add fallback texts for
AppDrawer
- Introduce
clientId
as required property for the SDK to be set up
- Replace
pace-min
as the defaultgeoAppsScope
with theclientId
- Remove deprecated
AppKit
methodhandleRedirectURL(URL)
- Drop support for iOS 11 and 12
- Upgrade project to Xcode 15
- Fix building of app manifest url
- Rename brand id field in tiles
- Fix use of access token for custom requests
- Use the same user agent for every request
- Add missing utm_source parameter to CDN requests
- Remove
CMSAPIClient
- Provide functionality to request navigation from client
- Update SwiftProtobuf to 1.22.0
- Update Fueling, Pay, POI and User API
- [POIKit+GeoService] Provide requests using Swift Concurrency
- [API] Provide
makeRequest
function using Swift Concurrency - [IDKit] Provide requests using swift concurrency
- Fix logger unit tests
- Add
brandId
property toPOIKit.GasStation
- Add danish localization
- Revert "Only support arm64 architecture in Watch SDK"
- Only support arm64 architecture in Watch SDK
- Enable library evolution support for slim and watch SDK
- Fix replyHandler called twice
- Remove geofence functionality
- Add distance to AppDrawers when multiple apps are in range
- Fix pull in deploy jobs
- Fix push in deploy jobs
- Fix deploy dev job
- Fix opening hours calculations
- Adjust deployment of dev and prod versions
- Remove atomic push in deploy jobs
- Correctly set branch for dev deploy job
- Integrate Slim and Watch SDK as SPM binaries
- Upgrade to Xcode 14.3
- Generate API 2022-1 for Fueling and Payment service
- Add method to
POIKit.POIKitManager
that returns a list ofPOIKit.GasStation
for the specified ids - Remove database delegates
- Rework logging
- Reset user API to 2021-2
- Add openid as default scope to authorization request
- Fix
POIKit.GasStation
initializer
- Make
generateTOTP(Data, TimeInterval) -> String?
ofBiometryPolicy
publicly accessible - Remove SDK dependency OneTimePassword
- Implement OneTimePassword and Base32
- Improve debug bundle handling
- Add new message handling for PWA communication
- UserInfo request falls back to use
API.accessToken
if token of IDKit is not available - Clean up environment variables
- Area below app drawers is not hittable
- Fix InfoPlist of FuelingExampleApp
- Update persisted session in refresh
- Make default OID configuration publicly accessible
- Remove enterprise account
- Implement exponential backoff for request connection errors and timeouts
- Implement meta collector
- Fix accessing logger functions if logging is disabled
- Improve log system
- Remove upload to repo server
- Upgrade to Xcode 14.1
- Make DeviceInformation publicly accessible
- Cleanup variables
- Adjust GitLab base URL
- Strip debug symbols during copy
- Remove user sensitive data from logs
- Rework log levels
- Adjust example app to SDK changes
- Add fuel.site to list of trusted domains
- Add migration guide for 11->12
- Upgrade to XCode 14
- Scope user specific data to user id
- Implement fueling example app
- Add options to retrieve an OTP via biometry, pin and password
- Fix handling activated links in AppWebViews
- Fix showing error screen in webviews and enhance error handling
- Adjust modifying requests via request behaviors
- Remove GeoJSON API leftovers
- Update Fueling API
- Update Pay API
- Update User API
- Update POI API
- Use Xcode 14 runner
- Support absolute paths in manifest
- Make ci jobs interruptible
- Adjust repo upload params
- Remove the stage environment
- Remove unnecessary fatal error calls
- 0 instead of nil accuracy in verifyLocation
- Fix dispatching the completion block on the main thread when ending a session
- Fix payment method vendor icons url
- Add migration guide for stage removal
- Retrieve geojson from cdn
- Scope session object to environment
- Make createdAt property of Double type
- Remove bot configs
- Add createdAt to UserInfo
- Update documentation link
- Update gems
- Properly remove keycloak session
- Integrate adapted pay api
- Remove geojson api
- Integrate adapted poi api
- Integrate adapted user api
- Integrate adapted fueling api
- Fix token expiry date validation
- Introduce CDN client to fetch payment method vendors and icons
- Integrate adjusted poly type generation
- Check cofustatus of cofugasstation
- Remove native apple pay handling
- Add callback to report breadcrumbs and general sdk errors to client
- Implement interface for customized localization
- Adjust
isCoFuGasStation
property to also reflect geojson online status - Add
isCoFuGasStation
toPOIKit.GasStation
model - Implement alternative user agent for authorization flow
- Add functionality to extract payment method kinds from jwt"
- Add more localization
- Add functionality to extract payment method kinds from jwt
- Fix required label name
- Fix typo in GitLab bot config
- Fix general logging issues and rework logging tests
- Return correct unix timestamps of closing times
- Correct type of
logo
property inPaymentMethodVendor
- Intercept app webview redirect
- Use pace cloud sdk environment for log files
- Upgrade OneTimePassword to 3.3.2
- Update cocoapods dependency
- Integrate Japx
- Add
fuelingURLs
property toPOIKit.CofuGasStation
model and extract its value from geojson file - Add label config for PACEBot
- Remove GitLab issue templates
- Update GitLab templates
- Make
BiometryTOTPData
publicly accessible - Add function to retrieve a single payment method vendor icon
- Introduce authorization canceled error
- Add default implementations for
AppKitDelegate
didReceiveAppDrawers(...)
anddidFail(...)
- Improve error handling of api requests on failed token refreshs
- Make AnyCodable value accessible
- Add IDKit to PACECloudSlimSDK
- Make logger functions overridable
- Add url to api request failure log message
- Remove apps query fallback
- Cleanup documentation in index md
- Correctly open new tab webview on multiple openInNewTab requests
- Remove all obsolete POI files from PACECloudSlimSDK
- Extract apple pay session scope from access token"
- Lokalise updates
- Extract apple pay session scope from access token
- Add job to build a xcframework for the slim sdk
- Add issue templates
- Introduce decimal decoding tests
- Update Fueling and Pay API
- Fix Swift variable shadowing problems
- Add job to validate commit messages
- Remove changelog template
- Add script for auto semantic versioning
- Add
additionalProperties
property toPOIKit.GasStation
- The
domainACL
will now be set topace.cloud
by default - Introduce
PACECloudSDK.shared.application(open:)
to handle deep links. Please use this method to handle incoming redirect URLs asAppKit.handleRedirectURL(url:)
is now deprecated and will be removed in a future version. - Add option to evaluate the biometry policy without handling a totp
- Fix default implementation for
didReceiveImageData(UIImage)
anddidReceiveText(String,String)
inAppKitDelegate
when triggered multiple times
- Adjust API URLs
- Adjust invalidation token handling for
POIKit.BoundingBoxNotitficationToken
- Forward
PACECloudSDK.shared.additionalQueryParams
toIDKit.OIDConfiguration.additionalParameters
- Adjust
Bundle.main.bundleName
to now return bundle name with whitespaces. - Add
Bundle.main.bundleNameWithoutWhitespaces
which returns bundle name without whitespaces. - Add
integrated
parameter toopenURLInNewTab
communication request
- Regenerate Fueling and Pay 2021-2 API which replaces number types with decimal format from Double to Decimal due to floating precision problems of Double when using JSONDecoder and JSONEncoder.
- Add
IDKitDelegate
methodwillResetSession()
that is triggered when a session is about to be reset. - Introduce share text call
handleShareText
- Add dashboard url to
PACECloudSDK.URL
- Adjust TOTP secret handling
TokenValidator
is now part ofIDKit
instead ofAppKit
- The response of
POIKit.requestCoFuGasStation(center:, radius:)
does not filter the stations by their online status any more. - Implement default receipt image download handling (Requires
NSPhotoLibraryUsageDescription
to be set in target properties) - Update all apis to v2021-2 - GeoJSON, Fueling, Pay, POI and User (Documentation)
- Change default geo apps scope - When not specifying a custom
geoAppsScope
in the SDK configuration thePOIKit.CofuGasStation
propertypolygon
will from now on benil
. - For all
AppViewController
instances the propertyisModalInPresentation
is nowtrue
by default. Setting it tofalse
can be done via the initializer or afterwards by directly accessing the property. - Rework Logger -
PACECloudSDKLoggingDelegate
does not exist any more.
- Implement new price history endpoints
- Add bearing to
GetLocation
call - Add 'isSignedIn' sdk call
- Add
isRemoteConfigAvailable
call
- Fix Fueling PWA's URL for non-prod environments
- Correctly remove app drawers based on the user's location if the speed threshold has been exceeded
- Fix close call in
redirect_uri
- Fix system passcode fallback for biometric authentication
- Remove default timeout in communication api
- Respond with 405 if communication operation doesn't exist
- Enable bitcode for the
PACECloudSDK
target - Upgrade to XCode 13
- Use system font instead of embedding SFUIDisplay
- Set default
authenticationMode
of the SDK to.native
.
NOTE: If you are not using native authentication make sure to explicitely set the mode to
.web
in the SDK configuration if it isn't already.
- The data type of the completion parameter for the
didCreateApplePayPaymentRequest
callback has been changed from[String: Any]?
toAPI.Communication.ApplePayRequestResponse?
- The data type of the completion parameter for the
getAccessToken
callback has been changed fromAppKit.GetAccessTokenResponse
toAPI.Communication.GetAccessTokenResponse
- AppKit's
isPoiInRange(...)
is now part ofPOIKit
, available underPOIKit.isPoiInRange(...)
- AppKit's
requestCofuGasStations(...)
is now part ofPOIKit
, available underPOIKit.requestCofuGasStations(...)
- AppKit's model
CofuGasStation
is now part ofPOIKit
, available underPOIKit.CofuGasStation
- AppKit's
shared
property is no longer publicly accessible. All methods and properties of typeAppKit.shared.fooBar()
are now accessible viaAppKit.fooBar()
- The data type of the completion parameter of AppKit's
fetchListOfApps(...)
has been changed from([AppKit.AppData]?, AppKit.AppError?)
to(Result<[AppKit.AppData], AppKit.AppError>)
- The parameter
poisOfType
has been removed from POIKitManager's methodsfetchPOIs(boundingBox:)
andloadPOIs(boundingBox:)
- POIKitManager's
loadPOIs(locations:)
has been renamed tofetchPOIs(locations:)
- The data type of the completion parameter of IDKit's
authorize(...)
has been changed from(String?, IDKitError?)
to(Result<String?, IDKitError>)
- The data type of the completion parameter of IDKit's
refreshToken(...)
has been changed from(String?, IDKitError?)
to(Result<String?, IDKitError>)
- The data type of the completion parameter of IDKit's
discoverConfiguration(...)
has been changed from(String?, String?, IDKitError?)
to(Result<OIDConfiguration.Response, IDKitError>)
- The data type of the completion parameter of IDKit's
userInfo(...)
has been changed from(UserInfo?, IDKitError?)
to(Result<UserInfo, IDKitError>)
- Add callback
didPerformAuthorization
toIDKitDelegate
to inform client about an authentication triggered via an app - Show AppDrawer based on distance instead of an area
- Add new
func currentLocation(completion: @escaping (CLLocation?) -> Void)
callback toAppKitDelegate
. This request only gets called if an app requests the user's current location and the SDK can't retrieve a valid one. - Add new target for watch application
- Add code documentation for most of AppKit's and POIKit's / POIKitManager's calls
- Add
AppRedirect
handler to PWA communication to let the client app decide if a redirect from the current PWA to another specified PWA should be allowed - Add methods to
IDKit
that returns the user's payment methods, transactions and checks the PIN requirements - Add
requestCofuGasStations
method toPOIKit
with location and radius parameter that returns connected fueling gas stations with detailed information - Add optional location parameter to
isPoiInRange
call
- Don't reset session before refreshing if session isn't even available
- Fix overlapping labels in AppDrawer
- Fix generation of accept headers
- Adjust handling of too large bounding boxes when requesting tiles
- Adjust sdk error view
- Fix encoding issue when enabling biometric authentication
- Fix string encoding when evaluating javascript
- Make multiple cofu gas station requests in quick succcession possible and return correct response to all of them
- Fix decoding of
ApproachingAtForecourt
success response
- Rework communication between apps and SDK
- Implement
isBiometryAuthEnabled
call - Include
POIKit
inPACECloudWatchSDK
- Added new SDK methods
getAccessToken
and 'logout'. ThegetAccessToken
call replaces theinvalidToken
method. - Update all APIs. Previously included enums have been removed. The corresponding properties that were of type of those enums are now directly of type of their former raw representable.
- Remove
resetAccessToken()
from thePACECloudSDK.shared
property. This functionality is no longer needed. - Implement automatic session handling for apps. If
IDKit
is used the SDK will now try to renew the session automatically when an app requests a new token. In this case thegetAccessToken
callback will no longer be called. If the renewal fails anIDKitDelegate
may be implemented to specify a custom behaviour for the token retrieval. Otherwise the sign in mask will be shown. - Combine IDKit setup with PACECloudSDK setup.
IDKit.setup(...)
is no longer accessible. The IDKit may now be set up by either passing a custom oid configuration to thePACECloudSDK.Configuration
or by adding bothPACECloudSDKOIDConfigurationClientID
andPACECloudSDKOIDConfigurationRedirectURI
with non-empty values to your Info.plist which invokes the setup with the default PACE OID configuration. - The presenting view controller for the sign in mask now needs to be set directy via
IDKit.presentingViewController
IDKit.OIDConfiguration
's propertyredirectUrl
has been renamed toredirectUri
.
- Introduce
requestCofuGasStations
toAppKit
to fetch all availableCofuGasStation
which will have an attribute to tell you, if a gas station is currently online - If using IDKit it is no longer required to set the
Authorization
header for any requests performed by the SDK. It will be included automatically. - Close app if it contains a specific redirect uri
- Add function to load pois based on their location via the tiles request
- Automatically retry unauthorized api requests
- Fix a bug where PWA wasn't closed properly in the AppDrawer
- Don't retrieve any apps if speed threshold is exceeded
- Refactored the handling of ApplePay requests. The updated callback now already returns a
PKPaymentRequest
. Additionally a new callback to retrieve themerchantIdentifier
needs to be implemented - Improve selection of app drawer icon size
- Rename
GeoGasStation
toCofuGasStation
to match capabilities of the new Geo API - Upgrade to XCode 12.5
- Make 'Keychain' wrapper accessible
- Make app drawer more robust by allowing a threshold of 150m in which it won't be removed if no other apps are available
- Implemented console warning for a missing
domainACL
if using 2FA methods
- Fix date encoding to use UTC time format instead of local
- Handle 403 response correctly for
setPIN(with otp:)
- Fix wrong status code data type in PWA communication
- Fix faulty message when authorizing biometric authentication
- Implement default completion handlers for
AppKitDelegate
- Speed up verify location call
- Set default utm source
- Don't send empty network list to Apple Pay availability check
- Return location accuracy in
verifyLocation
call
- Refactor
isPoiInRange
check so that it no longer checks if the position is within the POI's polygon, but if the beeline distance to the POI is within 500m
- Improve completion handling of location manager
- Fix accept header of Pay API
- Fix completion call for isPoiInRange
- Introduce tracing identifier
- Adjust error case of tile request
- Add
cofuPaymentMethods
property toGasStation
- Enable biometry after authorization
- Add pre check during setup
- Fix PWA communication for iOS < 13
- Regenerate Pay API
2020-4
, which includes removal of enums to prevent the clients from crashing when new values are added
- Remove PWA preloading in AppDrawer
- Implement PWA callback cache
- Improve error handling for PWA communication
- Cleanup Xcode warnings
- Make PACECloudSDK's environment short name accessible
- Introduce timeouts for PWA communication
- Remove raw representable conformance of
URL
- Changed handling of Apple Pay responses
- Pass
reason
andoldToken
in thetokenInvalid
callback.
NOTE: Remember to adjust the implementation of your
tokenInvalid
function.
- Make more
AppManifest
properties publicly accessible - Add interfaces to handle pin and biometry actions
- Enable the passcode fallback for 2FA
- Add
presetUrl
forfueling
- Add raw representable
init
toURL
for cases without parameters - Add optional invalidation token use to poi requests
- Implement analytic events
- Adjust POIKit's user agent to include the client's name
- Adjust dependencies for SPM support
- Refactor the 2FA communication with the PWAs
- Fix PWA communication for request without message content
- Remove
force
parameter fromrefreshSession
- AppData's
appManifest
andappID
aren't publicly settable anymore
- Always force refresh session
- Reset session if refresh fails with error other than
noNetwork
- Use geo service cache for
isPoiInRange()
check - Do not fetch an
AppManifest
forisPoiInRange()
check - Make AppData's
poiId
andappStartUrl
accessible
- Fix tiles API
- Fix accept header for api requests
- Improve communication with PWA
- Fix threading issue in
InvalidationTokenCache
- Remove PoiKitManager property from SDK singleton
- Remove passing of initial access token
- Adjust handling of redirect scheme
- Add slimmed version of SDK as target
- Implement
verifyLocation
check communication between SDK and web apps - Pass location verification threshold to client
- Add option to add additional query params to request
- Add generated Pay API
- Adjust QueryParamHandler to ignore set of pre-defined URLs
- Change PWA URL actions to JS message handlers
- Add dynamic zoom level changes
- Implement functionality to retrieve live response from POIKitObserverTokens
- Make PWA manifest's data accessible
- Add generated Fueling API
- Add convenience methods for most common urls, i.e. fueling, payment, and transaction
- Add generated User API
- Intercept PWA logs and pass all logs to client
- Make appViewController of drawer more accessible
- Always call isPoiInRange completion handler
- Implement back handler for PWAs
- Add generated GeoJson API
- Support invalidation token when requesting tiles
- Add functionality to check for available apps on device by using a cached version of all app polygons
- Fix auto closing AppViewController if presenting view is the rootViewController
- Fix API Key header
- Fix acccess to bundle when integrating the SDK via SPM
- Update Xcode version tag and fix CI script
- Use SPM instead of Carthage as package dependency manager
- Change PWA actions to message handlers
- Include property lists in CocoaPods resources
- Introduce universal setup for PACE Cloud SDK
- Automatically update CocoaPods trunk on tag
- Upload docs to Developer Hub on tag
- Remove obsolete references to Alamofire and CloudSDK from SDK and example app
- Add Apple Pay communication with web apps
- Remove "Enter password" as fallback when biometric authentication fails
- Fix problem where the manifest.json couldn't be fetched
- Fix missing localization and assets
- Add support for CocoaPods
- Initial PACE Cloud SDK replacing the old Cloud SDK