<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4724239875362122871</id><updated>2026-07-18T23:00:25.313-07:00</updated><category term="iOS framework xcode4 static library"/><title type='text'>Code Friend</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://codefriend.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4724239875362122871/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://codefriend.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12221252100364035536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4724239875362122871.post-861520526241369091</id><published>2013-03-16T21:25:00.000-07:00</published><updated>2013-03-26T13:45:16.136-07:00</updated><title type='text'>Bible Binder</title><content type='html'>Bible Binder is my latest iPhone app. It was released to the app store on March 25, 2013. If you have any comments, questions, or suggestions please leave a comment below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://itunes.apple.com/us/app/bible-binder/id623064068?mt=8&amp;amp;uo=4&quot; style=&quot;background-image: url(http://linkmaker.itunes.apple.com/htmlResources/assets/images/web/linkmaker/badge_appstore-lrg.svg); background: url(http://linkmaker.itunes.apple.com/htmlResources/assets/images/web/linkmaker/badge_appstore-lrg.png) no-repeat; display: inline-block; height: 40px; overflow: hidden; width: 135px;&quot; target=&quot;itunes_store&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;
Description:&lt;/h2&gt;
Hide God&#39;s word in your heart by studying and memorizing in a fun and organized way. Memorizing scripture verses for a bible study or class? Keep them organized in the classes tab. The categories tab keeps your verses organized by themes, so you can access and share encouraging verses for any situation!&lt;br /&gt;
&lt;br /&gt;
The memorizing aid helps you to learn each verse word perfectly. Start by viewing the full text of a verse. As you begin to remember the verse take away a few words at a time and continue practicing. Soon you&#39;ll be able to recite the verse from memory and have the satisfaction of moving the verses to the &#39;Memorized&#39; list! Wtih all your memorized verses in one place it will be easy to review them often to keep them fresh in your mind.&lt;br /&gt;
&lt;br /&gt;
It won&#39;t be long before you&#39;ll experience the blessings of having God&#39;s Word stored in your heart and mind.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Reported Bugs:&lt;/h2&gt;
&lt;div&gt;
1) When entering a new verse the selected book defaults to &quot;Gensis&quot;, however, if all other information is entered you will be given the &quot;Incomplete Data&quot; alert. To work around this issue select a different book then re-select Genesis.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://codefriend.blogspot.com/feeds/861520526241369091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codefriend.blogspot.com/2013/03/bible-binder.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4724239875362122871/posts/default/861520526241369091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4724239875362122871/posts/default/861520526241369091'/><link rel='alternate' type='text/html' href='http://codefriend.blogspot.com/2013/03/bible-binder.html' title='Bible Binder'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12221252100364035536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4724239875362122871.post-5575076816514215606</id><published>2011-09-21T05:01:00.000-07:00</published><updated>2011-09-23T11:09:02.830-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iOS framework xcode4 static library"/><title type='text'>Creating iOS Framework with Xcode4</title><content type='html'>I have been searching for a way to create a static library for a while. I figured out how to do so but then had the issue of creating a static library that was only one file and worked with both iOS devices (arm6 and arm7 architecutres) and the iOS Simulator (i386 architecture). I finally got that to work but then ran into another problem. I was using the MapKit library which is unavailable in the i386 version. I could not figure out a way to make all of these work together. Finally, I figured out how to create a framework instead of a library. There are rumors that Apple does not approve apps with custom frameworks but that is not true. I have deployed an app to the app store, that was approved, with a custom framework. With that being said, let&#39;s get into how to build our own custom framework that will be re-usable, can use any other framework, and will work with both iOS devices and the iOS Simulator.&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Step 1: Create a new iOS Application&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRB2zDKcSNU3kKub-SyuReLNmqDLb0shZcNmJd7v3j1hkKX2KHOW8XnWRcykgAFk2hn_CuEpvOs88_vA6ijdMMkJ2dYDTIdsAAJ7Qu8p1a6zLIogmSijrgz9BUtDCF2UI2m63yHBjymy-X/s1600/Screen+shot+2011-09-20+at+7.29.11+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRB2zDKcSNU3kKub-SyuReLNmqDLb0shZcNmJd7v3j1hkKX2KHOW8XnWRcykgAFk2hn_CuEpvOs88_vA6ijdMMkJ2dYDTIdsAAJ7Qu8p1a6zLIogmSijrgz9BUtDCF2UI2m63yHBjymy-X/s400/Screen+shot+2011-09-20+at+7.29.11+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;From here we will be able to write a test application in addition to writing the framework. I am naming my framework project &quot;example&quot;.&lt;br /&gt;
* If you are building against iOS 5.0 but want to deploy to an earlier  version of iOS you will want to open the project&#39;s &quot;Build Settings&quot; and set Objective-C Automatic Reference  Counting = No &lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Step 2: Create a New Bundle Target&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMKvQIhYDYYjCsn9yIvDsUhVGhJvN2hQusNkt61VkK7yna5KjkTvVmEDiV1EStTeV50aqjGjQv88MhPgXx6PIqNZhYqx5eLaTBeqt0BBogonqVbsdQlcPo6MSSuEss31lC15ixXRJ330E7/s1600/Screen+shot+2011-09-20+at+7.40.15+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;262&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMKvQIhYDYYjCsn9yIvDsUhVGhJvN2hQusNkt61VkK7yna5KjkTvVmEDiV1EStTeV50aqjGjQv88MhPgXx6PIqNZhYqx5eLaTBeqt0BBogonqVbsdQlcPo6MSSuEss31lC15ixXRJ330E7/s400/Screen+shot+2011-09-20+at+7.40.15+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;A bundle is used here because it will allow us to store xib files, as well as source code and any other resources we need. My new bundle target will be name &quot;exampleBundle&quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Step 3: Configure Bundle Target&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyID4BX8XQzK4XYpJFZhIKd3OrcfyRCxe5tml7-b7O3pv0ohu11nmsVv6XwAOm5Xs8IbgsZZnVLS9yptNqW0e0durn-YSEmvP7FFxnGmAnXoyDlGSgU29cJAM0AhyphenhyphenbaroMs_pcrt_-xccA/s1600/Screen+shot+2011-09-21+at+7.11.25+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyID4BX8XQzK4XYpJFZhIKd3OrcfyRCxe5tml7-b7O3pv0ohu11nmsVv6XwAOm5Xs8IbgsZZnVLS9yptNqW0e0durn-YSEmvP7FFxnGmAnXoyDlGSgU29cJAM0AhyphenhyphenbaroMs_pcrt_-xccA/s400/Screen+shot+2011-09-21+at+7.11.25+AM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Here is a list of the changes that need to be made:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Base SDK = Latest iOS&lt;/li&gt;
&lt;li&gt;Architectures = Standard&lt;/li&gt;
&lt;li&gt;Build Active Architecture = No&lt;/li&gt;
&lt;li&gt;Valid Architectures = $(ARCHS_STANDARD_32_BIT)&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;It is important to copy this string exactly as is&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Dead Code Stripping = No&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;This is because Apple does not want you to have a dynamic library. This enables that &quot;static&quot; part of the framework&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Link With Standard Libraries = No&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Any libraries required by your framework will have to be imported into the project that uses your framework&lt;/li&gt;
&lt;li&gt;ie- If your framework requires MapKit (like mine did) then the app that uses your framework will need to add MapKit to the imported frameworks&lt;/li&gt;
&lt;/ul&gt;&lt;li&gt;Match-O Type = Relocatable Object File&lt;/li&gt;
&lt;li&gt;Wrapper Extension = framework&lt;/li&gt;
&lt;/ul&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Step 4: Create Aggregate Target&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsdOmwtVXlkdBcNcYd0duT58_SSXa0PHo29Mr17BBx3eKbAi-Q3qejk7KCpS8-r_00e39RTWepZjTcBVEnAgjBDMCOAh4DVp3jIPbPMSpZdifBeCQlaSToBpHXzNIwnaSCCNMQ_OPGUAqm/s1600/Screen+shot+2011-09-20+at+9.38.40+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;263&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsdOmwtVXlkdBcNcYd0duT58_SSXa0PHo29Mr17BBx3eKbAi-Q3qejk7KCpS8-r_00e39RTWepZjTcBVEnAgjBDMCOAh4DVp3jIPbPMSpZdifBeCQlaSToBpHXzNIwnaSCCNMQ_OPGUAqm/s400/Screen+shot+2011-09-20+at+9.38.40+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I have named my aggregate target &quot;exampleAggregate&quot;. The aggregrate is the final target and when it is built it will turn the code into a framework.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Step 5: Configure Aggregate Target&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Go to the &quot;Build Phases&quot; tab of the newly created aggregate target.&lt;/li&gt;
&lt;li&gt;Add a new &quot;Run Script&quot; as a build phase.&lt;/li&gt;
&lt;li&gt; Set the script to be the following where FMK_NAME is the name of your new framework: &lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;# Sets the target folders and the final framework product.&lt;br /&gt;
FMK_NAME=Example&lt;br /&gt;
FMK_VERSION=A&lt;br /&gt;
&lt;br /&gt;
# Install dir will be the final output to the framework.&lt;br /&gt;
# The following line create it in the root folder of the current project.&lt;br /&gt;
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework&lt;br /&gt;
&lt;br /&gt;
# Working dir will be deleted after the framework creation.&lt;br /&gt;
WRK_DIR=build&lt;br /&gt;
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework&lt;br /&gt;
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework&lt;br /&gt;
&lt;br /&gt;
# Building both architectures.&lt;br /&gt;
xcodebuild -configuration &quot;Release&quot; -target &quot;${FMK_NAME}&quot; -sdk iphoneos&lt;br /&gt;
xcodebuild -configuration &quot;Release&quot; -target &quot;${FMK_NAME}&quot; -sdk iphonesimulator&lt;br /&gt;
&lt;br /&gt;
# Cleaning the oldest.&lt;br /&gt;
if [ -d &quot;${INSTALL_DIR}&quot; ]&lt;br /&gt;
then&lt;br /&gt;
rm -rf &quot;${INSTALL_DIR}&quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Creates and renews the final product folder.&lt;br /&gt;
mkdir -p &quot;${INSTALL_DIR}&quot;&lt;br /&gt;
mkdir -p &quot;${INSTALL_DIR}/Versions&quot;&lt;br /&gt;
mkdir -p &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}&quot;&lt;br /&gt;
mkdir -p &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources&quot;&lt;br /&gt;
mkdir -p &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers&quot;&lt;br /&gt;
&lt;br /&gt;
# Creates the internal links.&lt;br /&gt;
# It MUST uses relative path, otherwise will not work when the folder is copied/moved.&lt;br /&gt;
ln -s &quot;${FMK_VERSION}&quot; &quot;${INSTALL_DIR}/Versions/Current&quot;&lt;br /&gt;
ln -s &quot;Versions/Current/Headers&quot; &quot;${INSTALL_DIR}/Headers&quot;&lt;br /&gt;
ln -s &quot;Versions/Current/Resources&quot; &quot;${INSTALL_DIR}/Resources&quot;&lt;br /&gt;
ln -s &quot;Versions/Current/${FMK_NAME}&quot; &quot;${INSTALL_DIR}/${FMK_NAME}&quot;&lt;br /&gt;
&lt;br /&gt;
# Copies the headers and resources files to the final product folder.&lt;br /&gt;
cp -R &quot;${DEVICE_DIR}/Headers/&quot; &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/&quot;&lt;br /&gt;
cp -R &quot;${DEVICE_DIR}/&quot; &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/&quot;&lt;br /&gt;
&lt;br /&gt;
# Removes the binary and header from the resources folder.&lt;br /&gt;
rm -r &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/Headers&quot; &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/${FMK_NAME}&quot;&lt;br /&gt;
&lt;br /&gt;
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.&lt;br /&gt;
lipo -create &quot;${DEVICE_DIR}/${FMK_NAME}&quot; &quot;${SIMULATOR_DIR}/${FMK_NAME}&quot; -output &quot;${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}&quot;&lt;br /&gt;
&lt;br /&gt;
rm -r &quot;${WRK_DIR}&quot;&lt;/blockquote&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&amp;nbsp;Step 6: Create source code to be used in the framework.&lt;/span&gt;&lt;br /&gt;
The source code should be sure to hide anything you don&#39;t want another developer to see. Remember, the developer has to have the header files in order to use your framework so don&#39;t put anything unnecessary in the header files. I am going to create two classes. One will be named &quot;publicClass&quot; and will useable by other developers that use this framework. The second will be named &quot;privateClass&quot; and will not be useable or visible to other developers. The second class will only be used internal to this framework.&lt;br /&gt;
&lt;br /&gt;
Also, when you created the Bundle target a new group was created in the Project Navigator panel with the same name as the bundle (in my case &quot;exampleBundle&quot;). All of your framework code should be stored under this group. This is not necessary but will be beneficial as you try to keep everything organized and will help you be sure not to miss any source code or header files when you are dealing with them in the next step.&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt; Step 7: Complete Bundle Target Setup&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9UlFLEGH44RrrAX7zHvBhFy1rSYzrzcW0rjqbbYe4KbEe6Xnw5pq1jdf_i9at5f0hgGrbCk6xctiTRhIuQgcY1NT9LPbMD2APqUPFxWxrl1CkLKRThgRq-V8qpnxLCWpQHIIsuqTxoA7/s1600/Screen+shot+2011-09-21+at+7.54.43+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ9UlFLEGH44RrrAX7zHvBhFy1rSYzrzcW0rjqbbYe4KbEe6Xnw5pq1jdf_i9at5f0hgGrbCk6xctiTRhIuQgcY1NT9LPbMD2APqUPFxWxrl1CkLKRThgRq-V8qpnxLCWpQHIIsuqTxoA7/s400/Screen+shot+2011-09-21+at+7.54.43+AM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Now that we have the source code complete, go back to the target bundle we created and navigate to the &quot;Build Phases&quot; tab.&lt;/li&gt;
&lt;li&gt;Expand the &quot;Compile Sources&quot; section. Here we will add all *.m files that need to be compiled. Basically, any of the code that was written in the previous step (not including header files) should be added here. In my case, publicClass.m and privateClass.m are being added.&lt;/li&gt;
&lt;li&gt;If your framework is using any other frameworks (such as MapKit) add it to &quot;Link Binary with Libraries&quot; &lt;/li&gt;
&lt;li&gt;If you have any additional resources, add them to the &quot;Copy Bundle Resources&quot; section.&lt;/li&gt;
&lt;li&gt;Add &quot;Copy Headers&quot; as a new Build Phase&lt;/li&gt;
&lt;li&gt;Add header files to the &quot;Copy Headers&quot; section&lt;/li&gt;
&lt;ul&gt;&lt;li&gt;Any header files that should be public should be added and placed under &quot;Public&quot;&lt;/li&gt;
&lt;li&gt;Any header files that should be private should be added and placed under &quot;Private&quot;&lt;/li&gt;
&lt;/ul&gt;&lt;/ul&gt;*Note: I also created a header file named &quot;exampleHeader.h&quot;. This header file simply imports all of the public header files in my framework. Now, when another developer uses this framework he/she can just use&lt;br /&gt;
&lt;blockquote&gt;#import &amp;lt;exampleBundle/exampleHeader.h&amp;gt;&lt;/blockquote&gt;instead of importing every header file. This may be overkill for this example framework but it will be much appreciated by the developer if you build a complex framework that has several header files. &lt;br /&gt;
&lt;ul&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Step 8: Fix &amp;lt;bundle name&amp;gt;-Prefix.pch&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;This file should have a line &quot;#import &amp;lt;Cocoa/Cocoa.h&amp;gt;&quot; and that line must be removed&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Step 9: Build the Aggregate Target&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;We have completed all necessary steps and your framework is ready to build. If you build the aggregate target you will find a new folder under &amp;lt;project root directory&amp;gt;\Products and it will be given the name &amp;lt;bundle name&amp;gt;.framework. This is your new framework! It contains the header files that developers will need and the compiled source code.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Your next step will be to create a project that uses this framework. When you do so you will want to import the framework. Do this by navigating to the &quot;Build Settings&quot; tab under your app target then click the &quot;+&quot; under &quot;Link Binaries with Libraries&quot; just as you would with any standard framework. The only difference is that your framework will not be in the list. You will have to click &quot;Add Other...&quot; then navigate to the &amp;lt;bundle name&amp;gt;.framework folder. Select that folder and click &quot;Open&quot;.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDmRG4t-kS61NDzZt0IhvgFcOS2Du68HUHwQ1GzGBt9rcsRVR9q9ZBmnOhDvwjSezTPTpHJ4NQALZPbKKHJH9gXLsp1tsR_HfWGzsIFmOaCXZeBuSYVNzOrooue4tm0xd1ncHZUDQUpkgX/s1600/Screen+shot+2011-09-21+at+7.45.30+AM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDmRG4t-kS61NDzZt0IhvgFcOS2Du68HUHwQ1GzGBt9rcsRVR9q9ZBmnOhDvwjSezTPTpHJ4NQALZPbKKHJH9gXLsp1tsR_HfWGzsIFmOaCXZeBuSYVNzOrooue4tm0xd1ncHZUDQUpkgX/s320/Screen+shot+2011-09-21+at+7.45.30+AM.png&quot; width=&quot;273&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Your new framework has been added and you or the other developer can begin developing!&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;If you follow these steps and have issues please let me know so that I can update this and have completely accurate instructions for creating a framework. My source code for this project is hosted on git hub. Find it &lt;a href=&quot;https://github.com/beyerss/exampleFramework&quot;&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://codefriend.blogspot.com/feeds/5575076816514215606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://codefriend.blogspot.com/2011/09/creating-ios-framework-with-xcode4.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4724239875362122871/posts/default/5575076816514215606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4724239875362122871/posts/default/5575076816514215606'/><link rel='alternate' type='text/html' href='http://codefriend.blogspot.com/2011/09/creating-ios-framework-with-xcode4.html' title='Creating iOS Framework with Xcode4'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/12221252100364035536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRB2zDKcSNU3kKub-SyuReLNmqDLb0shZcNmJd7v3j1hkKX2KHOW8XnWRcykgAFk2hn_CuEpvOs88_vA6ijdMMkJ2dYDTIdsAAJ7Qu8p1a6zLIogmSijrgz9BUtDCF2UI2m63yHBjymy-X/s72-c/Screen+shot+2011-09-20+at+7.29.11+PM.png" height="72" width="72"/><thr:total>18</thr:total></entry></feed>