- Fixed: App crashes when upgrading to Catalina.
The bug only affected users that have activated their license before v3 and implementations where remote verification methods are used without checking if a license exists first. Because the underlying implementation of NSData has changed in Catalina the verify method will incorrectly continue with remote verification when it can't find a local license code.
- Added: More detailed console logs for file write issues.
- Fixed: Crashes around deprecated
beginSheet
methods. - Fixed: Site Licensing will fall back to per user activation if unable to write to disk.
- Fixed: UI display issues when operating in 10.14 dark mode
- Fixed: Deactivations sometimes causing issues with restarting trials
- Fixed: simplifyViews option now working again
- Fixed: Child products with no expiry date being treated as expired in some circumstances.
- Fixed: Child Product license expiry dates now correctly destroyed on deactivation.
- Fixed: File system write queue exception edge cases.
- Fixed: Order status polling timer not invalidated in certain cases.
- Fixed: Completion block race condition on child product activations.
- Fixed: File access race condition between auto verification and manually triggered.
- Fixed: Swift implementations not always verifying the Paddle delegate existed before messaging.
- Fixed: Price override checkout flows without showing product info will now resolve any missing required data.
- Added: Audience (PaddleToolKit) updates for GDPR compliance, more details here (https://paddle.com/docs/gdpr-changes)
- Fixed: Crash on app launch when calling an unset Delegate, typically when using Silent Licensing.
- Added:
overridePriceForChildProduct
method - Fixed: Swift nullability annotations on completion blocks to match actual usage.
- Fixed: SilentLicensing inconsistently setting and decrementing remaining trial days
- Fixed: Crash when viewing incomplete licence details
- Fixed: Reduced calls to analytics endpoints
- Added: Option to purge v2 licenses with remote verification
- Fixed: PayPal instability on older OS X versions.
- Fixed: Activation issues for products being activated with licenses generated for another product when on newer versions of MacOS.
- Fixed: Timeout when orders are flagged after checkout
- Fixed: Changed product id check when activating licences to only apply to child products
- Added: Ability to override prices in multiple currencies and recurring prices
- Fixed: Issue where debugging option to reset trial would not disable
- Fixed: Crash when displaying activation window with not all product information
- Fixed: Not accurately using failedAttempts value from delegate method
- Fixed: Product remaining activated after deactivation in some scenarios
- Fixed: Calling deactivate with no licence crashes
- Added: Provisional 10.13 Support
- Added: PayPal checkout window title now updates based on state from PayPal.
- Added: Option to disable remote verification for legacy licenses.
- Added: Closing the checkout window now closes the PayPal window if it’s presented.
- Fixed: Crash when aborting PayPal fixed
- Fixed: License unicode edge cases resulting in “lost” licenses.
- Fixed: Moving to site licensing no-longer invalidates your previous license.
- Fixed: Webview network calls returning after checkout is closed no-longer crash or show system error alerts.
- Fixed: Any purchase completion blocks now return all available checkout data.
- Removed: IAP support in favour of Child Products.
Bugfixes:
- Fixed issue where email passed to
recoverLicencesForEmail
was ignored
Features:
- Added Licence Recovery options
- Checkout Details are now returned in completion blocks
Bugfixes:
- Fixed issue where some users would persistently be prompted for PTK tools with schedules
- Fixed issue where product name would be
(null)
on 10.8 Buy Window - Fixed issue preventing the Buy Window from closing when some passthrough values were set
Bugfixes:
- Fixed issue on 10.8 where product names could be null
- Fixed issue when setting certain passthrough values would prevent checkout from closing
- CompletionBlocks on checkout correctly return checkoutId and other details
Bugfixes:
- Fixed issue where licences were incorrectly removed after verification when offline
- Improved documentation/warnings during build
- Removed conflicting category names for some users preventing licences from being written
Bugfixes:
- Preventing custom schemes in purchase views from throwing errors
- Starting Analytics before licencing resulted in a crash, resolved
- When no internet connection was present some users were unable to continue a trial or activate
- Time Trials were sometimes being incorrectly identifed as expired
Bugfixes:
- Fixed issue where products would sometimes incorrectly display as on sale
- Fixed issue where payments via PayPal would fire incorrect webview delegate methods
- Solved issue where trial window would sometimes not be shown as a sheet
- Solved issue where button text would sometimes be blurry
Bugfixes:
- Fixed encoding issue on 10.8 when start purchases
- Re-added XCode 7 compatibility
- Fixed issue preventing licencing from starting after it had been cancelled
- Included logging option for debugging purposes
Bugfixes:
- Fixed issue with product windows sometimes not displaying a show
- Resolved debug tools not renewing trials
- Fixed issue where older licences would not always verify correctly
- Fixed multiline content in PTK Feedback tool
Features:
- Overridden prices now display in the product window
- Feedback and Audience methods can be used directly without displaying Paddle UI
Bugfixes:
- Fixed issue where restore purchases prevented apps from quitting when no internet connection was available
- Fixed a number of localization issues
- Resolved PTK Schedules not always being followed
- Fixed issue where the PTK Feedback tool didn't present acknowledgement
Features:
- Added 'x event' option to PTK schedules, where 'event' is any analytics event
- Added ability for product heading and trial text to be localized via
setCustomProduct...
Heading
orTrialText
Bugfixes:
- Fixed crash when attempting to display modal window when one is already present
- New Delegate method
- (BOOL)willPresentModalForWindow:(NSWindow * _Nullable )window;
called before presenting modal window to allow developers to dismiss an existing modal window - Added "Deactivate" button to existing/activated licence view. Enabled setting
willShowDeactivateLicenceButton
toYES
Bugfixes:
- Improved handling API connections to reduce SSL issues
- Fixed issue when pasting licence codes
- Resolved issue where some trials did not decrement correctly
- Fixed productActivated responses sometimes being incorrect
Bugfixes:
- Fix zero days remaining issue
- Fixed schedules in PTK being ignored
- Increased width of licence code input to fit standard length
Features:
- Added ability to set checkout attributes for PaddleJS
Bugfixes:
- Fixed issue when app version isn't using semantic versioning resulting in checkout not loading
- Fixed silent licensing crashing when framework attempted to display product info
Bugfixes:
- Fixed checkout issue for guest users
- Fixed issue resetting trials during development
Features:
- Improved checkout process to allow for more product types
- Added ability to pre-fill coupon(s) for multiple products
Bugfixes:
- Fixed scenario where onlyDestroyLicenceOnVerificationFail produced a false positive
- Deprecated Happiness and Ratings methods in PTK
Features
- Added
onlyDestroyLicenceOnVerificationFail
delegate for verification
Bugfixes
- Prevented displaying a sheet when one is already attached
Features:
- ShowActivateLicence with completionBlock for use with silent licensing but using Paddle UI for activation
- Improved handling of completion blocks in silent licensing
Bugfixes:
- Switched to @rpath for Installation Directory
Bugfixes:
- Fixed crash on checkout when using Paypal
- Improved checking of correct values in productInfo NSDictionary
Features:
- Framework exposes module for better Swift support
- Nullability annotation added
Bugfixes:
- Allow showing activate window and attach to window
- Improved tool scheduling
- Product activated delegate fix to not show alert
Features:
- Improved security on app group license publishing
Bugfixes:
- Reset failed attempts on successful verification or activation
- If licence activated delegate is implemented don't also show alert
Features:
- Upgrade pricing from different app using app groups
- Customise product and subtext on price override
Bugfixes:
- Fix for licenses being incorrectly removed when original activation was performed using the v1 API
Bugfixes:
- Fixed text alignment in buttons
- Corrected listed version in header
- Fixed purchase view crash on multiple loads
Features:
- Remote verification
- Remote deactivation
- Silent licensing
- Purchase/Activate methods with block callbacks
- Improved security of local licenses
Bugfixes:
- Force locale in PAK for better date/time handling
- Use UUID when en0 is not available. Fix for https://support.apple.com/en-us/HT6672
Bugfixes:
- Licencing window now uses the local currency where possible
- Analytics crash involving writing from multiple threads fixed
- Price override now works on first launch
Features:
- Ability to launch licence activation window directly
- Delegate methods for Happiness and Rating tools in PTK
Bugfixes:
- Improved price override to deal with lack of keys on first run
- Prevented licences from being deactivated if API side deactivation fails
Features:
- IAP Recovery for PaddleStoreKit
- Set base language to en-US
Features:
- Localization for 12 languages
- TrialExpired Notifications
- Passthrough data on purchases
Bugfixes:
- Resolved a number of memory leaks
- Resetting of trials in development environment improved
Bugfixes:
- Fixed issue preventing existing/activated licences from being displayed using showLicencing
- Stopped Paypal IAP window from using runloops other than main to fix non-responsive issue
Bugfixes:
- Appropriate error message when trying to activate with empty licence code
- Removed memory leak when gathering hardware data
- Fixed small deactivate bug
Bugfixes:
- Fixed issue where trial windows sometimes do not dismiss correctly
- Fixed paypal loading issue in PSK
Bugfixes:
- JSON Parsing, nil data, issue resolved
- Window centering
- Import Cocoa in header for Swift support
Bugfixes:
- UI fixes for OS X 10.11
- Centering licencing windows
- Fix for lost licences
Bugfixes:
- Fixed issue for < 3 character analytics event names
- Ensure analytics data is always sent over https
- Fixed issues regarding licences not being stored correctly
Features:
- Scheduler includes analytics events scheduling: next event.name
- Inclusion of default license
- Started moving to new v3 API
Bugfixes:
- Licence changed to License
- Fix 'week' schedules
Bugfixes:
- Layout and shadow issues in PTK
Features:
- PaddleToolKit
- Happiness
- Rating
- Feedback
- Email Subscribe
- Scheduler
Bugfixes:
- Deactivate issue when for older licenses fixed
Features:
- PSK Purchase view responds to Esc key for closing
- Delegate method willShowBuyWindow for overriding purchasing behaviour
Features:
- startPurchase method for launching straight into the buy view for the product
- disableLicenseMigration method to prevent old licenses from < 2.2.x SDK from being transferred
- disableTrialResetOnDeactivate method to NOT reset trial periods when an activation is deactivated
Bugfixes:
- Analytics data is NOT sent when an app is run from Xcode/debugger for more accurate data
Features:
- Ability to override product price
Features:
- Debugging of time trials
- Resetting time trials for app version updates
Bugfixes:
- Improved validation of analytics data
- Preventing too many attempted connections to analytics
- Improving timeout errors on license activation
Bugfixes:
- Improved migration script from < 2.2 versions
- NSNotificationCenter notifications fix
- Friendly license activation message
- Continuing Time Trial button text changed from 'Quit' to 'Close'
Features:
- Paddle Analytics Kit
- License and product data storage moved to custom storage
- Trial data more secure
- User email included in purchase receipts
- Allows for feature limited trials after time trial completion
- Custom product view headings
- Allows for custom activation alerts
Features:
- UI updated for Yosemite
- Licensing windows are now draggable when not displayed as a sheet
- Grammar correction number of days remaining label
Bugfixes:
- Last activated date updated on successful verification
Bugfixes:
- Supports Retina displays on Purchase view
- Fixed Yosemite shadow bug
- Purchase view now draggable
Bugfixes:
- SSL/Verify delegate method fix. Some products were able to verify but delegate methods not being called
Bugfixes:
- Fixed modal web view when being used with JDK based apps
- PSKReceipt delegate issue on some implementations
Bugfixes:
- Truncated pricing in certain localizations
- Conflicting class names with other popular OS classes
Features:
- App descriptions displayed and sized appropriately
Bugfixes:
- Paypal payment window
- Fixed 'test product' text issue
- Encryption issues
Bugfixes:
- Product icon display issue
- Preparation for local verification
Features:
- Added
showStoreViewForProductIds:(NSArray *)productIds
to PSK - Added
startLicensing:(NSDictionary *)productInfo timeTrial:(BOOL)timeTrial withWindow:(NSWindow *)mainWindow
to Paddle. For starting licensing after settings keys - Added
paddleDidFailWithError:(NSError *)error
delegate method to Paddle.h
Bugfixes:
- Error handling of no API keys set when initiating
Features:
- PaddleStoreKit (PSK) added to allow for In App Purchases
- Display a 'store' for your products, an individual product or open a 'purchase' view instantly
- Purchase verification for receipts
- Valid receipts stored locally and can be re-verified at any time
Features:
- Store activation_id on successful license activation for future verification
Bugfixes:
- Fix for product_image null value
Features:
- Added option to disable display of licensing view (willShowLicensingWindow)
Bugfixes:
- Improved de-activate licence cleanup
- Miscellaneous visual/UI fixes
- Improved unit tests
- Updated copyright information for 2014
Bugfixes:
- Licence changed to License in remaining locations
- Strip whitespace and new line characters when pasting email/license
- Added ActivityIndicator while checking license validity
- Improved security when quitting app with expired trial and no license (see docs for options)
Bugfixes:
- Changed Licence to License
- Internal reporting of device info to API fix
Bugfixes:
- Timeout increased to 30 seconds
- Licence activation, only one at a time, activation confirmation message
Features:
- Deactivate method included
- Device info for API to improve activations and debugging
Bugfixes:
- NSAlert from errors generated by Paddle rather than NSLog for ALL errors
Bugfixes:
- Switched from NSAlert to NSLog for errors
- First fix for bug when switching between trial and no trial on the API. Now requires an app restart from the user for changes to take effect (providing the app/framework was started once after the changes where made)
Bugfixes
- Fixed bug in which NSTextFields would not respond to key events in some implementations
Bugfixes:
- Fixed bug in which the framework would not always display discounts correctly