@@ -50,34 +50,45 @@ Choosing Which Template System to Use
5050
5151In this distribution are two template systems, each with their strengths and
5252weaknesses. You should choose whichever one best suits your needs and
53- constraints (you could even install both if you wanted ).
53+ constraints (or just install both).
5454
5555### Fake Framework ###
5656
5757The fake framework uses the "relocatable object file" bundle hack that's been
5858posted all over the net, which tricks Xcode into building something that mostly
59- resembles a static framework.
59+ resembles a framework.
60+
61+ The binary it outputs is an object file rather than a library, and is of type
62+ "cfbundle", which Xcode doesn't like in certain circumstances.
63+
64+ If all you're doing is adding the finished, compiled framework to a project,
65+ this is not a problem. If, however, you try to add the fake framework's
66+ PROJECT as a dependency of another project, or as part of a workspace,
67+ Xcode will skip the framwork during the dependency phase, and will fail to
68+ link properly.
69+ You can force the framework to link using the "-force_load" flag in
70+ "Other Linker Flags" in the project that uses the framework:
71+
72+ -force_load "$(BUILT_PRODUCTS_DIR)/MyFramework.framework/MyFramework"
6073
61- The binary it outputs is an object file rather than a static library, which
62- means that it's technically not a real framework. However, so far it's worked
63- fine for everything I've tried it on. So the downside is the uncertainty of
64- the hack.
6574
6675### Real Framework ###
6776
6877The real framework is real in every sense of the word. It is a true static
6978framework made by re-introducing specifications that Apple left out of Xcode.
7079
71- The downside is that in order for this to work , you must modify Xcode's
80+ In order to be able to build a real framework project , you must modify Xcode's
7281specification files, which may not be desirable, or even possible due to
7382restrictions your organization may place upon development environments.
7483Also, if you are releasing a project that builds a real framework, anyone
7584who wishes to build that framework must modify their Xcode as well (via the
76- install script in this distribution).
85+ install script in this distribution). If all you're doing is distributing the
86+ fully built framework, and not the framework's project, the end user doesn't
87+ need to modify Xcode.
7788
78- I've submitted a rdar report to Apple in the hopes that they'll update the
89+ I've submitted a report to Apple in the hopes that they'll update the
7990specification files in Xcode, but that could take awhile.
80- http://openradar.appspot.com/radar?id=1194402
91+ [ OpenRadar link here ] ( http://openradar.appspot.com/radar?id=1194402 )
8192
8293
8394Installing the Template System
@@ -118,8 +129,10 @@ Building your iOS Framework
118129
1191301 . Select the ** Universal_Framework** scheme (any of its targets will do).
120131
121- 2 . Build. It will build the framework for arm6, arm7, and simulator, then merge
122- them together into a universal framework.
132+ 2 . Build.
133+
134+ The ** Universal_Framework** scheme will build the framework for arm6, arm7
135+ and simulator, and merge them together into a universal framework.
123136
124137The finished product will be in your standard build location as
125138** (configuration)-universal/(your framework).framework** .
0 commit comments