benjaminmayo / merchantkit

A modern In-App Purchases management framework for iOS.
MIT License
1.11k stars 74 forks source link

Set Mac deployment target to 10.10 Yosemite #42

Closed pkamb closed 5 years ago

pkamb commented 5 years ago

This sets the Mac deployment target back a few releases, and #ifdefs the relatively minor changes to make that happen.

Similar to what you are already doing for iOS.

The deployment target was previously unset, which I think picks your current macOS version. For me it was showing 10.14.

10.9 would require DispatchQueue changes, which I didn't want to touch. So it's set to 10.10.

This may be useful for other Mac developers, whose users typically have a bit slower upgrade schedule than iOS users.

benjaminmayo commented 5 years ago

Does the test suite pass on Yosemite? I don’t think making Date(fromISO8601:) always return nil on older OS versions is acceptable. I’d also want to degrade to standard print statements rather than silencing all logging.

benjaminmayo commented 5 years ago

If we went to 10.12, I think you could use both ISO8601DateFormatter and OSLog. Is there really much value in supporting 10.10 and 10.11 these days?

pkamb commented 5 years ago

If we went to 10.12, I think you could use both ISO8601DateFormatter and OSLog.

I pushed a sierra branch for that, on my fork

Is there really much value in supporting 10.10 and 10.11 these days?

I don't have a strong opinion either way, and don't have the data currently.

My app currently supports 10.11 so I tried for that, and getting 10.10 here was just as easy.

Targeting pre-Sierra might be nice for certain holdouts due to issues such as this.


Tests

I'm not sure I'm doing this correctly, as I'm getting inconsistent test results. I get two App Store sign in prompts, but haven't been signing in.

I will dig in more to see if these are failing due to the changes.

benjaminmayo commented 5 years ago

I’m pretty sure ISO8601 date parsing will be required to get the framework to function correctly and the tests to pass.

Regarding the popup dialogs, you need to press Cancel for the tests to complete. I should probably ifdef these out for macOS. On iOS, the StoreKit framework will time out and pass an error on their own. macOS StoreKit just waits indefinitely.

pkamb commented 5 years ago

Opened a 10.12 Sierra PR #43; closing this one for now. May come back with a solution for the dates in the future.