Skip to content

Commit 021c027

Browse files
committed
Updated documentation.
1 parent 05c3f16 commit 021c027

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

README.mdown

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,34 +50,45 @@ Choosing Which Template System to Use
5050

5151
In this distribution are two template systems, each with their strengths and
5252
weaknesses. 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

5757
The fake framework uses the "relocatable object file" bundle hack that's been
5858
posted 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

6877
The real framework is real in every sense of the word. It is a true static
6978
framework 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
7281
specification files, which may not be desirable, or even possible due to
7382
restrictions your organization may place upon development environments.
7483
Also, if you are releasing a project that builds a real framework, anyone
7584
who 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
7990
specification 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

8394
Installing the Template System
@@ -118,8 +129,10 @@ Building your iOS Framework
118129

119130
1. 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

124137
The finished product will be in your standard build location as
125138
**(configuration)-universal/(your framework).framework**.

0 commit comments

Comments
 (0)