Add support for app extension-based screen savers

Originator:jhonbob3
Number:rdar://35530896 Date Originated:2017-11-14
Status:Open Resolved:
Product:macOS + SDK Product Version:
Classification:Suggestion Reproducible:Always
 
Summary:
When creating a screen saver with Swift in macOS High Sierra, the screen saver displays the message:

> You cannot use the ColorClockSaver screen saver with this version of macOS. Please contact the vendor to get a newer version of the screen saver.

I understand that this is because screen savers are NSBundle-style plugins. Each plugin links to its own Swift runtime which causes the screen saver to not work.

Steps to Reproduce:

1. In High Sierra, create a new screen saver in Xcode from the template. Alternatively, download the source for a screen saver here: https://github.com/edwardloveall/colorclocksaver/
2. Change the main view to a swift file, and set it as the Principal class in the info.plist.
3. Build the screensaver plugin and install it in ~/Library/Screen Savers
4. Open the screen saver preference pane in System Preferences and select the new screen saver

Expected Results:

The newly created screen saver displays.

Actual Results:
This message appears:
You cannot use the ColorClockSaver screen saver with this version of macOS. Please contact the vendor to get a newer version of the screen saver.

Version/Build:
I am running macOS 10.13.1 (17B48). This screen saver was most recently compiled with Xcode Version 9.1 (9B55).

Configuration:
MacBook Pro (Retina, 15-inch, Late 2013) with 16 GB of ram

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!