Playground Import: No Such Module 'Foo' Playground Import: No Such Module 'Foo' swift swift

Playground Import: No Such Module 'Foo'


For some of those that none of the above solutions work (and that Xcode build path setting was already set to Unique), I've found a solution.

The framework must be built with a scheme for an iOS simulator device (any in the list) and NOT a Generic iOS Device, as Playgrounds do not support it. This one worked for me :

Working scheme


Here's how I proceed for OS X with Xcode 7.1:

  • Create new project: OS X Cocoa Framework, Swift. For this example I named it "TestPlaygroundFMK".

  • Create a new Swift file.

  • Add a class to the file. The code has to be public. I made this for our example:

import Foundationpublic class Talk {    public class func sayHello() {        print("Hello from framework!")    }}
  • Build the project now.

  • In the menu bar, click on File > Save As Workspace.

  • Create a new Playground and save it inside the project folder next to the Swift files.

enter image description here

The Playground must not have the same name as the project.

  • Build the project again.

  • Import your framework in the Playground and use it:

import TestPlaygroundFMKTalk.sayHello()

enter image description here


I had my playground working fine but found that when I quit Xcode and re-opened it, I would get an error like this:

error: /var/folders/ft/bmk8wh6s5ms4my2pxhn3qbp40000gn/T/playground1-9216e0..swift:3:8: error: no such module 'Playground_Sources' import Playground_Sources

... where "Playground" is the name of my playground file.

The solution to this (in Xcode 9.0) is to:

  • click any playground file in your workspace
  • show the Utilities panel (opt-cmd-0)
  • under "Playground Settings" change the "Platform" to anything else then set it back.

In my case, it's set to macOS. I changed it to iOS then back to macOS (no recompilation necessary) and it started to work fine... that is until I close Xcode and open it again.

This is the only solution I found to work with macOS playgrounds. This bug still exists in Xcode 9.3.