Can't add cross-project iOS Embedded Binaries in a Workspace environment

Originator:matt
Number:rdar://19676555 Date Originated:1/31/2015
Status:Open Resolved:
Product:Developer Tools Product Version:Xcode 6.2 (6C107a) / OS X 10.10.2 (14C109)
Classification:Serious Bug Reproducible:Always
 
Summary:
The WWDC14 video on iOS 8 frameworks recommends single-project, multiple target workflows for app-framework bundles, but that of course isn't possible for so many distributed projects that use multiple internal and external (FOSS/GitHub/etc) repositories. This bug details one of a few problems when trying to replicate framework embed builds using a multi-project workspace.

The most obvious/discoverable method for adding Embedded Binaries from a framework project in a workspace to a separate app project in the same workspace does not work as expected. A series of steps is required before Xcode will even acknowledge the external framework.

Steps to Reproduce:
1. Create a "Single View App" iOS template, App.xcodeproj
2. Create a "Cocoa Touch Framework" template, Framework.xcodeproj
3. Create a Workspace, e.g. Workspace.xcworkspace
4. Drag the two xcodeproj's into the workspace.
5. Select the App project from the workspace window, and go to the General settings for the App target.
6. Under "Embedded Binaries", hit + and try to add the Framework.framework file listed under the Framework project (see EmbeddedBinaries-start.png)

Expected Results:
Expect the framework to be added.

Actual Results:
Nothing happens. Xcode seems to want an explicit file reference to the framework in the current project before it can link.

Version:
Xcode 6.2 (6C107a) / OS X 10.10.2 (14C109)

Notes:
The easiest way to straighten this out is to first add the external framework to Linked Frameworks, then select that reference under App (as opposed to the one under Framework - see EmbeddedBinaries-Workaround.png). That has its own problems, however, which I will link to another Radar on that once I've filed it.

It's much better if you perform these steps yourself to see how awkward the flow is, but for technical / state reference, you can download or checkout the WorkspaceEmbed branch of my radars repo on GitHub:

https://github.com/drance/radars/tree/WorkspaceEmbed

It has both Broken and Fixed variants for easy diffing of the two App.xcodeproj/project.pbxproj files (the only file that needs to be changed.)

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!