Migrate Licenses from v3 to v4 of the Mac SDK

As v3 had a significantly different license format, it is necessary to convert between the two formats, from the older format to the newer format. In the v4 macOS SDK, starting from v4.0.5, this conversion can be triggered by calling migrateV3License on the product.


PADProduct *product = [[PADProduct alloc] initWithProductID:myPaddleProductID productType:PADProductTypeSDKProduct configuration:nil];

// Ask user if they have a v3 license from your previous app.
// ...

// Migrate v3 license to new format.
[product migrateV3License];

let product = PADProduct(productID: myPaddleProductID, productType: PADProductType.sdkProduct, configuration: nil)!

// Ask user if they have a v3 license from your previous app.
// ...

// Migrate v3 license to new format.
product.migrateV3License()

After calling migrateV3License, the product will be considered activated and you’ll have access to the usual activation details of the product. If no v3 license was found, no changes are made to the product. The same goes for a product that was already activated before the migration: no changes are made to products activated in your current app.

Note that in the macOS SDK v4.0.0 to v4.0.4, the v3 license migration happened automatically. Although this behaviour would be useful in some scenarios, the current approach of manually triggering the migration gives you more control over this process.

Questions about Paddle?

If you need any help regarding your Paddle integration, please get in touch with our Customer Success team using the form below.