diff --git a/Xcode/PDFImage.xcodeproj/project.pbxproj b/Xcode/PDFImage.xcodeproj/project.pbxproj index 9a8002e..4377e72 100644 --- a/Xcode/PDFImage.xcodeproj/project.pbxproj +++ b/Xcode/PDFImage.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + C32452D818769D4000FBCF88 /* PDFImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C32452D718769D4000FBCF88 /* PDFImage.framework */; }; C32452DC18769F2E00FBCF88 /* PDFAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C32452DB18769F2E00FBCF88 /* PDFAppDelegate.m */; }; C32452ED1876A29900FBCF88 /* PDFNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = C32452EA1876A29900FBCF88 /* PDFNavigationController.m */; }; C32452EE1876A29900FBCF88 /* PDFViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C32452EC1876A29900FBCF88 /* PDFViewController.m */; }; @@ -26,84 +27,65 @@ C32453101876A63100FBCF88 /* 10.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453051876A63100FBCF88 /* 10.pdf */; }; C32453121876A63600FBCF88 /* 11.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453111876A63600FBCF88 /* 11.pdf */; }; C32453151876A9E200FBCF88 /* PDFAnimationDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C32453141876A9E200FBCF88 /* PDFAnimationDemoViewController.m */; }; - C340C0E919C07FB000431A7D /* PDFImageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C0E819C07FB000431A7D /* PDFImageTests.m */; }; - C340C10319C0805800431A7D /* PDFBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C340C0F919C0805800431A7D /* PDFBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C340C10419C0805800431A7D /* PDFBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C0FA19C0805800431A7D /* PDFBarButtonItem.m */; }; - C340C10519C0805800431A7D /* PDFImage.h in Headers */ = {isa = PBXBuildFile; fileRef = C340C0FB19C0805800431A7D /* PDFImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C340C10619C0805800431A7D /* PDFImage.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C0FC19C0805800431A7D /* PDFImage.m */; }; - C340C10719C0805800431A7D /* PDFImageOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C340C0FD19C0805800431A7D /* PDFImageOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C340C10819C0805800431A7D /* PDFImageOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C0FE19C0805800431A7D /* PDFImageOptions.m */; }; - C340C10919C0805800431A7D /* PDFImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = C340C0FF19C0805800431A7D /* PDFImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C340C10A19C0805800431A7D /* PDFImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C10019C0805800431A7D /* PDFImageView.m */; }; - C340C10B19C0805800431A7D /* PDFImageViewLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = C340C10119C0805800431A7D /* PDFImageViewLayer.h */; }; - C340C10C19C0805800431A7D /* PDFImageViewLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = C340C10219C0805800431A7D /* PDFImageViewLayer.m */; }; - C340C10D19C082AC00431A7D /* 0.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FB1876A63100FBCF88 /* 0.pdf */; }; - C340C10E19C082B300431A7D /* 1.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FC1876A63100FBCF88 /* 1.pdf */; }; - C340C10F19C082B300431A7D /* 2.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FD1876A63100FBCF88 /* 2.pdf */; }; - C340C11019C082B300431A7D /* 3.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FE1876A63100FBCF88 /* 3.pdf */; }; - C340C11119C082B300431A7D /* 4.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FF1876A63100FBCF88 /* 4.pdf */; }; - C340C11219C082B300431A7D /* 5.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453001876A63100FBCF88 /* 5.pdf */; }; - C340C11319C082B300431A7D /* 6.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453011876A63100FBCF88 /* 6.pdf */; }; - C340C11419C082B300431A7D /* 7.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453021876A63100FBCF88 /* 7.pdf */; }; - C340C11519C082B300431A7D /* 8.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453031876A63100FBCF88 /* 8.pdf */; }; - C340C11619C082B300431A7D /* 9.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453041876A63100FBCF88 /* 9.pdf */; }; - C340C11719C082B300431A7D /* 10.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453051876A63100FBCF88 /* 10.pdf */; }; - C340C11819C082B300431A7D /* 11.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453111876A63600FBCF88 /* 11.pdf */; }; - C340C11919C082C000431A7D /* extension1.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3261876FE3A007A9620 /* extension1.pdf */; }; - C340C11A19C082C200431A7D /* extension2.PDF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3271876FE3A007A9620 /* extension2.PDF */; }; - C340C11B19C082C300431A7D /* extension3.PdF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3281876FE3A007A9620 /* extension3.PdF */; }; - C340C11C19C082C600431A7D /* tint.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB330187700CD007A9620 /* tint.pdf */; }; - C340C11D19C082C900431A7D /* locale.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3191876F7ED007A9620 /* locale.pdf */; }; - C340C15119C0896900431A7D /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C340C15019C0896900431A7D /* LaunchScreen.xib */; }; - C340C18419C0940C00431A7D /* PDFImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C340C0D819C07FB000431A7D /* PDFImage.framework */; }; + C32453161876CCE400FBCF88 /* 11.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453111876A63600FBCF88 /* 11.pdf */; }; + C32453171876CDA000FBCF88 /* 0.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FB1876A63100FBCF88 /* 0.pdf */; }; + C32453181876CF8F00FBCF88 /* 1.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FC1876A63100FBCF88 /* 1.pdf */; }; + C32453191876CF8F00FBCF88 /* 2.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FD1876A63100FBCF88 /* 2.pdf */; }; + C324531A1876CF8F00FBCF88 /* 3.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FE1876A63100FBCF88 /* 3.pdf */; }; + C324531B1876CF8F00FBCF88 /* 4.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32452FF1876A63100FBCF88 /* 4.pdf */; }; + C324531C1876CF8F00FBCF88 /* 5.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453001876A63100FBCF88 /* 5.pdf */; }; + C324531D1876CF8F00FBCF88 /* 6.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453011876A63100FBCF88 /* 6.pdf */; }; + C324531E1876CF8F00FBCF88 /* 7.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453021876A63100FBCF88 /* 7.pdf */; }; + C324531F1876CF8F00FBCF88 /* 8.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453031876A63100FBCF88 /* 8.pdf */; }; + C32453201876CF8F00FBCF88 /* 9.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453041876A63100FBCF88 /* 9.pdf */; }; + C32453211876CF8F00FBCF88 /* 10.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C32453051876A63100FBCF88 /* 10.pdf */; }; + C32453221876D4FF00FBCF88 /* PDFImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C32452D718769D4000FBCF88 /* PDFImage.framework */; }; C343B02E1893BB1B0048FE48 /* PDFBarButtonDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C343B02D1893BB1B0048FE48 /* PDFBarButtonDemoViewController.m */; }; + C343B0321893F7230048FE48 /* PDFBarButtonItem.h in Headers */ = {isa = PBXBuildFile; fileRef = C343B0301893F7230048FE48 /* PDFBarButtonItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C343B0331893F7230048FE48 /* PDFBarButtonItem.m in Sources */ = {isa = PBXBuildFile; fileRef = C343B0311893F7230048FE48 /* PDFBarButtonItem.m */; }; + C3995280187694E100221C8A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C399527F187694E100221C8A /* Foundation.framework */; }; + C39952A2187695CD00221C8A /* PDFImageViewLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = C399529A187695CD00221C8A /* PDFImageViewLayer.m */; }; + C39952A3187695CD00221C8A /* PDFImage.m in Sources */ = {isa = PBXBuildFile; fileRef = C399529B187695CD00221C8A /* PDFImage.m */; }; + C39952A4187695CD00221C8A /* PDFImageOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = C399529C187695CD00221C8A /* PDFImageOptions.m */; }; + C39952A5187695CD00221C8A /* PDFImageOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C399529D187695CD00221C8A /* PDFImageOptions.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C39952A6187695CD00221C8A /* PDFImageViewLayer.h in Headers */ = {isa = PBXBuildFile; fileRef = C399529E187695CD00221C8A /* PDFImageViewLayer.h */; }; + C39952A7187695CD00221C8A /* PDFImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = C399529F187695CD00221C8A /* PDFImageView.m */; }; + C39952A8187695CD00221C8A /* PDFImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = C39952A0187695CD00221C8A /* PDFImageView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C39952A9187695CD00221C8A /* PDFImage.h in Headers */ = {isa = PBXBuildFile; fileRef = C39952A1187695CD00221C8A /* PDFImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; C3AED87C18769B430035F18E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C399527F187694E100221C8A /* Foundation.framework */; }; C3AED87E18769B430035F18E /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3AED87D18769B430035F18E /* CoreGraphics.framework */; }; C3AED88018769B430035F18E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3AED87F18769B430035F18E /* UIKit.framework */; }; C3AED88618769B430035F18E /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C3AED88418769B430035F18E /* InfoPlist.strings */; }; C3AED88818769B430035F18E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C3AED88718769B430035F18E /* main.m */; }; C3AED88E18769B430035F18E /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3AED88D18769B430035F18E /* Images.xcassets */; }; + C3AED89518769B430035F18E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3AED89418769B430035F18E /* XCTest.framework */; }; + C3AED89618769B430035F18E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C399527F187694E100221C8A /* Foundation.framework */; }; + C3AED89718769B430035F18E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3AED87F18769B430035F18E /* UIKit.framework */; }; + C3AED8A118769B430035F18E /* PDFImageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C3AED8A018769B430035F18E /* PDFImageTests.m */; }; C3CBB31B1876F7ED007A9620 /* locale.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3191876F7ED007A9620 /* locale.pdf */; }; C3CBB31F1876F822007A9620 /* PDFLocalizedDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C3CBB31E1876F822007A9620 /* PDFLocalizedDemoViewController.m */; }; C3CBB3291876FE3A007A9620 /* extension1.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3261876FE3A007A9620 /* extension1.pdf */; }; C3CBB32A1876FE3A007A9620 /* extension2.PDF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3271876FE3A007A9620 /* extension2.PDF */; }; C3CBB32B1876FE3A007A9620 /* extension3.PdF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3281876FE3A007A9620 /* extension3.PdF */; }; + C3CBB32C1876FE4A007A9620 /* locale.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3191876F7ED007A9620 /* locale.pdf */; }; + C3CBB32D1876FE4F007A9620 /* extension1.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3261876FE3A007A9620 /* extension1.pdf */; }; + C3CBB32E1876FE4F007A9620 /* extension2.PDF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3271876FE3A007A9620 /* extension2.PDF */; }; + C3CBB32F1876FE4F007A9620 /* extension3.PdF in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB3281876FE3A007A9620 /* extension3.PdF */; }; C3CBB331187700CD007A9620 /* tint.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB330187700CD007A9620 /* tint.pdf */; }; + C3CBB332187700CD007A9620 /* tint.pdf in Resources */ = {isa = PBXBuildFile; fileRef = C3CBB330187700CD007A9620 /* tint.pdf */; }; C3CBB3391877011B007A9620 /* PDFTintColorDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C3CBB3381877011B007A9620 /* PDFTintColorDemoViewController.m */; }; - C3CF6EC419C0968A007B9E7A /* PDFImage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C340C0D819C07FB000431A7D /* PDFImage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - C3CF6F0519C099C0007B9E7A /* PDFImage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C340C0D819C07FB000431A7D /* PDFImage.framework */; }; + C3CBB33A1877011B007A9620 /* PDFTintColorDemoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C3CBB3381877011B007A9620 /* PDFTintColorDemoViewController.m */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - C340C0E319C07FB000431A7D /* PBXContainerItemProxy */ = { + C32452D518769BDA00FBCF88 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = C3995270187694E100221C8A /* Project object */; proxyType = 1; - remoteGlobalIDString = C3AED87A18769B430035F18E; - remoteInfo = PDFImageDemo; - }; - C340C0EA19C07FB000431A7D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C3995270187694E100221C8A /* Project object */; - proxyType = 1; - remoteGlobalIDString = C340C0D719C07FB000431A7D; - remoteInfo = PDFImage; - }; - C340C0EE19C07FB000431A7D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C3995270187694E100221C8A /* Project object */; - proxyType = 1; - remoteGlobalIDString = C340C0D719C07FB000431A7D; + remoteGlobalIDString = C399527B187694E100221C8A; remoteInfo = PDFImage; }; - C3CF6F0019C09978007B9E7A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C3995270187694E100221C8A /* Project object */; - proxyType = 1; - remoteGlobalIDString = C3AED87A18769B430035F18E; - remoteInfo = PDFImageDemo; - }; - C3CF6F0319C099A9007B9E7A /* PBXContainerItemProxy */ = { + C3AED89818769B430035F18E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = C3995270187694E100221C8A /* Project object */; proxyType = 1; @@ -112,21 +94,8 @@ }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - C340C0F519C07FB000431A7D /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 12; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - C3CF6EC419C0968A007B9E7A /* PDFImage.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ + C32452D718769D4000FBCF88 /* PDFImage.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PDFImage.framework; path = "../../Library/Developer/Xcode/DerivedData/PDFImage-dsswrlcyowqtxbasgqxvmkeoojqz/Build/Products/Debug-iphoneos/PDFImage.framework"; sourceTree = ""; }; C32452DA18769F2E00FBCF88 /* PDFAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFAppDelegate.h; sourceTree = ""; }; C32452DB18769F2E00FBCF88 /* PDFAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFAppDelegate.m; sourceTree = ""; }; C32452E91876A29900FBCF88 /* PDFNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFNavigationController.h; sourceTree = ""; }; @@ -153,26 +122,24 @@ C32453111876A63600FBCF88 /* 11.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = 11.pdf; sourceTree = ""; }; C32453131876A9E200FBCF88 /* PDFAnimationDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFAnimationDemoViewController.h; sourceTree = ""; }; C32453141876A9E200FBCF88 /* PDFAnimationDemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFAnimationDemoViewController.m; sourceTree = ""; }; - C340C0D819C07FB000431A7D /* PDFImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PDFImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C340C0DB19C07FB000431A7D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C340C0E219C07FB000431A7D /* PDFImageTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PDFImageTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - C340C0E719C07FB000431A7D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C340C0E819C07FB000431A7D /* PDFImageTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PDFImageTests.m; sourceTree = ""; }; - C340C0F719C0802E00431A7D /* Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; - C340C0F919C0805800431A7D /* PDFBarButtonItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFBarButtonItem.h; sourceTree = ""; }; - C340C0FA19C0805800431A7D /* PDFBarButtonItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFBarButtonItem.m; sourceTree = ""; }; - C340C0FB19C0805800431A7D /* PDFImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImage.h; sourceTree = ""; }; - C340C0FC19C0805800431A7D /* PDFImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImage.m; sourceTree = ""; }; - C340C0FD19C0805800431A7D /* PDFImageOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageOptions.h; sourceTree = ""; }; - C340C0FE19C0805800431A7D /* PDFImageOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageOptions.m; sourceTree = ""; }; - C340C0FF19C0805800431A7D /* PDFImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageView.h; sourceTree = ""; }; - C340C10019C0805800431A7D /* PDFImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageView.m; sourceTree = ""; }; - C340C10119C0805800431A7D /* PDFImageViewLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageViewLayer.h; sourceTree = ""; }; - C340C10219C0805800431A7D /* PDFImageViewLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageViewLayer.m; sourceTree = ""; }; - C340C15019C0896900431A7D /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = ""; }; C343B02C1893BB1B0048FE48 /* PDFBarButtonDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFBarButtonDemoViewController.h; sourceTree = ""; }; C343B02D1893BB1B0048FE48 /* PDFBarButtonDemoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFBarButtonDemoViewController.m; sourceTree = ""; }; + C343B0301893F7230048FE48 /* PDFBarButtonItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFBarButtonItem.h; sourceTree = ""; }; + C343B0311893F7230048FE48 /* PDFBarButtonItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFBarButtonItem.m; sourceTree = ""; }; + C35CFB4D1BB0320F00A30AB9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C35CFB4E1BB033D500A30AB9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C35CFB501BB0384E00A30AB9 /* StaticFramework.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = StaticFramework.xcconfig; sourceTree = ""; }; + C399527C187694E100221C8A /* PDFImage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework.static; includeInIndex = 0; path = PDFImage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C399527F187694E100221C8A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + C399529A187695CD00221C8A /* PDFImageViewLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageViewLayer.m; sourceTree = ""; }; + C399529B187695CD00221C8A /* PDFImage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImage.m; sourceTree = ""; }; + C399529C187695CD00221C8A /* PDFImageOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageOptions.m; sourceTree = ""; }; + C399529D187695CD00221C8A /* PDFImageOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageOptions.h; sourceTree = ""; }; + C399529E187695CD00221C8A /* PDFImageViewLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageViewLayer.h; sourceTree = ""; }; + C399529F187695CD00221C8A /* PDFImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PDFImageView.m; sourceTree = ""; }; + C39952A0187695CD00221C8A /* PDFImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImageView.h; sourceTree = ""; }; + C39952A1187695CD00221C8A /* PDFImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFImage.h; sourceTree = ""; }; + C39952AA187695FB00221C8A /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; C3AED87B18769B430035F18E /* PDFImageDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PDFImageDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; C3AED87D18769B430035F18E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; C3AED87F18769B430035F18E /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; @@ -180,7 +147,9 @@ C3AED88518769B430035F18E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; C3AED88718769B430035F18E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; C3AED88D18769B430035F18E /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + C3AED89318769B430035F18E /* PDFImageTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PDFImageTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C3AED89418769B430035F18E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + C3AED8A018769B430035F18E /* PDFImageTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PDFImageTests.m; sourceTree = ""; }; C3CBB31A1876F7ED007A9620 /* es */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = es; path = es.lproj/locale.pdf; sourceTree = ""; }; C3CBB31C1876F802007A9620 /* en */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = en; path = en.lproj/locale.pdf; sourceTree = ""; }; C3CBB31D1876F822007A9620 /* PDFLocalizedDemoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PDFLocalizedDemoViewController.h; sourceTree = ""; }; @@ -194,29 +163,33 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - C340C0D419C07FB000431A7D /* Frameworks */ = { + C3995276187694E100221C8A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + C3995280187694E100221C8A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C340C0DF19C07FB000431A7D /* Frameworks */ = { + C3AED87818769B430035F18E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3CF6F0519C099C0007B9E7A /* PDFImage.framework in Frameworks */, + C3AED87E18769B430035F18E /* CoreGraphics.framework in Frameworks */, + C3AED88018769B430035F18E /* UIKit.framework in Frameworks */, + C3AED87C18769B430035F18E /* Foundation.framework in Frameworks */, + C32452D818769D4000FBCF88 /* PDFImage.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - C3AED87818769B430035F18E /* Frameworks */ = { + C3AED89018769B430035F18E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C3AED87E18769B430035F18E /* CoreGraphics.framework in Frameworks */, - C3AED88018769B430035F18E /* UIKit.framework in Frameworks */, - C3AED87C18769B430035F18E /* Foundation.framework in Frameworks */, - C340C18419C0940C00431A7D /* PDFImage.framework in Frameworks */, + C3AED89518769B430035F18E /* XCTest.framework in Frameworks */, + C3AED89718769B430035F18E /* UIKit.framework in Frameworks */, + C3AED89618769B430035F18E /* Foundation.framework in Frameworks */, + C32453221876D4FF00FBCF88 /* PDFImage.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -314,56 +287,12 @@ path = PDFs; sourceTree = ""; }; - C340C0D919C07FB000431A7D /* PDFImage */ = { - isa = PBXGroup; - children = ( - C340C0FB19C0805800431A7D /* PDFImage.h */, - C340C0FC19C0805800431A7D /* PDFImage.m */, - C340C0FF19C0805800431A7D /* PDFImageView.h */, - C340C10019C0805800431A7D /* PDFImageView.m */, - C340C0FD19C0805800431A7D /* PDFImageOptions.h */, - C340C0FE19C0805800431A7D /* PDFImageOptions.m */, - C340C0F919C0805800431A7D /* PDFBarButtonItem.h */, - C340C0FA19C0805800431A7D /* PDFBarButtonItem.m */, - C340C10119C0805800431A7D /* PDFImageViewLayer.h */, - C340C10219C0805800431A7D /* PDFImageViewLayer.m */, - C340C0DA19C07FB000431A7D /* Supporting Files */, - ); - path = PDFImage; - sourceTree = ""; - }; - C340C0DA19C07FB000431A7D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - C340C0DB19C07FB000431A7D /* Info.plist */, - C340C0F719C0802E00431A7D /* Release.xcconfig */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - C340C0E519C07FB000431A7D /* PDFImageTests */ = { - isa = PBXGroup; - children = ( - C340C0E819C07FB000431A7D /* PDFImageTests.m */, - C340C0E619C07FB000431A7D /* Supporting Files */, - ); - path = PDFImageTests; - sourceTree = ""; - }; - C340C0E619C07FB000431A7D /* Supporting Files */ = { - isa = PBXGroup; - children = ( - C340C0E719C07FB000431A7D /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; C399526F187694E100221C8A = { isa = PBXGroup; children = ( C3AED88118769B430035F18E /* PDFImageDemo */, - C340C0D919C07FB000431A7D /* PDFImage */, - C340C0E519C07FB000431A7D /* PDFImageTests */, + C3AED89A18769B430035F18E /* PDFImageTests */, + C3995281187694E100221C8A /* PDFImage */, C399527E187694E100221C8A /* Frameworks */, C399527D187694E100221C8A /* Products */, ); @@ -372,9 +301,9 @@ C399527D187694E100221C8A /* Products */ = { isa = PBXGroup; children = ( + C399527C187694E100221C8A /* PDFImage.framework */, C3AED87B18769B430035F18E /* PDFImageDemo.app */, - C340C0D819C07FB000431A7D /* PDFImage.framework */, - C340C0E219C07FB000431A7D /* PDFImageTests.xctest */, + C3AED89318769B430035F18E /* PDFImageTests.xctest */, ); name = Products; sourceTree = ""; @@ -382,6 +311,7 @@ C399527E187694E100221C8A /* Frameworks */ = { isa = PBXGroup; children = ( + C32452D718769D4000FBCF88 /* PDFImage.framework */, C399527F187694E100221C8A /* Foundation.framework */, C3AED87D18769B430035F18E /* CoreGraphics.framework */, C3AED87F18769B430035F18E /* UIKit.framework */, @@ -390,6 +320,34 @@ name = Frameworks; sourceTree = ""; }; + C3995281187694E100221C8A /* PDFImage */ = { + isa = PBXGroup; + children = ( + C39952A1187695CD00221C8A /* PDFImage.h */, + C399529B187695CD00221C8A /* PDFImage.m */, + C39952A0187695CD00221C8A /* PDFImageView.h */, + C399529F187695CD00221C8A /* PDFImageView.m */, + C399529D187695CD00221C8A /* PDFImageOptions.h */, + C399529C187695CD00221C8A /* PDFImageOptions.m */, + C343B0301893F7230048FE48 /* PDFBarButtonItem.h */, + C343B0311893F7230048FE48 /* PDFBarButtonItem.m */, + C399529E187695CD00221C8A /* PDFImageViewLayer.h */, + C399529A187695CD00221C8A /* PDFImageViewLayer.m */, + C3995282187694E100221C8A /* Supporting Files */, + ); + path = PDFImage; + sourceTree = ""; + }; + C3995282187694E100221C8A /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C35CFB4D1BB0320F00A30AB9 /* Info.plist */, + C39952AA187695FB00221C8A /* Release.xcconfig */, + C35CFB501BB0384E00A30AB9 /* StaticFramework.xcconfig */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; C3AED88118769B430035F18E /* PDFImageDemo */ = { isa = PBXGroup; children = ( @@ -407,7 +365,23 @@ C3AED88318769B430035F18E /* PDFImageDemo-Info.plist */, C3AED88418769B430035F18E /* InfoPlist.strings */, C3AED88718769B430035F18E /* main.m */, - C340C15019C0896900431A7D /* LaunchScreen.xib */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + C3AED89A18769B430035F18E /* PDFImageTests */ = { + isa = PBXGroup; + children = ( + C3AED8A018769B430035F18E /* PDFImageTests.m */, + C3AED89B18769B430035F18E /* Supporting Files */, + ); + path = PDFImageTests; + sourceTree = ""; + }; + C3AED89B18769B430035F18E /* Supporting Files */ = { + isa = PBXGroup; + children = ( + C35CFB4E1BB033D500A30AB9 /* Info.plist */, ); name = "Supporting Files"; sourceTree = ""; @@ -415,29 +389,30 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - C340C0D519C07FB000431A7D /* Headers */ = { + C3995277187694E100221C8A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C340C10919C0805800431A7D /* PDFImageView.h in Headers */, - C340C10719C0805800431A7D /* PDFImageOptions.h in Headers */, - C340C10B19C0805800431A7D /* PDFImageViewLayer.h in Headers */, - C340C10319C0805800431A7D /* PDFBarButtonItem.h in Headers */, - C340C10519C0805800431A7D /* PDFImage.h in Headers */, + C39952A6187695CD00221C8A /* PDFImageViewLayer.h in Headers */, + C343B0321893F7230048FE48 /* PDFBarButtonItem.h in Headers */, + C39952A9187695CD00221C8A /* PDFImage.h in Headers */, + C39952A8187695CD00221C8A /* PDFImageView.h in Headers */, + C39952A5187695CD00221C8A /* PDFImageOptions.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - C340C0D719C07FB000431A7D /* PDFImage */ = { + C399527B187694E100221C8A /* PDFImage */ = { isa = PBXNativeTarget; - buildConfigurationList = C340C0F419C07FB000431A7D /* Build configuration list for PBXNativeTarget "PDFImage" */; + buildConfigurationList = C399528A187694E100221C8A /* Build configuration list for PBXNativeTarget "PDFImage" */; buildPhases = ( - C340C0D319C07FB000431A7D /* Sources */, - C340C0D419C07FB000431A7D /* Frameworks */, - C340C0D519C07FB000431A7D /* Headers */, - C340C0D619C07FB000431A7D /* Resources */, + C3995275187694E100221C8A /* Sources */, + C3995276187694E100221C8A /* Frameworks */, + C3995277187694E100221C8A /* Headers */, + C3995278187694E100221C8A /* Resources */, + C35CFB4F1BB037D300A30AB9 /* ShellScript */, ); buildRules = ( ); @@ -445,28 +420,8 @@ ); name = PDFImage; productName = PDFImage; - productReference = C340C0D819C07FB000431A7D /* PDFImage.framework */; - productType = "com.apple.product-type.framework"; - }; - C340C0E119C07FB000431A7D /* PDFImageTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C340C0F619C07FB000431A7D /* Build configuration list for PBXNativeTarget "PDFImageTests" */; - buildPhases = ( - C340C0DE19C07FB000431A7D /* Sources */, - C340C0DF19C07FB000431A7D /* Frameworks */, - C340C0E019C07FB000431A7D /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - C340C0E419C07FB000431A7D /* PBXTargetDependency */, - C3CF6F0119C09978007B9E7A /* PBXTargetDependency */, - C3CF6F0419C099A9007B9E7A /* PBXTargetDependency */, - ); - name = PDFImageTests; - productName = PDFImageTests; - productReference = C340C0E219C07FB000431A7D /* PDFImageTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; + productReference = C399527C187694E100221C8A /* PDFImage.framework */; + productType = "com.apple.product-type.framework.static"; }; C3AED87A18769B430035F18E /* PDFImageDemo */ = { isa = PBXNativeTarget; @@ -475,19 +430,35 @@ C3AED87718769B430035F18E /* Sources */, C3AED87818769B430035F18E /* Frameworks */, C3AED87918769B430035F18E /* Resources */, - C340C0F519C07FB000431A7D /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( - C340C0EB19C07FB000431A7D /* PBXTargetDependency */, - C340C0EF19C07FB000431A7D /* PBXTargetDependency */, + C32452D618769BDA00FBCF88 /* PBXTargetDependency */, ); name = PDFImageDemo; productName = PDFImageDemo; productReference = C3AED87B18769B430035F18E /* PDFImageDemo.app */; productType = "com.apple.product-type.application"; }; + C3AED89218769B430035F18E /* PDFImageTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = C3AED8A718769B430035F18E /* Build configuration list for PBXNativeTarget "PDFImageTests" */; + buildPhases = ( + C3AED88F18769B430035F18E /* Sources */, + C3AED89018769B430035F18E /* Frameworks */, + C3AED89118769B430035F18E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + C3AED89918769B430035F18E /* PBXTargetDependency */, + ); + name = PDFImageTests; + productName = PDFImageTests; + productReference = C3AED89318769B430035F18E /* PDFImageTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -495,14 +466,10 @@ isa = PBXProject; attributes = { CLASSPREFIX = PDF; - LastUpgradeCheck = 0510; + LastUpgradeCheck = 0700; ORGANIZATIONNAME = "Tom Parry"; TargetAttributes = { - C340C0D719C07FB000431A7D = { - CreatedOnToolsVersion = 6.0; - }; - C340C0E119C07FB000431A7D = { - CreatedOnToolsVersion = 6.0; + C3AED89218769B430035F18E = { TestTargetID = C3AED87A18769B430035F18E; }; }; @@ -521,49 +488,24 @@ projectRoot = ""; targets = ( C3AED87A18769B430035F18E /* PDFImageDemo */, - C340C0D719C07FB000431A7D /* PDFImage */, - C340C0E119C07FB000431A7D /* PDFImageTests */, + C3AED89218769B430035F18E /* PDFImageTests */, + C399527B187694E100221C8A /* PDFImage */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - C340C0D619C07FB000431A7D /* Resources */ = { + C3995278187694E100221C8A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - C340C0E019C07FB000431A7D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C340C11719C082B300431A7D /* 10.pdf in Resources */, - C340C11619C082B300431A7D /* 9.pdf in Resources */, - C340C11219C082B300431A7D /* 5.pdf in Resources */, - C340C11119C082B300431A7D /* 4.pdf in Resources */, - C340C11819C082B300431A7D /* 11.pdf in Resources */, - C340C11019C082B300431A7D /* 3.pdf in Resources */, - C340C10F19C082B300431A7D /* 2.pdf in Resources */, - C340C11419C082B300431A7D /* 7.pdf in Resources */, - C340C11319C082B300431A7D /* 6.pdf in Resources */, - C340C11519C082B300431A7D /* 8.pdf in Resources */, - C340C11B19C082C300431A7D /* extension3.PdF in Resources */, - C340C10E19C082B300431A7D /* 1.pdf in Resources */, - C340C11A19C082C200431A7D /* extension2.PDF in Resources */, - C340C11D19C082C900431A7D /* locale.pdf in Resources */, - C340C11919C082C000431A7D /* extension1.pdf in Resources */, - C340C10D19C082AC00431A7D /* 0.pdf in Resources */, - C340C11C19C082C600431A7D /* tint.pdf in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; C3AED87918769B430035F18E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - C340C15119C0896900431A7D /* LaunchScreen.xib in Resources */, C32453101876A63100FBCF88 /* 10.pdf in Resources */, C324530E1876A63100FBCF88 /* 8.pdf in Resources */, C32453091876A63100FBCF88 /* 3.pdf in Resources */, @@ -586,26 +528,58 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C3AED89118769B430035F18E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C32453211876CF8F00FBCF88 /* 10.pdf in Resources */, + C324531F1876CF8F00FBCF88 /* 8.pdf in Resources */, + C324531A1876CF8F00FBCF88 /* 3.pdf in Resources */, + C32453171876CDA000FBCF88 /* 0.pdf in Resources */, + C324531C1876CF8F00FBCF88 /* 5.pdf in Resources */, + C3CBB32E1876FE4F007A9620 /* extension2.PDF in Resources */, + C3CBB32D1876FE4F007A9620 /* extension1.pdf in Resources */, + C324531D1876CF8F00FBCF88 /* 6.pdf in Resources */, + C324531E1876CF8F00FBCF88 /* 7.pdf in Resources */, + C3CBB32F1876FE4F007A9620 /* extension3.PdF in Resources */, + C32453201876CF8F00FBCF88 /* 9.pdf in Resources */, + C3CBB32C1876FE4A007A9620 /* locale.pdf in Resources */, + C32453161876CCE400FBCF88 /* 11.pdf in Resources */, + C32453181876CF8F00FBCF88 /* 1.pdf in Resources */, + C324531B1876CF8F00FBCF88 /* 4.pdf in Resources */, + C32453191876CF8F00FBCF88 /* 2.pdf in Resources */, + C3CBB332187700CD007A9620 /* tint.pdf in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ -/* Begin PBXSourcesBuildPhase section */ - C340C0D319C07FB000431A7D /* Sources */ = { - isa = PBXSourcesBuildPhase; +/* Begin PBXShellScriptBuildPhase section */ + C35CFB4F1BB037D300A30AB9 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - C340C10819C0805800431A7D /* PDFImageOptions.m in Sources */, - C340C10A19C0805800431A7D /* PDFImageView.m in Sources */, - C340C10C19C0805800431A7D /* PDFImageViewLayer.m in Sources */, - C340C10619C0805800431A7D /* PDFImage.m in Sources */, - C340C10419C0805800431A7D /* PDFBarButtonItem.m in Sources */, + ); + inputPaths = ( + ); + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /usr/bin/python; + shellScript = "# TAG: BUILD SCRIPT (do not remove this comment)\n# Build script generated using https://github.com/kstenerud/iOS-Universal-Framework Mk 8 (beta 2012-06-16)\nimport logging\n\n\n##############################################################################\n#\n# Configuration\n#\n##############################################################################\n\n# Select which kind of framework to build.\n#\n# Note: Due to issues with Xcode's build process, if you select\n# 'embeddedframework', it will still show the regular framework\n# (as a symlink) along side of the embedded framework. Be sure to\n# instruct your users to copy/move the embedded framework in this case!\n#\n# If your framework contains resources such as images, nibs, momds, plists,\n# zipfiles and such, choose 'embeddedframework'.\n#\n# If your framework contains no resources, choose 'framework'.\n#\nconfig_framework_type = 'framework'\n#config_framework_type = 'embeddedframework'\n\n# Open the build directory in Finder when the universal framework is\n# successfully built.\n#\n# This value can be overridden by setting the UFW_OPEN_BUILD_DIR env variable\n# to True or False.\n#\n# Recommended setting: True\n#\nconfig_open_build_dir = True\n\n# If true, ensures that all public headers are stored in the framework under\n# the same directory hierarchy as they were in the source tree.\n#\n# Xcode by default places all headers at the same top level, but every other\n# build tool in the known universe preserves directory structure. For simple\n# libraries it doesn't really matter much, but for ports of existing software\n# packages or for bigger libraries, it makes sense to have more structure.\n#\n# The default is set to \"False\" since that's what most Xcode users are used to.\n#\n# Recommended setting: True for deep hierarchy projects, False otherwise.\n#\nconfig_deep_header_hierarchy = False\n\n# Specify where the top of the public header hierarchy is. This path is\n# relative to the project's dir (PROJECT_DIR). You can reference environment\n# variables using templating syntax (e.g. \"${TARGET_NAME}/Some/Subdir\")\n#\n# NOTE: Only used if config_deep_header_hierarchy is True.\n#\n# If this is set to None, the script will attempt to figure out for itself\n# where the top of the header hierarchy is by looking for common path prefixes\n# in the public header files. This process can fail if:\n# - You only have one public header file.\n# - Your source header files don't all have a common root.\n#\n# A common approach is to use \"${TARGET_NAME}\", working under the assumption\n# that all of your header files share the common root of a directory under\n# your project with the same name as your target (which is the Xcode default).\n#\n# Recommended setting: \"${TARGET_NAME}\"\n#\nconfig_deep_header_top = \"${TARGET_NAME}\"\n\n# Warn when \"DerivedData\" is detected in any of the header, library, or\n# framework search paths. In almost all cases, references to directories under\n# DerivedData are added as a result of an Xcode bug and must be manually\n# removed.\n#\n# Recommended setting: True\n#\nconfig_warn_derived_data = True\n\n# Warn if no headers were marked public in this framework.\n#\n# Recommended setting: True\n#\nconfig_warn_no_public_headers = True\n\n# Cause the build to fail if any warnings are issued.\n#\n# Recommended setting: True\n#\nconfig_fail_on_warnings = True\n\n# Minimum log level\n#\n# Recommended setting: logging.INFO\n#\nconfig_log_level = logging.INFO\n\n\n##############################################################################\n#\n# Don't touch anything below here unless you know what you're doing.\n#\n##############################################################################\n\nimport collections\nimport json\nimport os\nimport re\nimport shlex\nimport shutil\nimport string\nimport subprocess\nimport sys\nimport time\nimport traceback\n\n\n##############################################################################\n#\n# Globals\n#\n##############################################################################\n\nlog = logging.getLogger('UFW')\n\nissued_warnings = False\n\n\n##############################################################################\n#\n# Classes\n#\n##############################################################################\n\n# Allows the slave build to communicate with the master build.\n#\nclass BuildState:\n\n def __init__(self):\n self.reload()\n\n def reset(self):\n self.slave_platform = None\n self.slave_architectures = []\n self.slave_linked_archive_paths = []\n self.slave_built_fw_path = None\n self.slave_built_embedded_fw_path = None\n\n def set_slave_properties(self, architectures,\n linked_archive_paths,\n built_fw_path,\n built_embedded_fw_path):\n self.slave_platform = os.environ['PLATFORM_NAME']\n self.slave_architectures = architectures\n self.slave_linked_archive_paths = linked_archive_paths\n self.slave_built_fw_path = built_fw_path\n self.slave_built_embedded_fw_path = built_embedded_fw_path\n\n def get_save_path(self):\n return os.path.join(os.environ['PROJECT_TEMP_DIR'], \"ufw_build_state.json\")\n\n def persist(self):\n filename = self.get_save_path()\n parent = os.path.dirname(filename)\n if not os.path.isdir(parent):\n os.makedirs(parent)\n with open(filename, \"w\") as f:\n f.write(json.dumps(self.__dict__))\n\n def reload(self):\n self.reset()\n filename = self.get_save_path()\n if os.path.exists(filename):\n with open(filename, \"r\") as f:\n new_dict = json.loads(f.read())\n if new_dict is not None:\n self.__dict__ = dict(self.__dict__.items() + new_dict.items())\n\n\n# Holds information about the current project and build environment.\n#\nclass Project:\n\n def __init__(self, filename):\n sourcecode_types = ['sourcecode.c.c',\n 'sourcecode.c.objc',\n 'sourcecode.cpp.cpp',\n 'sourcecode.cpp.objcpp',\n 'sourcecode.asm.asm',\n 'sourcecode.asm.llvm',\n 'sourcecode.nasm']\n\n self.build_state = BuildState()\n self.project_data = self.load_from_file(filename)\n self.target = filter(lambda x: x['name'] == os.environ['TARGET_NAME'], self.project_data['targets'])[0]\n self.public_headers = self.get_build_phase_files('PBXHeadersBuildPhase', lambda x: x.get('settings', False) and x['settings'].get('ATTRIBUTES', False) and 'Public' in x['settings']['ATTRIBUTES'])\n self.static_libraries = self.get_build_phase_files('PBXFrameworksBuildPhase', lambda x: x['fileRef']['fileType'] == 'archive.ar' and x['fileRef']['sourceTree'] not in ['DEVELOPER_DIR', 'SDKROOT'])\n self.static_frameworks = self.get_build_phase_files('PBXFrameworksBuildPhase', lambda x: x['fileRef']['fileType'] == 'wrapper.framework' and x['fileRef']['sourceTree'] not in ['DEVELOPER_DIR', 'SDKROOT'])\n self.compilable_sources = self.get_build_phase_files('PBXSourcesBuildPhase', lambda x: x['fileRef']['fileType'] in sourcecode_types)\n self.header_paths = [os.path.join(*x['pathComponents']) for x in self.public_headers]\n\n self.headers_dir = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['CONTENTS_FOLDER_PATH'], 'Headers')\n self.libtool_path = os.path.join(os.environ['DT_TOOLCHAIN_DIR'], 'usr', 'bin', 'libtool')\n self.project_filename = os.path.join(os.environ['PROJECT_FILE_PATH'], \"project.pbxproj\")\n self.local_exe_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])\n self.local_architectures = os.environ['ARCHS'].split(' ')\n self.local_built_fw_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['WRAPPER_NAME'])\n self.local_built_embedded_fw_path = os.path.splitext(self.local_built_fw_path)[0] + \".embeddedframework\"\n self.local_linked_archive_paths = [self.get_linked_ufw_archive_path(arch) for arch in self.local_architectures]\n self.local_platform = os.environ['PLATFORM_NAME']\n other_platforms = os.environ['SUPPORTED_PLATFORMS'].split(' ')\n other_platforms.remove(self.local_platform)\n self.other_platform = other_platforms[0]\n\n sdk_name = os.environ['SDK_NAME']\n if not sdk_name.startswith(self.local_platform):\n raise Exception(\"%s didn't start with %s\" % (sdk_name, self.local_platform))\n self.sdk_version = sdk_name[len(self.local_platform):]\n\n # Load an Xcode project file.\n #\n def load_from_file(self, filename):\n project_file = json.loads(subprocess.check_output([\"plutil\", \"-convert\", \"json\", \"-o\", \"-\", filename]))\n all_objects = project_file['objects']\n del project_file['objects']\n for obj in all_objects.values():\n self.fix_keys(obj)\n self.unpack_objects(self.build_dereference_list(all_objects, None, None, project_file))\n self.unpack_objects(self.build_dereference_list(all_objects, None, None, all_objects.values()))\n project_data = project_file['rootObject']\n self.build_full_paths(project_data, splitpath(os.environ['SOURCE_ROOT']))\n return project_data\n\n def is_key(self, obj): \n return isinstance(obj, basestring) and len(obj) == 24 and re.search('^[0-9a-fA-F]+$', obj) is not None\n \n def build_dereference_list(self, all_objects, parent, key, obj):\n deref_list = []\n if self.is_key(obj):\n dereferenced = all_objects.get(obj, obj)\n if dereferenced is not obj:\n deref_list.append((parent, key, obj, dereferenced))\n elif isinstance(obj, collections.Mapping):\n for k, v in obj.iteritems():\n deref_list += self.build_dereference_list(all_objects, obj, k, v)\n elif isinstance(obj, collections.Iterable) and not isinstance(obj, basestring):\n for item in obj:\n deref_list += self.build_dereference_list(all_objects, obj, None, item)\n return deref_list\n \n def unpack_objects(self, deref_list):\n for parent, key, orig, obj in deref_list:\n if key is None:\n parent.remove(orig)\n parent.append(obj)\n else:\n parent[key] = obj\n\n # Store the full path, separated into components, to a node inside the node\n # as \"pathComponents\". Also recurse into that node if it's a group.\n #\n def build_full_paths(self, node, base_path):\n # Some nodes are relative to a different source tree, specified as an\n # env variable.\n if node.get('sourceTree', '') != '':\n new_base_path = os.environ.get(node['sourceTree'], None)\n if new_base_path:\n base_path = splitpath(new_base_path)\n # Add the current node's path, if any.\n if node.get('path', False):\n base_path = base_path + splitpath(node['path'])\n node['pathComponents'] = base_path\n # Recurse if this is a group.\n if node['isa'] == 'PBXGroup':\n for child in node['children']:\n self.build_full_paths(child, base_path)\n elif node['isa'] == 'PBXProject':\n self.build_full_paths(node['mainGroup'], base_path)\n self.build_full_paths(node['productRefGroup'], base_path)\n for child in node['targets']:\n self.build_full_paths(child, base_path)\n projectRefs = node.get('projectReferences', None)\n if projectRefs is not None:\n for child in projectRefs[0].values():\n self.build_full_paths(child, base_path)\n\n # Fix up any inconvenient keys.\n #\n def fix_keys(self, obj):\n key_remappings = {'lastKnownFileType': 'fileType', 'explicitFileType': 'fileType'}\n for key in list(set(key_remappings.keys()) & set(obj.keys())):\n obj[key_remappings[key]] = obj[key]\n del obj[key]\n\n # Get the files from a build phase.\n #\n def get_build_phase_files(self, build_phase_name, filter_func):\n build_phase = filter(lambda x: x['isa'] == build_phase_name, self.target['buildPhases'])[0]\n build_files = filter(filter_func, build_phase['files'])\n return [x['fileRef'] for x in build_files]\n\n # Get the truncated paths of all headers that start with the specified\n # relative path. Paths are read and returned as fully separated lists.\n # e.g. ['Some', 'Path', 'To', 'A', 'Header'] with relative_path of\n # ['Some', 'Path'] gets truncated to ['To', 'A', 'Header']\n #\n def movable_headers_relative_to(self, relative_path):\n rel_path_length = len(relative_path)\n result = filter(lambda path: len(path) >= rel_path_length and\n path[:rel_path_length] == relative_path, self.header_paths)\n return [path[rel_path_length:] for path in result]\n\n # Get the full path to where a linkable archive (library or framework)\n # is supposed to be.\n #\n def get_linked_archive_path(self, architecture):\n return os.path.join(os.environ['OBJECT_FILE_DIR_%s' % os.environ['CURRENT_VARIANT']],\n architecture,\n os.environ['EXECUTABLE_NAME'])\n\n # Get the full path to our custom linked archive of the project.\n #\n def get_linked_ufw_archive_path(self, architecture):\n return self.get_linked_archive_path(architecture) + \".ufwbuild\"\n\n # Get the full path to the executable of an archive.\n #\n def get_exe_path(self, node):\n path = os.path.join(*node['pathComponents'])\n if node['fileType'] == 'wrapper.framework':\n # Frameworks are directories, so go one deeper\n path = os.path.join(path, os.path.splitext(node['pathComponents'][-1])[0])\n return path\n\n # Get the path to the directory containing the archive.\n #\n def get_containing_path(self, node):\n return os.path.join(*node['pathComponents'])\n \n def get_archive_search_paths(self):\n log.info(\"Search paths = %s\" % set([self.get_containing_path(fw) for fw in self.static_frameworks] + [self.get_containing_path(fw) for fw in self.static_libraries]))\n return set([self.get_containing_path(fw) for fw in self.static_frameworks] + [self.get_containing_path(fw) for fw in self.static_libraries])\n\n # Command to link all objects of a single architecture.\n #\n def get_single_arch_link_command(self, architecture):\n cmd = [self.libtool_path,\n \"-static\",\n \"-arch_only\", architecture,\n \"-syslibroot\", os.environ['SDKROOT'],\n \"-L%s\" % os.environ['TARGET_BUILD_DIR'],\n \"-filelist\", os.environ['LINK_FILE_LIST_%s_%s' % (os.environ['CURRENT_VARIANT'], architecture)]]\n if os.environ.get('OTHER_LDFLAGS', False):\n cmd += [os.environ['OTHER_LDFLAGS']]\n if os.environ.get('WARNING_LDFLAGS', False):\n cmd += [os.environ['WARNING_LDFLAGS']]\n# cmd += [\"-L%s\" % libpath for libpath in self.get_archive_search_paths()]\n cmd += [self.get_exe_path(fw) for fw in self.static_frameworks]\n cmd += [self.get_exe_path(lib) for lib in self.static_libraries]\n cmd += [\"-o\", self.get_linked_ufw_archive_path(architecture)]\n return cmd\n\n # Command to link all local architectures for the current configuration\n # into an archive. This reads all libraries + the UFW-built archives and\n # overwrites the final product.\n #\n def get_local_archs_link_command(self):\n cmd = [self.libtool_path,\n \"-static\"]\n cmd += self.local_linked_archive_paths\n cmd += [self.get_exe_path(fw) for fw in self.static_frameworks]\n cmd += [self.get_exe_path(lib) for lib in self.static_libraries]\n cmd += [\"-o\", os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])]\n return cmd\n\n # Command to link all architectures into a universal archive.\n # This reads all UFW-built archives and overwrites the final product.\n #\n def get_all_archs_link_command(self):\n cmd = [self.libtool_path,\n \"-static\"]\n cmd += self.local_linked_archive_paths + self.build_state.slave_linked_archive_paths\n cmd += [\"-o\", os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['EXECUTABLE_PATH'])]\n return cmd\n\n # Build up an environment for the slave process. This uses BUILD_ROOT\n # and TEMP_ROOT to convert all environment variables to values suitable\n # for the slave build environment so that xcodebuild doesn't try to build\n # in the project directory under \"build\".\n #\n def get_slave_environment(self):\n ignored = ['LD_MAP_FILE_PATH',\n 'HEADER_SEARCH_PATHS',\n 'LIBRARY_SEARCH_PATHS',\n 'FRAMEWORK_SEARCH_PATHS']\n build_root = os.environ['BUILD_ROOT']\n temp_root = os.environ['TEMP_ROOT']\n newenv = {}\n for key, value in os.environ.items():\n if key not in ignored and not key.startswith('LINK_FILE_LIST_') and not key.startswith('LD_DEPENDENCY_'):\n if build_root in value or temp_root in value:\n newenv[key] = value.replace(self.local_platform, self.other_platform)\n return newenv\n\n # Command to invoke xcodebuild on the slave platform.\n #\n def get_slave_project_build_command(self):\n cmd = [\"xcodebuild\",\n \"-project\",\n os.environ['PROJECT_FILE_PATH'],\n \"-target\",\n os.environ['TARGET_NAME'],\n \"-configuration\",\n os.environ['CONFIGURATION'],\n \"-sdk\",\n self.other_platform + self.sdk_version]\n cmd += [\"%s=%s\" % (key, value) for key, value in self.get_slave_environment().items()]\n cmd += [\"UFW_MASTER_PLATFORM=\" + os.environ['PLATFORM_NAME']]\n cmd += [os.environ['ACTION']]\n return cmd\n\n\n\n##############################################################################\n#\n# Utility Functions\n#\n##############################################################################\n\n# Split a path into a list of path components.\n#\ndef splitpath(path, maxdepth=20):\n (head, tail) = os.path.split(path)\n return splitpath(head, maxdepth - 1) + [tail] if maxdepth and head and head != path else [ head or tail ]\n\n# Remove all subdirectories under a path.\n#\ndef remove_subdirs(path, ignore_files):\n if os.path.exists(path):\n for filename in filter(lambda x: x not in ignore_files, os.listdir(path)):\n fullpath = os.path.join(path, filename)\n if os.path.isdir(fullpath):\n log.info(\"Remove %s\" % fullpath)\n shutil.rmtree(fullpath)\n\n# Make whatever parent paths are necessary for a path to exist.\n#\ndef ensure_path_exists(path):\n if not os.path.isdir(path):\n os.makedirs(path)\n\n# Make whatever parent paths are necessary for a path's parent to exist.\n#\ndef ensure_parent_exists(path):\n parent = os.path.dirname(path)\n if not os.path.isdir(parent):\n os.makedirs(parent)\n\n# Remove a file or dir if it exists.\n#\ndef remove_path(path):\n if os.path.exists(path):\n if os.path.isdir(path) and not os.path.islink(path):\n shutil.rmtree(path)\n else:\n os.remove(path)\n\n# Move a file or dir, replacing the destination if it exists.\n#\ndef move_file(src, dst):\n if src == dst or not os.path.isfile(src):\n return\n log.info(\"Move %s to %s\" % (src, dst))\n ensure_parent_exists(dst)\n remove_path(dst)\n shutil.move(src, dst)\n\n# Copy a file or dir, replacing the destination if it exists already.\n#\ndef copy_overwrite(src, dst):\n if src != dst:\n remove_path(dst)\n ensure_parent_exists(dst)\n shutil.copytree(src, dst, symlinks=True)\n\n# Attempt to symlink link_path -> link_to.\n# link_to must be a path relative to link_path's parent and must exist.\n# If link_path already exists, do nothing.\n#\ndef attempt_symlink(link_path, link_to):\n # Only allow linking to an existing file\n os.stat(os.path.abspath(os.path.join(link_path, \"..\", link_to)))\n\n # Only make the link if it hasn't already been made\n if not os.path.exists(link_path):\n log.info(\"Symlink %s -> %s\" % (link_path, link_to))\n os.symlink(link_to, link_path)\n\n# Takes the last entry in an array-based path and returns a normal path\n# relative to base_path.\n#\ndef top_level_file_path(base_path, path_list):\n return os.path.join(base_path, os.path.split(path_list[-1])[-1])\n\n# Takes all entries in an array-based path and returns a normal path\n# relative to base_path.\n#\ndef full_file_path(base_path, path_list):\n return os.path.join(*([base_path] + path_list))\n\n# Print a command before executing it.\n# Also print out all output from the command to STDOUT.\n#\ndef print_and_call(cmd):\n log.info(\"Cmd \" + \" \".join(cmd))\n p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n result = p.communicate()[0]\n if len(result) > 0:\n log.info(result)\n if p.returncode != 0:\n raise subprocess.CalledProcessError(p.returncode, cmd)\n\n# Special print-and-call command for the slave build that strips out\n# xcodebuild's spammy list of environment variables.\n#\ndef print_and_call_slave_build(cmd, other_platform):\n separator = '=== BUILD NATIVE TARGET '\n p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)\n result = p.communicate()[0].split(separator)\n if len(result) == 1:\n result = result[0]\n else:\n result = separator + result[1]\n log.info(\"Cmd \" + \" \".join(cmd) + \"\\n\" + result)\n if p.returncode != 0:\n raise subprocess.CalledProcessError(p.returncode, cmd)\n\n# Issue a warning and record that a warning has been issued.\n#\ndef issue_warning(msg, *args, **kwargs):\n global issued_warnings\n issued_warnings = True\n log.warn(msg, *args, **kwargs)\n\n\n\n##############################################################################\n#\n# Main Application\n#\n##############################################################################\n\n# Check if we are running as master.\n#\ndef is_master():\n return os.environ.get('UFW_MASTER_PLATFORM', os.environ['PLATFORM_NAME']) == os.environ['PLATFORM_NAME']\n\n# DerivedData should almost never appear in any framework, library, or header\n# search paths. However, Xcode will sometimes add them in, so we check to make\n# sure.\n#\ndef check_for_derived_data_in_search_paths(project):\n search_path_keys = [\"FRAMEWORK_SEARCH_PATHS\", \"LIBRARY_SEARCH_PATHS\", \"HEADER_SEARCH_PATHS\"]\n build_configs = project.target['buildConfigurationList']['buildConfigurations']\n build_settings = filter(lambda x: x['name'] == os.environ['CONFIGURATION'], build_configs)[0]['buildSettings']\n \n found_something = False\n for path_key in filter(lambda x: x in build_settings, search_path_keys):\n path = build_settings[path_key]\n if \"DerivedData\" in path:\n found_something = True\n log.warn(\"Derived data in %s\" % path)\n issue_warning(\"'%s' contains reference to 'DerivedData'.\" % path_key)\n if found_something:\n log.warn(\"Check your build settings and remove any entries that contain paths inside the DerivedData folder.\")\n log.warn(\"Otherwise you can disable this warning by changing 'config_warn_derived_data' in this script.\")\n\n# Link local architectures into their respective archives.\n#\ndef link_local_archs(project):\n for arch in project.local_architectures:\n print_and_call(project.get_single_arch_link_command(arch))\n\n# Link only the local architectures into the final product, not the slave\n# architectures. For iphoneos, this will be armv6, armv7. For simulator, this\n# will be i386.\n#\ndef link_combine_local_archs(project):\n print_and_call(project.get_local_archs_link_command())\n\n# Link all architectures into the final product.\n#\ndef link_combine_all_archs(project):\n print_and_call(project.get_all_archs_link_command())\n\n# Check if we should open the build directory after a successful build.\n#\ndef should_open_build_dir():\n env_setting = os.environ.get('UFW_OPEN_BUILD_DIR', None)\n if env_setting is not None:\n return env_setting\n\n return config_open_build_dir\n\n# Open the build dir in Finder.\n#\ndef open_build_dir():\n print_and_call(['open', os.environ['TARGET_BUILD_DIR']])\n\n# Check if the build was started by selecting \"Archive\" under \"Product\" in\n# Xcode.\n#\ndef is_archive_build():\n # ACTION is always 'build', but perhaps Apple will fix this someday?\n archive_build = os.environ['ACTION'] == 'archive'\n\n if not archive_build:\n # This can be passed in as an env variable when building from command line.\n archive_build = os.environ.get('UFW_ACTION', None) == 'archive'\n\n build_dir = splitpath(os.environ['BUILD_DIR'])\n if not archive_build:\n # This partial path is used when you select \"archive\" from within Xcode.\n archive_build = 'ArchiveIntermediates' in build_dir\n\n # It only counts as a full archive build if this target is being built into\n # its own build dir (not being built as a dependency of another target)\n if archive_build:\n archive_build = os.environ['TARGET_NAME'] in build_dir\n \n return archive_build\n\n# Xcode by default throws all public headers into the top level directory.\n# This function moves them to their expected deep hierarchy.\n#\ndef build_deep_header_hierarchy(project):\n header_path_top = config_deep_header_top\n if not header_path_top:\n header_path_top = os.path.commonprefix(project.header_paths)\n else:\n header_path_top = splitpath(header_path_top)\n\n built_headers_path = os.path.join(os.environ['TARGET_BUILD_DIR'], os.environ['PUBLIC_HEADERS_FOLDER_PATH'])\n movable_headers = project.movable_headers_relative_to(header_path_top)\n\n # Remove subdirs if they only contain files that have been rebuilt\n ignore_headers = filter(lambda x: not os.path.isfile(top_level_file_path(built_headers_path, x)), movable_headers)\n remove_subdirs(built_headers_path, [file[0] for file in ignore_headers])\n\n # Move rebuilt headers into their proper subdirs\n for header in movable_headers:\n move_file(top_level_file_path(built_headers_path, header), full_file_path(built_headers_path, header))\n\n# Add all symlinks needed to make a full framework structure:\n#\n# MyFramework.framework\n# |-- MyFramework -> Versions/Current/MyFramework\n# |-- Headers -> Versions/Current/Headers\n# |-- Resources -> Versions/Current/Resources\n# `-- Versions\n# |-- A\n# | |-- MyFramework\n# | |-- Headers\n# | | `-- MyFramework.h\n# | `-- Resources\n# | |-- Info.plist\n# | |-- MyViewController.nib\n# | `-- en.lproj\n# | `-- InfoPlist.strings\n# `-- Current -> A\n#\ndef add_symlinks_to_framework(project):\n base_dir = project.local_built_fw_path\n attempt_symlink(os.path.join(base_dir, \"Versions\", \"Current\"), os.environ['FRAMEWORK_VERSION'])\n if os.path.isdir(os.path.join(base_dir, \"Versions\", \"Current\", \"Headers\")):\n attempt_symlink(os.path.join(base_dir, \"Headers\"), os.path.join(\"Versions\", \"Current\", \"Headers\"))\n if os.path.isdir(os.path.join(base_dir, \"Versions\", \"Current\", \"Resources\")):\n attempt_symlink(os.path.join(base_dir, \"Resources\"), os.path.join(\"Versions\", \"Current\", \"Resources\"))\n attempt_symlink(os.path.join(base_dir, os.environ['EXECUTABLE_NAME']), os.path.join(\"Versions\", \"Current\", os.environ['EXECUTABLE_NAME']))\n\n# Build an embedded framework structure.\n# An embedded framework contains the actual framework, plus a \"Resources\"\n# directory containing symlinks to all resources found in the actual framework,\n# with the exception of \"Info.plist\" and anything ending in \".lproj\":\n#\n# MyFramework.embeddedframework\n# |-- MyFramework.framework\n# | |-- MyFramework -> Versions/Current/MyFramework\n# | |-- Headers -> Versions/Current/Headers\n# | |-- Resources -> Versions/Current/Resources\n# | `-- Versions\n# | |-- A\n# | | |-- MyFramework\n# | | |-- Headers\n# | | | `-- MyFramework.h\n# | | `-- Resources\n# | | |-- Info.plist\n# | | |-- MyViewController.nib\n# | | `-- en.lproj\n# | | `-- InfoPlist.strings\n# | `-- Current -> A\n# `-- Resources\n# `-- MyViewController.nib -> ../MyFramework.framework/Resources/MyViewController.nib\n#\ndef build_embedded_framework(project):\n fw_path = project.local_built_fw_path\n embedded_path = project.local_built_embedded_fw_path\n fw_name = os.environ['WRAPPER_NAME']\n\n if (os.path.islink(fw_path)):\n # If the framework path is a link, the build result already in embeddedframework.\n # Just recreate embeddedframework's Resources\n remove_path(os.path.join(embedded_path, \"Resources\"))\n else:\n remove_path(embedded_path)\n ensure_path_exists(embedded_path)\n copy_overwrite(fw_path, os.path.join(embedded_path, fw_name))\n\n # Create embeddedframework's Resources \n ensure_path_exists(os.path.join(embedded_path, \"Resources\"))\n symlink_source = os.path.join(\"..\", fw_name, \"Resources\")\n symlink_path = os.path.join(embedded_path, \"Resources\")\n if os.path.isdir(os.path.join(fw_path, \"Resources\")):\n for file in filter(lambda x: x != \"Info.plist\" and not x.endswith(\".lproj\"), os.listdir(os.path.join(fw_path, \"Resources\"))):\n attempt_symlink(os.path.join(symlink_path, file), os.path.join(symlink_source, file))\n\n # Remove the normal framework and replace it with a symlink to the copy\n # in the embedded framework. This is needed because Xcode runs its strip\n # phase AFTER the script runs.\n embed_fw_wrapper = os.path.splitext(os.environ['WRAPPER_NAME'])[0] + \".embeddedframework\"\n remove_path(fw_path)\n attempt_symlink(fw_path, os.path.join(embed_fw_wrapper, os.environ['WRAPPER_NAME']))\n\n\n# Run the build process in slave mode to build the other configuration\n# (device/simulator).\n#\ndef run_slave_build(project):\n print_and_call_slave_build(project.get_slave_project_build_command(), project.other_platform)\n\n# Run the build process.\n#\ndef run_build():\n project = Project(os.path.join(os.environ['PROJECT_FILE_PATH'], \"project.pbxproj\"))\n\n # Issue warnings only if we're master.\n if is_master():\n if len(project.compilable_sources) == 0:\n raise Exception(\"No compilable sources found. Please add at least one source file to build target %s.\" % os.environ['TARGET_NAME'])\n\n if config_warn_derived_data:\n check_for_derived_data_in_search_paths(project)\n if config_warn_no_public_headers and len(project.public_headers) == 0:\n issue_warning('No headers in build target %s were marked public. Please move at least one header to \"Public\" in the \"Copy Headers\" build phase.' % os.environ['TARGET_NAME'])\n\n # Only build slave if this is an archive build.\n if is_archive_build():\n if is_master():\n log.debug(\"Building as MASTER\")\n # The slave-side linker tries to include this (nonexistent) path as\n # a library path.\n ensure_path_exists(project.get_slave_environment()['BUILT_PRODUCTS_DIR'])\n project.build_state.persist()\n run_slave_build(project)\n project.build_state.reload()\n else:\n log.debug(\"Building as SLAVE\")\n project.build_state.reload()\n project.build_state.set_slave_properties(project.local_architectures,\n project.local_linked_archive_paths,\n project.local_built_fw_path,\n project.local_built_embedded_fw_path)\n project.build_state.persist()\n\n link_local_archs(project)\n \n # Only do a universal binary when building an archive.\n if is_archive_build() and is_master():\n link_combine_all_archs(project)\n else:\n link_combine_local_archs(project)\n\n if config_deep_header_hierarchy:\n build_deep_header_hierarchy(project)\n\n add_symlinks_to_framework(project)\n \n if is_master():\n if config_framework_type == 'embeddedframework':\n build_embedded_framework(project)\n elif config_framework_type != 'framework':\n raise Exception(\"%s: Unknown framework type for config_framework_type\" % config_framework_type)\n\n\nif __name__ == \"__main__\":\n log_handler = logging.StreamHandler()\n log_handler.setFormatter(logging.Formatter(\"%(name)s (\" + os.environ['PLATFORM_NAME'] + \"): %(levelname)s: %(message)s\"))\n log.addHandler(log_handler)\n log.setLevel(config_log_level)\n\n error_code = 0\n prefix = \"M\" if is_master() else \"S\"\n log_handler.setFormatter(logging.Formatter(\"%(name)s (\" + prefix + \" \" + os.environ['PLATFORM_NAME'] + \"): %(levelname)s: %(message)s\"))\n\n log.debug(\"Begin build process\")\n\n if config_deep_header_top:\n config_deep_header_top = string.Template(config_deep_header_top).substitute(os.environ)\n\n try:\n run_build()\n if issued_warnings:\n if config_fail_on_warnings:\n error_code = 1\n log.warn(\"Build completed with warnings\")\n else:\n log.info(\"Build completed\")\n if not is_archive_build():\n log.info(\"Note: This is *NOT* a universal framework build. To build as a universal framework, do an archive build.\")\n log.info(\"To do an archive build from command line, use \\\"xcodebuild -configuration Release UFW_ACTION=archive clean build\\\"\")\n except Exception:\n traceback.print_exc(file=sys.stdout)\n error_code = 1\n log.error(\"Build failed\")\n finally:\n if error_code == 0 and is_archive_build() and is_master():\n log.info(\"Built framework is in \" + os.environ['TARGET_BUILD_DIR'])\n if should_open_build_dir():\n open_build_dir()\n sys.exit(error_code)\n"; }; - C340C0DE19C07FB000431A7D /* Sources */ = { +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C3995275187694E100221C8A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C340C0E919C07FB000431A7D /* PDFImageTests.m in Sources */, + C39952A4187695CD00221C8A /* PDFImageOptions.m in Sources */, + C39952A7187695CD00221C8A /* PDFImageView.m in Sources */, + C343B0331893F7230048FE48 /* PDFBarButtonItem.m in Sources */, + C39952A3187695CD00221C8A /* PDFImage.m in Sources */, + C39952A2187695CD00221C8A /* PDFImageViewLayer.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -627,33 +601,27 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + C3AED88F18769B430035F18E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C3CBB33A1877011B007A9620 /* PDFTintColorDemoViewController.m in Sources */, + C3AED8A118769B430035F18E /* PDFImageTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - C340C0E419C07FB000431A7D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = C3AED87A18769B430035F18E /* PDFImageDemo */; - targetProxy = C340C0E319C07FB000431A7D /* PBXContainerItemProxy */; - }; - C340C0EB19C07FB000431A7D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = C340C0D719C07FB000431A7D /* PDFImage */; - targetProxy = C340C0EA19C07FB000431A7D /* PBXContainerItemProxy */; - }; - C340C0EF19C07FB000431A7D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = C340C0D719C07FB000431A7D /* PDFImage */; - targetProxy = C340C0EE19C07FB000431A7D /* PBXContainerItemProxy */; - }; - C3CF6F0119C09978007B9E7A /* PBXTargetDependency */ = { + C32452D618769BDA00FBCF88 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = C3AED87A18769B430035F18E /* PDFImageDemo */; - targetProxy = C3CF6F0019C09978007B9E7A /* PBXContainerItemProxy */; + target = C399527B187694E100221C8A /* PDFImage */; + targetProxy = C32452D518769BDA00FBCF88 /* PBXContainerItemProxy */; }; - C3CF6F0419C099A9007B9E7A /* PBXTargetDependency */ = { + C3AED89918769B430035F18E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = C3AED87A18769B430035F18E /* PDFImageDemo */; - targetProxy = C3CF6F0319C099A9007B9E7A /* PBXContainerItemProxy */; + targetProxy = C3AED89818769B430035F18E /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -678,103 +646,6 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - C340C0F019C07FB000431A7D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = PDFImage/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C340C0F119C07FB000431A7D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C340C0F719C0802E00431A7D /* Release.xcconfig */; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = PDFImage/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = NO; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - C340C0F219C07FB000431A7D /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = PDFImageTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PDFImageDemo.app/PDFImageDemo"; - }; - name = Debug; - }; - C340C0F319C07FB000431A7D /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_WARN_UNREACHABLE_CODE = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - INFOPLIST_FILE = PDFImageTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PDFImageDemo.app/PDFImageDemo"; - }; - name = Release; - }; C3995288187694E100221C8A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -792,6 +663,7 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; @@ -807,6 +679,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; }; name = Debug; @@ -842,24 +715,57 @@ }; name = Release; }; + C399528B187694E100221C8A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C39952AA187695FB00221C8A /* Release.xcconfig */; + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = PDFImage/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = com.tparry.PDFImage; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Debug; + }; + C399528C187694E100221C8A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C39952AA187695FB00221C8A /* Release.xcconfig */; + buildSettings = { + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = PDFImage/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = com.tparry.PDFImage; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = framework; + }; + name = Release; + }; C3AED8A218769B430035F18E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "${BUILT_PRODUCTS_DIR}", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "PDFImageDemo/PDFImageDemo-Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); INFOPLIST_FILE = "PDFImageDemo/PDFImageDemo-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.tparry.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -870,55 +776,96 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "${BUILT_PRODUCTS_DIR}", ); GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "PDFImageDemo/PDFImageDemo-Prefix.pch"; INFOPLIST_FILE = "PDFImageDemo/PDFImageDemo-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.tparry.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; name = Release; }; + C3AED8A418769B430035F18E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PDFImageDemo.app/PDFImageDemo"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + "${BUILT_PRODUCTS_DIR}", + ); + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = PDFImageTests/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = "com.tparry.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Debug; + }; + C3AED8A518769B430035F18E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/PDFImageDemo.app/PDFImageDemo"; + FRAMEWORK_SEARCH_PATHS = ( + "$(SDKROOT)/Developer/Library/Frameworks", + "$(inherited)", + "$(DEVELOPER_FRAMEWORKS_DIR)", + "${BUILT_PRODUCTS_DIR}", + ); + INFOPLIST_FILE = PDFImageTests/Info.plist; + PRODUCT_BUNDLE_IDENTIFIER = "com.tparry.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = xctest; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - C340C0F419C07FB000431A7D /* Build configuration list for PBXNativeTarget "PDFImage" */ = { + C3995273187694E100221C8A /* Build configuration list for PBXProject "PDFImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - C340C0F019C07FB000431A7D /* Debug */, - C340C0F119C07FB000431A7D /* Release */, + C3995288187694E100221C8A /* Debug */, + C3995289187694E100221C8A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C340C0F619C07FB000431A7D /* Build configuration list for PBXNativeTarget "PDFImageTests" */ = { + C399528A187694E100221C8A /* Build configuration list for PBXNativeTarget "PDFImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - C340C0F219C07FB000431A7D /* Debug */, - C340C0F319C07FB000431A7D /* Release */, + C399528B187694E100221C8A /* Debug */, + C399528C187694E100221C8A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C3995273187694E100221C8A /* Build configuration list for PBXProject "PDFImage" */ = { + C3AED8A618769B430035F18E /* Build configuration list for PBXNativeTarget "PDFImageDemo" */ = { isa = XCConfigurationList; buildConfigurations = ( - C3995288187694E100221C8A /* Debug */, - C3995289187694E100221C8A /* Release */, + C3AED8A218769B430035F18E /* Debug */, + C3AED8A318769B430035F18E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C3AED8A618769B430035F18E /* Build configuration list for PBXNativeTarget "PDFImageDemo" */ = { + C3AED8A718769B430035F18E /* Build configuration list for PBXNativeTarget "PDFImageTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - C3AED8A218769B430035F18E /* Debug */, - C3AED8A318769B430035F18E /* Release */, + C3AED8A418769B430035F18E /* Debug */, + C3AED8A518769B430035F18E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Xcode/PDFImage/Info.plist b/Xcode/PDFImage/Info.plist index 61a6a69..d6896f1 100644 --- a/Xcode/PDFImage/Info.plist +++ b/Xcode/PDFImage/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.tparry.PDFImage + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 1.2 + v1.1.1 CFBundleSignature ???? CFBundleVersion diff --git a/Xcode/PDFImage/Release.xcconfig b/Xcode/PDFImage/Release.xcconfig index 8bc89a8..60912d3 100644 --- a/Xcode/PDFImage/Release.xcconfig +++ b/Xcode/PDFImage/Release.xcconfig @@ -25,6 +25,8 @@ // For more information, please refer to // +#include "StaticFramework.xcconfig" + SEPARATE_STRIP = YES STRIP_INSTALLED_PRODUCT = YES DEBUG_INFORMATION_FORMAT = stabs diff --git a/Xcode/PDFImage/StaticFramework.xcconfig b/Xcode/PDFImage/StaticFramework.xcconfig new file mode 100755 index 0000000..b9d227b --- /dev/null +++ b/Xcode/PDFImage/StaticFramework.xcconfig @@ -0,0 +1,60 @@ +// +// This is free and unencumbered software released into the public domain. +// +// Anyone is free to copy, modify, publish, use, compile, sell, or +// distribute this software, either in source code form or as a compiled +// binary, for any purpose, commercial or non-commercial, and by any +// means. +// +// In jurisdictions that recognize copyright laws, the author or authors +// of this software dedicate any and all copyright interest in the +// software to the public domain. We make this dedication for the benefit +// of the public at large and to the detriment of our heirs and +// successors. We intend this dedication to be an overt act of +// relinquishment in perpetuity of all present and future rights to this +// software under copyright law. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +// OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +// ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// For more information, please refer to +// + +WRAPPER_PREFIX =; +WRAPPER_SUFFIX = .framework +WRAPPER_NAME = $(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX) +VERSIONS_FOLDER_PATH = $(WRAPPER_NAME)/Versions +CONTENTS_FOLDER_PATH = $(VERSIONS_FOLDER_PATH)/$(FRAMEWORK_VERSION) +FRAMEWORKS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Frameworks +UNLOCALIZED_RESOURCES_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Resources +CODESIGNING_FOLDER_PATH = $(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH) + +CURRENT_VERSION = Current +EXECUTABLE_PREFIX =; +EXECUTABLE_SUFFIX =; +EXECUTABLE_NAME = $(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX) +EXECUTABLE_FOLDER_PATH = $(CONTENTS_FOLDER_PATH) +EXECUTABLE_PATH = $(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME) +INFOPLIST_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist; +INFOPLISTSTRINGS_PATH = $(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings; +PKGINFO_PATH = $(WRAPPER_NAME)/PkgInfo +PBDEVELOPMENTPLIST_PATH = $(CONTENTS_FOLDER_PATH)/pbdevelopment.plist +VERSIONPLIST_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH)/version.plist +PUBLIC_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Headers +PRIVATE_HEADERS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/PrivateHeaders +EXECUTABLES_FOLDER_PATH = $(LOCALIZED_RESOURCES_FOLDER_PATH) +FRAMEWORKS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Frameworks +SHARED_FRAMEWORKS_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/SharedFrameworks +SHARED_SUPPORT_FOLDER_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH) +UNLOCALIZED_RESOURCES_FOLDER_PATH = $(CONTENTS_FOLDER_PATH)/Resources +LOCALIZED_RESOURCES_FOLDER_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj +DOCUMENTATION_FOLDER_PATH = $(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation +PLUGINS_FOLDER_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH) +SCRIPTS_FOLDER_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts +JAVA_FOLDER_PATH = $(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java +CODESIGNING_FOLDER_PATH = $(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH) diff --git a/Xcode/PDFImageDemo/PDFImageDemo-Info.plist b/Xcode/PDFImageDemo/PDFImageDemo-Info.plist index 74bbc29..5bc26db 100644 --- a/Xcode/PDFImageDemo/PDFImageDemo-Info.plist +++ b/Xcode/PDFImageDemo/PDFImageDemo-Info.plist @@ -9,7 +9,7 @@ CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIdentifier - com.tparry.${PRODUCT_NAME:rfc1034identifier} + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/Xcode/PDFImageTests/Info.plist b/Xcode/PDFImageTests/Info.plist index 6fdd2a8..ba72822 100644 --- a/Xcode/PDFImageTests/Info.plist +++ b/Xcode/PDFImageTests/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier - com.tparry.$(PRODUCT_NAME:rfc1034identifier) + $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName