├── .gitignore ├── LICENSE ├── MyLibrary ├── MyLibrary.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── MyLibrary │ ├── MyLibrary-Prefix.pch │ ├── MyViewController.h │ ├── MyViewController.m │ └── MyViewController.xib ├── MyLibraryTest ├── MyLibraryTest.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── MyLibraryTest │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── MyLibraryTest-Info.plist │ ├── MyLibraryTest-Prefix.pch │ └── main.m └── README.markdown /.gitignore: -------------------------------------------------------------------------------- 1 | build 2 | *.pbxuser 3 | *.mode1v3 4 | *.mode2v3 5 | *.pbxuser 6 | *.perspective 7 | *.perspectivev3 8 | *.xcuserdatad 9 | 10 | .DS_Store 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Matt Galloway. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | 1. Redistributions of source code must retain the above copyright notice, this 7 | list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 16 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 17 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 21 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | C91BD03B14C040F900727134 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD03A14C040F900727134 /* Foundation.framework */; }; 11 | C91BD04D14C0412400727134 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD04C14C0412400727134 /* CoreFoundation.framework */; }; 12 | C91BD05B14C042AD00727134 /* MyViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = C91BD05814C042AD00727134 /* MyViewController.h */; settings = {ATTRIBUTES = (); }; }; 13 | C91BD05C14C042AD00727134 /* MyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C91BD05914C042AD00727134 /* MyViewController.m */; }; 14 | C91BD05D14C042C300727134 /* MyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C91BD05A14C042AD00727134 /* MyViewController.xib */; }; 15 | C91BD09414C0448200727134 /* MyViewController.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = C91BD05814C042AD00727134 /* MyViewController.h */; }; 16 | /* End PBXBuildFile section */ 17 | 18 | /* Begin PBXCopyFilesBuildPhase section */ 19 | C91BD09314C0447300727134 /* CopyFiles */ = { 20 | isa = PBXCopyFilesBuildPhase; 21 | buildActionMask = 2147483647; 22 | dstPath = include; 23 | dstSubfolderSpec = 16; 24 | files = ( 25 | C91BD09414C0448200727134 /* MyViewController.h in CopyFiles */, 26 | ); 27 | runOnlyForDeploymentPostprocessing = 0; 28 | }; 29 | /* End PBXCopyFilesBuildPhase section */ 30 | 31 | /* Begin PBXFileReference section */ 32 | C91BD03714C040F900727134 /* libMyLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMyLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; }; 33 | C91BD03A14C040F900727134 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 34 | C91BD03E14C040F900727134 /* MyLibrary-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MyLibrary-Prefix.pch"; sourceTree = ""; }; 35 | C91BD04B14C0412400727134 /* MyLibraryResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyLibraryResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 36 | C91BD04C14C0412400727134 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; 37 | C91BD05814C042AD00727134 /* MyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyViewController.h; sourceTree = ""; }; 38 | C91BD05914C042AD00727134 /* MyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyViewController.m; sourceTree = ""; }; 39 | C91BD05A14C042AD00727134 /* MyViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MyViewController.xib; sourceTree = ""; }; 40 | /* End PBXFileReference section */ 41 | 42 | /* Begin PBXFrameworksBuildPhase section */ 43 | C91BD03414C040F900727134 /* Frameworks */ = { 44 | isa = PBXFrameworksBuildPhase; 45 | buildActionMask = 2147483647; 46 | files = ( 47 | C91BD03B14C040F900727134 /* Foundation.framework in Frameworks */, 48 | ); 49 | runOnlyForDeploymentPostprocessing = 0; 50 | }; 51 | C91BD04814C0412400727134 /* Frameworks */ = { 52 | isa = PBXFrameworksBuildPhase; 53 | buildActionMask = 2147483647; 54 | files = ( 55 | C91BD04D14C0412400727134 /* CoreFoundation.framework in Frameworks */, 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | /* End PBXFrameworksBuildPhase section */ 60 | 61 | /* Begin PBXGroup section */ 62 | C91BD02C14C040F900727134 = { 63 | isa = PBXGroup; 64 | children = ( 65 | C91BD03C14C040F900727134 /* MyLibrary */, 66 | C91BD03914C040F900727134 /* Frameworks */, 67 | C91BD03814C040F900727134 /* Products */, 68 | ); 69 | sourceTree = ""; 70 | }; 71 | C91BD03814C040F900727134 /* Products */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | C91BD03714C040F900727134 /* libMyLibrary.a */, 75 | C91BD04B14C0412400727134 /* MyLibraryResources.bundle */, 76 | ); 77 | name = Products; 78 | sourceTree = ""; 79 | }; 80 | C91BD03914C040F900727134 /* Frameworks */ = { 81 | isa = PBXGroup; 82 | children = ( 83 | C91BD03A14C040F900727134 /* Foundation.framework */, 84 | C91BD04C14C0412400727134 /* CoreFoundation.framework */, 85 | ); 86 | name = Frameworks; 87 | sourceTree = ""; 88 | }; 89 | C91BD03C14C040F900727134 /* MyLibrary */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | C91BD05814C042AD00727134 /* MyViewController.h */, 93 | C91BD05914C042AD00727134 /* MyViewController.m */, 94 | C91BD05A14C042AD00727134 /* MyViewController.xib */, 95 | C91BD03D14C040F900727134 /* Supporting Files */, 96 | ); 97 | path = MyLibrary; 98 | sourceTree = ""; 99 | }; 100 | C91BD03D14C040F900727134 /* Supporting Files */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | C91BD03E14C040F900727134 /* MyLibrary-Prefix.pch */, 104 | ); 105 | name = "Supporting Files"; 106 | sourceTree = ""; 107 | }; 108 | /* End PBXGroup section */ 109 | 110 | /* Begin PBXHeadersBuildPhase section */ 111 | C91BD03514C040F900727134 /* Headers */ = { 112 | isa = PBXHeadersBuildPhase; 113 | buildActionMask = 2147483647; 114 | files = ( 115 | C91BD05B14C042AD00727134 /* MyViewController.h in Headers */, 116 | ); 117 | runOnlyForDeploymentPostprocessing = 0; 118 | }; 119 | /* End PBXHeadersBuildPhase section */ 120 | 121 | /* Begin PBXNativeTarget section */ 122 | C91BD03614C040F900727134 /* MyLibrary */ = { 123 | isa = PBXNativeTarget; 124 | buildConfigurationList = C91BD04414C040F900727134 /* Build configuration list for PBXNativeTarget "MyLibrary" */; 125 | buildPhases = ( 126 | C91BD03314C040F900727134 /* Sources */, 127 | C91BD03414C040F900727134 /* Frameworks */, 128 | C91BD03514C040F900727134 /* Headers */, 129 | C91BD09314C0447300727134 /* CopyFiles */, 130 | ); 131 | buildRules = ( 132 | ); 133 | dependencies = ( 134 | ); 135 | name = MyLibrary; 136 | productName = MyLibrary; 137 | productReference = C91BD03714C040F900727134 /* libMyLibrary.a */; 138 | productType = "com.apple.product-type.library.static"; 139 | }; 140 | C91BD04A14C0412400727134 /* MyLibraryResources */ = { 141 | isa = PBXNativeTarget; 142 | buildConfigurationList = C91BD05514C0412400727134 /* Build configuration list for PBXNativeTarget "MyLibraryResources" */; 143 | buildPhases = ( 144 | C91BD04714C0412400727134 /* Sources */, 145 | C91BD04814C0412400727134 /* Frameworks */, 146 | C91BD04914C0412400727134 /* Resources */, 147 | ); 148 | buildRules = ( 149 | ); 150 | dependencies = ( 151 | ); 152 | name = MyLibraryResources; 153 | productName = MyLibraryResources; 154 | productReference = C91BD04B14C0412400727134 /* MyLibraryResources.bundle */; 155 | productType = "com.apple.product-type.bundle"; 156 | }; 157 | /* End PBXNativeTarget section */ 158 | 159 | /* Begin PBXProject section */ 160 | C91BD02E14C040F900727134 /* Project object */ = { 161 | isa = PBXProject; 162 | attributes = { 163 | LastUpgradeCheck = 0420; 164 | }; 165 | buildConfigurationList = C91BD03114C040F900727134 /* Build configuration list for PBXProject "MyLibrary" */; 166 | compatibilityVersion = "Xcode 3.2"; 167 | developmentRegion = English; 168 | hasScannedForEncodings = 0; 169 | knownRegions = ( 170 | en, 171 | ); 172 | mainGroup = C91BD02C14C040F900727134; 173 | productRefGroup = C91BD03814C040F900727134 /* Products */; 174 | projectDirPath = ""; 175 | projectRoot = ""; 176 | targets = ( 177 | C91BD03614C040F900727134 /* MyLibrary */, 178 | C91BD04A14C0412400727134 /* MyLibraryResources */, 179 | ); 180 | }; 181 | /* End PBXProject section */ 182 | 183 | /* Begin PBXResourcesBuildPhase section */ 184 | C91BD04914C0412400727134 /* Resources */ = { 185 | isa = PBXResourcesBuildPhase; 186 | buildActionMask = 2147483647; 187 | files = ( 188 | C91BD05D14C042C300727134 /* MyViewController.xib in Resources */, 189 | ); 190 | runOnlyForDeploymentPostprocessing = 0; 191 | }; 192 | /* End PBXResourcesBuildPhase section */ 193 | 194 | /* Begin PBXSourcesBuildPhase section */ 195 | C91BD03314C040F900727134 /* Sources */ = { 196 | isa = PBXSourcesBuildPhase; 197 | buildActionMask = 2147483647; 198 | files = ( 199 | C91BD05C14C042AD00727134 /* MyViewController.m in Sources */, 200 | ); 201 | runOnlyForDeploymentPostprocessing = 0; 202 | }; 203 | C91BD04714C0412400727134 /* Sources */ = { 204 | isa = PBXSourcesBuildPhase; 205 | buildActionMask = 2147483647; 206 | files = ( 207 | ); 208 | runOnlyForDeploymentPostprocessing = 0; 209 | }; 210 | /* End PBXSourcesBuildPhase section */ 211 | 212 | /* Begin XCBuildConfiguration section */ 213 | C91BD04214C040F900727134 /* Debug */ = { 214 | isa = XCBuildConfiguration; 215 | buildSettings = { 216 | ALWAYS_SEARCH_USER_PATHS = NO; 217 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 218 | CLANG_ENABLE_OBJC_ARC = YES; 219 | COPY_PHASE_STRIP = NO; 220 | GCC_C_LANGUAGE_STANDARD = gnu99; 221 | GCC_DYNAMIC_NO_PIC = NO; 222 | GCC_OPTIMIZATION_LEVEL = 0; 223 | GCC_PREPROCESSOR_DEFINITIONS = ( 224 | "DEBUG=1", 225 | "$(inherited)", 226 | ); 227 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 228 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 229 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 230 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 231 | GCC_WARN_UNUSED_VARIABLE = YES; 232 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 233 | SDKROOT = iphoneos; 234 | }; 235 | name = Debug; 236 | }; 237 | C91BD04314C040F900727134 /* Release */ = { 238 | isa = XCBuildConfiguration; 239 | buildSettings = { 240 | ALWAYS_SEARCH_USER_PATHS = NO; 241 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 242 | CLANG_ENABLE_OBJC_ARC = YES; 243 | COPY_PHASE_STRIP = YES; 244 | GCC_C_LANGUAGE_STANDARD = gnu99; 245 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 246 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 247 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 248 | GCC_WARN_UNUSED_VARIABLE = YES; 249 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 250 | SDKROOT = iphoneos; 251 | VALIDATE_PRODUCT = YES; 252 | }; 253 | name = Release; 254 | }; 255 | C91BD04514C040F900727134 /* Debug */ = { 256 | isa = XCBuildConfiguration; 257 | buildSettings = { 258 | DSTROOT = /tmp/MyLibrary.dst; 259 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 260 | GCC_PREFIX_HEADER = "MyLibrary/MyLibrary-Prefix.pch"; 261 | OTHER_LDFLAGS = "-ObjC"; 262 | PRODUCT_NAME = "$(TARGET_NAME)"; 263 | SKIP_INSTALL = YES; 264 | }; 265 | name = Debug; 266 | }; 267 | C91BD04614C040F900727134 /* Release */ = { 268 | isa = XCBuildConfiguration; 269 | buildSettings = { 270 | DSTROOT = /tmp/MyLibrary.dst; 271 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 272 | GCC_PREFIX_HEADER = "MyLibrary/MyLibrary-Prefix.pch"; 273 | OTHER_LDFLAGS = "-ObjC"; 274 | PRODUCT_NAME = "$(TARGET_NAME)"; 275 | SKIP_INSTALL = YES; 276 | }; 277 | name = Release; 278 | }; 279 | C91BD05614C0412400727134 /* Debug */ = { 280 | isa = XCBuildConfiguration; 281 | buildSettings = { 282 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 283 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 284 | GCC_PREFIX_HEADER = "MyLibraryResources/MyLibraryResources-Prefix.pch"; 285 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 286 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; 287 | ONLY_ACTIVE_ARCH = YES; 288 | PRODUCT_NAME = "$(TARGET_NAME)"; 289 | SKIP_INSTALL = YES; 290 | WRAPPER_EXTENSION = bundle; 291 | }; 292 | name = Debug; 293 | }; 294 | C91BD05714C0412400727134 /* Release */ = { 295 | isa = XCBuildConfiguration; 296 | buildSettings = { 297 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 298 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 299 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 300 | GCC_PREFIX_HEADER = "MyLibraryResources/MyLibraryResources-Prefix.pch"; 301 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 302 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; 303 | PRODUCT_NAME = "$(TARGET_NAME)"; 304 | SKIP_INSTALL = YES; 305 | WRAPPER_EXTENSION = bundle; 306 | }; 307 | name = Release; 308 | }; 309 | /* End XCBuildConfiguration section */ 310 | 311 | /* Begin XCConfigurationList section */ 312 | C91BD03114C040F900727134 /* Build configuration list for PBXProject "MyLibrary" */ = { 313 | isa = XCConfigurationList; 314 | buildConfigurations = ( 315 | C91BD04214C040F900727134 /* Debug */, 316 | C91BD04314C040F900727134 /* Release */, 317 | ); 318 | defaultConfigurationIsVisible = 0; 319 | defaultConfigurationName = Release; 320 | }; 321 | C91BD04414C040F900727134 /* Build configuration list for PBXNativeTarget "MyLibrary" */ = { 322 | isa = XCConfigurationList; 323 | buildConfigurations = ( 324 | C91BD04514C040F900727134 /* Debug */, 325 | C91BD04614C040F900727134 /* Release */, 326 | ); 327 | defaultConfigurationIsVisible = 0; 328 | defaultConfigurationName = Release; 329 | }; 330 | C91BD05514C0412400727134 /* Build configuration list for PBXNativeTarget "MyLibraryResources" */ = { 331 | isa = XCConfigurationList; 332 | buildConfigurations = ( 333 | C91BD05614C0412400727134 /* Debug */, 334 | C91BD05714C0412400727134 /* Release */, 335 | ); 336 | defaultConfigurationIsVisible = 0; 337 | defaultConfigurationName = Release; 338 | }; 339 | /* End XCConfigurationList section */ 340 | }; 341 | rootObject = C91BD02E14C040F900727134 /* Project object */; 342 | } 343 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary/MyLibrary-Prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #import 4 | #endif 5 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary/MyViewController.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface MyViewController : UIViewController 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary/MyViewController.m: -------------------------------------------------------------------------------- 1 | #import "MyViewController.h" 2 | 3 | @implementation MyViewController 4 | 5 | - (id)init { 6 | NSBundle *bundle = [NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"MyLibraryResources" withExtension:@"bundle"]]; 7 | if ((self = [super initWithNibName:@"MyViewController" bundle:bundle])) { 8 | } 9 | return self; 10 | } 11 | 12 | @end 13 | -------------------------------------------------------------------------------- /MyLibrary/MyLibrary/MyViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1280 5 | 11C74 6 | 1938 7 | 1138.23 8 | 567.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 933 12 | 13 | 14 | IBProxyObject 15 | IBUIView 16 | IBUILabel 17 | 18 | 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | PluginDependencyRecalculationVersion 23 | 24 | 25 | 26 | 27 | IBFilesOwner 28 | IBCocoaTouchFramework 29 | 30 | 31 | IBFirstResponder 32 | IBCocoaTouchFramework 33 | 34 | 35 | 36 | 274 37 | 38 | 39 | 40 | 292 41 | {{60, 219}, {200, 21}} 42 | 43 | 44 | 45 | _NS:328 46 | NO 47 | YES 48 | 7 49 | NO 50 | IBCocoaTouchFramework 51 | I'M IN THE RESOURCES! 52 | 53 | 1 54 | MCAwIDAAA 55 | 56 | 57 | 1 58 | 10 59 | 60 | 1 61 | 17 62 | 63 | 64 | Helvetica 65 | 17 66 | 16 67 | 68 | 69 | 70 | {{0, 20}, {320, 460}} 71 | 72 | 73 | 74 | 75 | 3 76 | MQA 77 | 78 | 2 79 | 80 | 81 | 82 | IBCocoaTouchFramework 83 | 84 | 85 | 86 | 87 | 88 | 89 | view 90 | 91 | 92 | 93 | 3 94 | 95 | 96 | 97 | 98 | 99 | 0 100 | 101 | 102 | 103 | 104 | 105 | 1 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | -1 114 | 115 | 116 | File's Owner 117 | 118 | 119 | -2 120 | 121 | 122 | 123 | 124 | 4 125 | 126 | 127 | 128 | 129 | 130 | 131 | MyViewController 132 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 133 | UIResponder 134 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 135 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 136 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 137 | 138 | 139 | 140 | 141 | 142 | 4 143 | 144 | 145 | 146 | 147 | MyViewController 148 | UIViewController 149 | 150 | IBProjectSource 151 | ./Classes/MyViewController.h 152 | 153 | 154 | 155 | 156 | 0 157 | IBCocoaTouchFramework 158 | YES 159 | 3 160 | 933 161 | 162 | 163 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | C91BD06E14C0436200727134 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD06D14C0436200727134 /* UIKit.framework */; }; 11 | C91BD07014C0436200727134 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD06F14C0436200727134 /* Foundation.framework */; }; 12 | C91BD07214C0436200727134 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD07114C0436200727134 /* CoreGraphics.framework */; }; 13 | C91BD07A14C0436200727134 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C91BD07914C0436200727134 /* main.m */; }; 14 | C91BD07E14C0436200727134 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C91BD07D14C0436200727134 /* AppDelegate.m */; }; 15 | C91BD09214C0440B00727134 /* MyLibraryResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = C91BD08F14C0437000727134 /* MyLibraryResources.bundle */; }; 16 | C91BD09514C048B300727134 /* libMyLibrary.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C91BD08D14C0437000727134 /* libMyLibrary.a */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXContainerItemProxy section */ 20 | A7DFD46114D17BDA0016FA42 /* PBXContainerItemProxy */ = { 21 | isa = PBXContainerItemProxy; 22 | containerPortal = C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */; 23 | proxyType = 1; 24 | remoteGlobalIDString = C91BD03614C040F900727134; 25 | remoteInfo = MyLibrary; 26 | }; 27 | A7DFD46314D17BDD0016FA42 /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */; 30 | proxyType = 1; 31 | remoteGlobalIDString = C91BD04A14C0412400727134; 32 | remoteInfo = MyLibraryResources; 33 | }; 34 | C91BD08C14C0437000727134 /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */; 37 | proxyType = 2; 38 | remoteGlobalIDString = C91BD03714C040F900727134; 39 | remoteInfo = MyLibrary; 40 | }; 41 | C91BD08E14C0437000727134 /* PBXContainerItemProxy */ = { 42 | isa = PBXContainerItemProxy; 43 | containerPortal = C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */; 44 | proxyType = 2; 45 | remoteGlobalIDString = C91BD04B14C0412400727134; 46 | remoteInfo = MyLibraryResources; 47 | }; 48 | /* End PBXContainerItemProxy section */ 49 | 50 | /* Begin PBXFileReference section */ 51 | C91BD06914C0436200727134 /* MyLibraryTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyLibraryTest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 52 | C91BD06D14C0436200727134 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 53 | C91BD06F14C0436200727134 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 54 | C91BD07114C0436200727134 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 55 | C91BD07514C0436200727134 /* MyLibraryTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "MyLibraryTest-Info.plist"; sourceTree = ""; }; 56 | C91BD07914C0436200727134 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 57 | C91BD07B14C0436200727134 /* MyLibraryTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MyLibraryTest-Prefix.pch"; sourceTree = ""; }; 58 | C91BD07C14C0436200727134 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 59 | C91BD07D14C0436200727134 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 60 | C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = MyLibrary.xcodeproj; path = ../MyLibrary/MyLibrary.xcodeproj; sourceTree = ""; }; 61 | /* End PBXFileReference section */ 62 | 63 | /* Begin PBXFrameworksBuildPhase section */ 64 | C91BD06614C0436200727134 /* Frameworks */ = { 65 | isa = PBXFrameworksBuildPhase; 66 | buildActionMask = 2147483647; 67 | files = ( 68 | C91BD09514C048B300727134 /* libMyLibrary.a in Frameworks */, 69 | C91BD06E14C0436200727134 /* UIKit.framework in Frameworks */, 70 | C91BD07014C0436200727134 /* Foundation.framework in Frameworks */, 71 | C91BD07214C0436200727134 /* CoreGraphics.framework in Frameworks */, 72 | ); 73 | runOnlyForDeploymentPostprocessing = 0; 74 | }; 75 | /* End PBXFrameworksBuildPhase section */ 76 | 77 | /* Begin PBXGroup section */ 78 | C91BD05E14C0436200727134 = { 79 | isa = PBXGroup; 80 | children = ( 81 | C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */, 82 | C91BD07314C0436200727134 /* MyLibraryTest */, 83 | C91BD06C14C0436200727134 /* Frameworks */, 84 | C91BD06A14C0436200727134 /* Products */, 85 | ); 86 | sourceTree = ""; 87 | }; 88 | C91BD06A14C0436200727134 /* Products */ = { 89 | isa = PBXGroup; 90 | children = ( 91 | C91BD06914C0436200727134 /* MyLibraryTest.app */, 92 | ); 93 | name = Products; 94 | sourceTree = ""; 95 | }; 96 | C91BD06C14C0436200727134 /* Frameworks */ = { 97 | isa = PBXGroup; 98 | children = ( 99 | C91BD06D14C0436200727134 /* UIKit.framework */, 100 | C91BD06F14C0436200727134 /* Foundation.framework */, 101 | C91BD07114C0436200727134 /* CoreGraphics.framework */, 102 | ); 103 | name = Frameworks; 104 | sourceTree = ""; 105 | }; 106 | C91BD07314C0436200727134 /* MyLibraryTest */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | C91BD07C14C0436200727134 /* AppDelegate.h */, 110 | C91BD07D14C0436200727134 /* AppDelegate.m */, 111 | C91BD07414C0436200727134 /* Supporting Files */, 112 | ); 113 | path = MyLibraryTest; 114 | sourceTree = ""; 115 | }; 116 | C91BD07414C0436200727134 /* Supporting Files */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | C91BD07514C0436200727134 /* MyLibraryTest-Info.plist */, 120 | C91BD07914C0436200727134 /* main.m */, 121 | C91BD07B14C0436200727134 /* MyLibraryTest-Prefix.pch */, 122 | ); 123 | name = "Supporting Files"; 124 | sourceTree = ""; 125 | }; 126 | C91BD08514C0436F00727134 /* Products */ = { 127 | isa = PBXGroup; 128 | children = ( 129 | C91BD08D14C0437000727134 /* libMyLibrary.a */, 130 | C91BD08F14C0437000727134 /* MyLibraryResources.bundle */, 131 | ); 132 | name = Products; 133 | sourceTree = ""; 134 | }; 135 | /* End PBXGroup section */ 136 | 137 | /* Begin PBXNativeTarget section */ 138 | C91BD06814C0436200727134 /* MyLibraryTest */ = { 139 | isa = PBXNativeTarget; 140 | buildConfigurationList = C91BD08114C0436200727134 /* Build configuration list for PBXNativeTarget "MyLibraryTest" */; 141 | buildPhases = ( 142 | C91BD06514C0436200727134 /* Sources */, 143 | C91BD06614C0436200727134 /* Frameworks */, 144 | C91BD06714C0436200727134 /* Resources */, 145 | ); 146 | buildRules = ( 147 | ); 148 | dependencies = ( 149 | A7DFD46414D17BDD0016FA42 /* PBXTargetDependency */, 150 | A7DFD46214D17BDA0016FA42 /* PBXTargetDependency */, 151 | ); 152 | name = MyLibraryTest; 153 | productName = MyLibraryTest; 154 | productReference = C91BD06914C0436200727134 /* MyLibraryTest.app */; 155 | productType = "com.apple.product-type.application"; 156 | }; 157 | /* End PBXNativeTarget section */ 158 | 159 | /* Begin PBXProject section */ 160 | C91BD06014C0436200727134 /* Project object */ = { 161 | isa = PBXProject; 162 | attributes = { 163 | LastUpgradeCheck = 0420; 164 | }; 165 | buildConfigurationList = C91BD06314C0436200727134 /* Build configuration list for PBXProject "MyLibraryTest" */; 166 | compatibilityVersion = "Xcode 3.2"; 167 | developmentRegion = English; 168 | hasScannedForEncodings = 0; 169 | knownRegions = ( 170 | en, 171 | ); 172 | mainGroup = C91BD05E14C0436200727134; 173 | productRefGroup = C91BD06A14C0436200727134 /* Products */; 174 | projectDirPath = ""; 175 | projectReferences = ( 176 | { 177 | ProductGroup = C91BD08514C0436F00727134 /* Products */; 178 | ProjectRef = C91BD08414C0436F00727134 /* MyLibrary.xcodeproj */; 179 | }, 180 | ); 181 | projectRoot = ""; 182 | targets = ( 183 | C91BD06814C0436200727134 /* MyLibraryTest */, 184 | ); 185 | }; 186 | /* End PBXProject section */ 187 | 188 | /* Begin PBXReferenceProxy section */ 189 | C91BD08D14C0437000727134 /* libMyLibrary.a */ = { 190 | isa = PBXReferenceProxy; 191 | fileType = archive.ar; 192 | path = libMyLibrary.a; 193 | remoteRef = C91BD08C14C0437000727134 /* PBXContainerItemProxy */; 194 | sourceTree = BUILT_PRODUCTS_DIR; 195 | }; 196 | C91BD08F14C0437000727134 /* MyLibraryResources.bundle */ = { 197 | isa = PBXReferenceProxy; 198 | fileType = wrapper.cfbundle; 199 | path = MyLibraryResources.bundle; 200 | remoteRef = C91BD08E14C0437000727134 /* PBXContainerItemProxy */; 201 | sourceTree = BUILT_PRODUCTS_DIR; 202 | }; 203 | /* End PBXReferenceProxy section */ 204 | 205 | /* Begin PBXResourcesBuildPhase section */ 206 | C91BD06714C0436200727134 /* Resources */ = { 207 | isa = PBXResourcesBuildPhase; 208 | buildActionMask = 2147483647; 209 | files = ( 210 | C91BD09214C0440B00727134 /* MyLibraryResources.bundle in Resources */, 211 | ); 212 | runOnlyForDeploymentPostprocessing = 0; 213 | }; 214 | /* End PBXResourcesBuildPhase section */ 215 | 216 | /* Begin PBXSourcesBuildPhase section */ 217 | C91BD06514C0436200727134 /* Sources */ = { 218 | isa = PBXSourcesBuildPhase; 219 | buildActionMask = 2147483647; 220 | files = ( 221 | C91BD07A14C0436200727134 /* main.m in Sources */, 222 | C91BD07E14C0436200727134 /* AppDelegate.m in Sources */, 223 | ); 224 | runOnlyForDeploymentPostprocessing = 0; 225 | }; 226 | /* End PBXSourcesBuildPhase section */ 227 | 228 | /* Begin PBXTargetDependency section */ 229 | A7DFD46214D17BDA0016FA42 /* PBXTargetDependency */ = { 230 | isa = PBXTargetDependency; 231 | name = MyLibrary; 232 | targetProxy = A7DFD46114D17BDA0016FA42 /* PBXContainerItemProxy */; 233 | }; 234 | A7DFD46414D17BDD0016FA42 /* PBXTargetDependency */ = { 235 | isa = PBXTargetDependency; 236 | name = MyLibraryResources; 237 | targetProxy = A7DFD46314D17BDD0016FA42 /* PBXContainerItemProxy */; 238 | }; 239 | /* End PBXTargetDependency section */ 240 | 241 | /* Begin XCBuildConfiguration section */ 242 | C91BD07F14C0436200727134 /* Debug */ = { 243 | isa = XCBuildConfiguration; 244 | buildSettings = { 245 | ALWAYS_SEARCH_USER_PATHS = NO; 246 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 247 | CLANG_ENABLE_OBJC_ARC = YES; 248 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 249 | COPY_PHASE_STRIP = NO; 250 | GCC_C_LANGUAGE_STANDARD = gnu99; 251 | GCC_DYNAMIC_NO_PIC = NO; 252 | GCC_OPTIMIZATION_LEVEL = 0; 253 | GCC_PREPROCESSOR_DEFINITIONS = ( 254 | "DEBUG=1", 255 | "$(inherited)", 256 | ); 257 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 258 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 259 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 260 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 261 | GCC_WARN_UNUSED_VARIABLE = YES; 262 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 263 | SDKROOT = iphoneos; 264 | }; 265 | name = Debug; 266 | }; 267 | C91BD08014C0436200727134 /* Release */ = { 268 | isa = XCBuildConfiguration; 269 | buildSettings = { 270 | ALWAYS_SEARCH_USER_PATHS = NO; 271 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 272 | CLANG_ENABLE_OBJC_ARC = YES; 273 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 274 | COPY_PHASE_STRIP = YES; 275 | GCC_C_LANGUAGE_STANDARD = gnu99; 276 | GCC_VERSION = com.apple.compilers.llvm.clang.1_0; 277 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 278 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 279 | GCC_WARN_UNUSED_VARIABLE = YES; 280 | IPHONEOS_DEPLOYMENT_TARGET = 5.0; 281 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 282 | SDKROOT = iphoneos; 283 | VALIDATE_PRODUCT = YES; 284 | }; 285 | name = Release; 286 | }; 287 | C91BD08214C0436200727134 /* Debug */ = { 288 | isa = XCBuildConfiguration; 289 | buildSettings = { 290 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 291 | GCC_PREFIX_HEADER = "MyLibraryTest/MyLibraryTest-Prefix.pch"; 292 | INFOPLIST_FILE = "MyLibraryTest/MyLibraryTest-Info.plist"; 293 | PRODUCT_NAME = "$(TARGET_NAME)"; 294 | USER_HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)"; 295 | WRAPPER_EXTENSION = app; 296 | }; 297 | name = Debug; 298 | }; 299 | C91BD08314C0436200727134 /* Release */ = { 300 | isa = XCBuildConfiguration; 301 | buildSettings = { 302 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 303 | GCC_PREFIX_HEADER = "MyLibraryTest/MyLibraryTest-Prefix.pch"; 304 | INFOPLIST_FILE = "MyLibraryTest/MyLibraryTest-Info.plist"; 305 | PRODUCT_NAME = "$(TARGET_NAME)"; 306 | USER_HEADER_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)"; 307 | WRAPPER_EXTENSION = app; 308 | }; 309 | name = Release; 310 | }; 311 | /* End XCBuildConfiguration section */ 312 | 313 | /* Begin XCConfigurationList section */ 314 | C91BD06314C0436200727134 /* Build configuration list for PBXProject "MyLibraryTest" */ = { 315 | isa = XCConfigurationList; 316 | buildConfigurations = ( 317 | C91BD07F14C0436200727134 /* Debug */, 318 | C91BD08014C0436200727134 /* Release */, 319 | ); 320 | defaultConfigurationIsVisible = 0; 321 | defaultConfigurationName = Release; 322 | }; 323 | C91BD08114C0436200727134 /* Build configuration list for PBXNativeTarget "MyLibraryTest" */ = { 324 | isa = XCConfigurationList; 325 | buildConfigurations = ( 326 | C91BD08214C0436200727134 /* Debug */, 327 | C91BD08314C0436200727134 /* Release */, 328 | ); 329 | defaultConfigurationIsVisible = 0; 330 | defaultConfigurationName = Release; 331 | }; 332 | /* End XCConfigurationList section */ 333 | }; 334 | rootObject = C91BD06014C0436200727134 /* Project object */; 335 | } 336 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest/AppDelegate.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface AppDelegate : UIResponder 4 | 5 | @property (strong, nonatomic) UIWindow *window; 6 | 7 | @end 8 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest/AppDelegate.m: -------------------------------------------------------------------------------- 1 | #import "AppDelegate.h" 2 | 3 | #import "MyViewController.h" 4 | 5 | @implementation AppDelegate 6 | 7 | @synthesize window = _window; 8 | 9 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 10 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 11 | self.window.backgroundColor = [UIColor whiteColor]; 12 | 13 | MyViewController *viewController = [[MyViewController alloc] init]; 14 | self.window.rootViewController = viewController; 15 | 16 | [self.window makeKeyAndVisible]; 17 | return YES; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest/MyLibraryTest-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFiles 12 | 13 | CFBundleIdentifier 14 | com.mjg.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1.0 27 | LSRequiresIPhoneOS 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest/MyLibraryTest-Prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #import 4 | #endif 5 | -------------------------------------------------------------------------------- /MyLibraryTest/MyLibraryTest/main.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #import "AppDelegate.h" 4 | 5 | int main(int argc, char *argv[]) 6 | { 7 | @autoreleasepool { 8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- 1 | # iOS Library With Resources 2 | 3 | ## Introduction 4 | 5 | For a full description of what this project is about, see [my tutorial](http://iphone.galloway.me.uk/iphone-sdktutorials/ios-library-with-resources/). 6 | To get started, clone the repository and open `MyLibraryTest.xcodeproj` where you will find a sample 7 | app which links against a library called `MyLibrary` that includes a XIB. 8 | 9 | ## License 10 | 11 | ios-library-with-resources uses the 2-clause BSD license. So you should be free to use it pretty much however 12 | you want. Contact me if you require further information. 13 | 14 | Copyright (c) 2012 Matt Galloway. All rights reserved. 15 | 16 | Redistribution and use in source and binary forms, with or without 17 | modification, are permitted provided that the following conditions are met: 18 | 19 | 1. Redistributions of source code must retain the above copyright notice, this 20 | list of conditions and the following disclaimer. 21 | 22 | 2. Redistributions in binary form must reproduce the above copyright notice, 23 | this list of conditions and the following disclaimer in the documentation 24 | and/or other materials provided with the distribution. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 30 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 32 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 33 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 34 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 35 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | 37 | ## Automatic Reference Counting (ARC) 38 | 39 | This project uses ARC. 40 | 41 | ## Author 42 | 43 | "iOS Library With Resources" is written and maintained by Matt Galloway . 44 | --------------------------------------------------------------------------------