├── .gitignore ├── .gitmodules ├── Dynamic-device.crash ├── Dynamic.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ └── contents.xcworkspacedata └── xcshareddata │ └── xcschemes │ └── Dynamic.xcscheme ├── Dynamic ├── Images.xcassets │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── LaunchImage.launchimage │ │ └── Contents.json ├── Info.plist ├── LLAppDelegate.h ├── LLAppDelegate.m ├── LLViewController.h ├── LLViewController.m ├── Storyboard.storyboard ├── en.lproj │ └── InfoPlist.strings └── main.m ├── Externals └── Library │ ├── Framework │ ├── Data.plist │ ├── Framework.h │ ├── Framework.m │ ├── Info.plist │ └── en.lproj │ │ └── InfoPlist.strings │ ├── Library.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ └── xcshareddata │ │ └── xcschemes │ │ ├── Framework.xcscheme │ │ ├── Library.xcscheme │ │ └── Plugin.xcscheme │ ├── Library │ ├── Library.h │ └── Library.m │ └── Plugin │ ├── Data.plist │ ├── Info.plist │ ├── Plugin.h │ ├── Plugin.m │ └── en.lproj │ └── InfoPlist.strings ├── README └── Xcode Specifications ├── iPhone Simulator PackageTypes.xcspec ├── iPhone Simulator ProductTypes.xcspec ├── iPhoneOSPackageTypes.xcspec └── iPhoneOSProductTypes.xcspec /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # CocoaPods 23 | Pods 24 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Externals/image_logger"] 2 | path = Externals/image_logger 3 | url = git@github.com:ddeville/ImageLogger.git 4 | -------------------------------------------------------------------------------- /Dynamic-device.crash: -------------------------------------------------------------------------------- 1 | Incident Identifier: B1D0A4EC-8053-4A67-A854-16554DE3F7B2 2 | CrashReporter Key: 1d512f558e4618ba7941e24070e721fa2e4fc5d9 3 | Hardware Model: iPhone5,4 4 | Process: Dynamic [11352] 5 | Path: /var/mobile/Applications/2BF77931-66B8-4EA0-928D-ED2188A9972F/Dynamic.app/Dynamic 6 | Identifier: com.ddeville.Dynamic 7 | Version: 1.0 (1.0) 8 | Code Type: ARM (Native) 9 | Parent Process: launchd [1] 10 | 11 | Date/Time: 2014-03-31 11:52:24.797 +0100 12 | OS Version: iOS 7.1 (11D167) 13 | Report Version: 104 14 | 15 | Exception Type: EXC_CRASH (SIGKILL - CODESIGNING) 16 | Exception Codes: 0x0000000000000000, 0x0000000000000000 17 | Triggered by Thread: 0 18 | 19 | Thread 0 Crashed: 20 | 0 dyld 0x2be50c40 ImageLoaderMachO::crashIfInvalidCodeSignature() + 72 21 | 1 dyld 0x2be5557a ImageLoaderMachOCompressed::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, unsigned int, unsigned int, linkedit_data_command const*, ImageLoader::LinkContext const&) + 286 22 | 2 dyld 0x2be50b44 ImageLoaderMachO::instantiateFromFile(char const*, int, unsigned char const*, unsigned long long, unsigned long long, stat const&, ImageLoader::LinkContext const&) + 204 23 | 3 dyld 0x2be48036 dyld::loadPhase6(int, stat const&, char const*, dyld::LoadContext const&) + 390 24 | 4 dyld 0x2be4b9b0 dyld::loadPhase5stat(char const*, dyld::LoadContext const&, stat*, int*, bool*, std::__1::vector >*) + 296 25 | 5 dyld 0x2be4b7c6 dyld::loadPhase5(char const*, char const*, dyld::LoadContext const&, std::__1::vector >*) + 390 26 | 6 dyld 0x2be4b61c dyld::loadPhase4(char const*, char const*, dyld::LoadContext const&, std::__1::vector >*) + 128 27 | 7 dyld 0x2be4b53c dyld::loadPhase3(char const*, char const*, dyld::LoadContext const&, std::__1::vector >*) + 1000 28 | 8 dyld 0x2be4afd0 dyld::loadPhase1(char const*, char const*, dyld::LoadContext const&, std::__1::vector >*) + 108 29 | 9 dyld 0x2be47e0a dyld::loadPhase0(char const*, char const*, dyld::LoadContext const&, std::__1::vector >*) + 162 30 | 10 dyld 0x2be47bb4 dyld::load(char const*, dyld::LoadContext const&) + 208 31 | 11 dyld 0x2be4d1b2 dlopen + 790 32 | 12 libdyld.dylib 0x3a09a78a dlopen + 46 33 | 13 CoreFoundation 0x2f392754 _CFBundleDlfcnLoadBundle + 120 34 | 14 CoreFoundation 0x2f3925a4 _CFBundleLoadExecutableAndReturnError + 328 35 | 15 Foundation 0x2fd7f674 -[NSBundle loadAndReturnError:] + 532 36 | 16 Foundation 0x2fd8f51e -[NSBundle load] + 18 37 | 17 Dynamic 0x000f64be -[LLViewController _loadPluginAtLocation:] (LLViewController.m:108) 38 | 18 Dynamic 0x000f602a __32-[LLViewController loadPlugins:]_block_invoke (LLViewController.m:71) 39 | 19 CoreFoundation 0x2f34c40c __53-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]_block_invoke + 88 40 | 20 CoreFoundation 0x2f34c33e -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 230 41 | 21 Dynamic 0x000f5d5e -[LLViewController loadPlugins:] (LLViewController.m:62) 42 | 22 UIKit 0x31c6c6c2 -[UIApplication sendAction:to:from:forEvent:] + 86 43 | 23 UIKit 0x31c6c65e -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 34 44 | 24 UIKit 0x31c6c62e -[UIControl sendAction:to:forEvent:] + 42 45 | 25 UIKit 0x31c57d76 -[UIControl _sendActionsForEvents:withEvent:] + 370 46 | 26 UIKit 0x31c6c076 -[UIControl touchesEnded:withEvent:] + 590 47 | 27 UIKit 0x31c2f53c _UIGestureRecognizerUpdate + 5524 48 | 28 UIKit 0x31c67320 -[UIWindow _sendGesturesForEvent:] + 768 49 | 29 UIKit 0x31c66c46 -[UIWindow sendEvent:] + 662 50 | 30 UIKit 0x31c3be70 -[UIApplication sendEvent:] + 192 51 | 31 UIKit 0x31c3a53c _UIApplicationHandleEventQueue + 7116 52 | 32 CoreFoundation 0x2f3d2fe4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 12 53 | 33 CoreFoundation 0x2f3d24aa __CFRunLoopDoSources0 + 202 54 | 34 CoreFoundation 0x2f3d0c9a __CFRunLoopRun + 626 55 | 35 CoreFoundation 0x2f33b7a4 CFRunLoopRunSpecific + 520 56 | 36 CoreFoundation 0x2f33b586 CFRunLoopRunInMode + 102 57 | 37 GraphicsServices 0x342a86ce GSEventRunModal + 134 58 | 38 UIKit 0x31c9a88c UIApplicationMain + 1132 59 | 39 Dynamic 0x000f59d4 main (main.m:16) 60 | 40 libdyld.dylib 0x3a09aab4 start + 0 61 | 62 | Thread 1: 63 | 0 libsystem_kernel.dylib 0x3a13e804 kevent64 + 24 64 | 1 libdispatch.dylib 0x3a08d050 _dispatch_mgr_invoke + 228 65 | 2 libdispatch.dylib 0x3a0872de _dispatch_mgr_thread + 34 66 | 67 | Thread 2: 68 | 0 libsystem_kernel.dylib 0x3a151c70 __workq_kernreturn + 8 69 | 1 libsystem_pthread.dylib 0x3a1b6c1e _pthread_wqthread + 306 70 | 2 libsystem_pthread.dylib 0x3a1b6ad8 start_wqthread + 4 71 | 72 | Thread 3: 73 | 0 libsystem_kernel.dylib 0x3a151c70 __workq_kernreturn + 8 74 | 1 libsystem_pthread.dylib 0x3a1b6c1e _pthread_wqthread + 306 75 | 2 libsystem_pthread.dylib 0x3a1b6ad8 start_wqthread + 4 76 | 77 | Thread 0 crashed with ARM Thread State (32-bit): 78 | r0: 0x02924000 r1: 0x02924000 r2: 0x27d0ee3c r3: 0x00000012 79 | r4: 0x16658330 r5: 0x00000000 r6: 0x16658378 r7: 0x27d0e158 80 | r8: 0x27d0ee3c r9: 0x00000000 r10: 0x16658380 r11: 0x00000005 81 | ip: 0x000000c5 sp: 0x27d0e14c lr: 0x2be5130b pc: 0x2be50c40 82 | cpsr: 0x00000030 83 | 84 | Binary Images: 85 | 0xf0000 - 0xf7fff Dynamic armv7s <0b47d8b210c033cfb1d73838d944502f> /var/mobile/Applications/2BF77931-66B8-4EA0-928D-ED2188A9972F/Dynamic.app/Dynamic 86 | 0x2be45000 - 0x2be68fff dyld armv7s <4d05d388718832c99cdd4e74aeb07d51> /usr/lib/dyld 87 | 0x2e28c000 - 0x2e38efff AVFoundation armv7s /System/Library/Frameworks/AVFoundation.framework/AVFoundation 88 | 0x2e38f000 - 0x2e3b7fff libAVFAudio.dylib armv7s /System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib 89 | 0x2e3b8000 - 0x2e3b8fff Accelerate armv7s <58ca068138d93e988a34a0c8c34b0b11> /System/Library/Frameworks/Accelerate.framework/Accelerate 90 | 0x2e3c2000 - 0x2e58ffff vImage armv7s <9923548d8ed23bb1b1020130b5d38dab> /System/Library/Frameworks/Accelerate.framework/Frameworks/vImage.framework/vImage 91 | 0x2e590000 - 0x2e672fff libBLAS.dylib armv7s <48f7680a8fd83251ad8415bb090408c3> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib 92 | 0x2e673000 - 0x2e92bfff libLAPACK.dylib armv7s <2547383dc88d3329827b4d76768915ee> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib 93 | 0x2e92c000 - 0x2e99afff libvDSP.dylib armv7s <83036da6f5d9308bb5fad06b2d29bac9> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 94 | 0x2e99b000 - 0x2e9adfff libvMisc.dylib armv7s /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvMisc.dylib 95 | 0x2e9ae000 - 0x2e9aefff vecLib armv7s <4a647b20c3f03490aae530226350a4cd> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 96 | 0x2e9af000 - 0x2e9cffff Accounts armv7s <73b0639b81fe30d5b2b13628d3df2273> /System/Library/Frameworks/Accounts.framework/Accounts 97 | 0x2e9d1000 - 0x2ea38fff AddressBook armv7s /System/Library/Frameworks/AddressBook.framework/AddressBook 98 | 0x2eca6000 - 0x2efc2fff AudioToolbox armv7s <42ef392f2082317cbd3857838ab97aaf> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 99 | 0x2efc3000 - 0x2f0c9fff CFNetwork armv7s <92222e5708af3145bb068d8f3b481572> /System/Library/Frameworks/CFNetwork.framework/CFNetwork 100 | 0x2f0ca000 - 0x2f125fff CoreAudio armv7s <34a6461e9ad3380ea9e0405f81aad500> /System/Library/Frameworks/CoreAudio.framework/CoreAudio 101 | 0x2f126000 - 0x2f13dfff CoreBluetooth armv7s <0e672bb563ea3c2fb0c6ae0070d00efb> /System/Library/Frameworks/CoreBluetooth.framework/CoreBluetooth 102 | 0x2f13e000 - 0x2f332fff CoreData armv7s <23650924fc293fdf994419f6894720a9> /System/Library/Frameworks/CoreData.framework/CoreData 103 | 0x2f333000 - 0x2f476ff0 CoreFoundation armv7s /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 104 | 0x2f477000 - 0x2f59bfff CoreGraphics armv7s <182ccc3a111d360eb5c1e58b4289afb3> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 105 | 0x2f59d000 - 0x2f5d8fff libCGFreetype.A.dylib armv7s <1d9c402cc18433db9a72d349876b2fea> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib 106 | 0x2f5da000 - 0x2f5e4fff libCMSBuiltin.A.dylib armv7s <1efb72c2985332c485d07c5a3784f93b> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCMSBuiltin.A.dylib 107 | 0x2f7c9000 - 0x2f7e3fff libRIP.A.dylib armv7s <23b82f0d28e238938519439e243ae7a7> /System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib 108 | 0x2f7e4000 - 0x2f8bdfff CoreImage armv7s <1eedb55ace133e10bb629fa881c45542> /System/Library/Frameworks/CoreImage.framework/CoreImage 109 | 0x2f8be000 - 0x2f90dfff CoreLocation armv7s <5d78705a46ab313fa21f1d5ed2f0ce3f> /System/Library/Frameworks/CoreLocation.framework/CoreLocation 110 | 0x2f945000 - 0x2f9c0fff CoreMedia armv7s <2f8fa07e557f3b29b932d31865d2121a> /System/Library/Frameworks/CoreMedia.framework/CoreMedia 111 | 0x2f9c1000 - 0x2fa69fff CoreMotion armv7s /System/Library/Frameworks/CoreMotion.framework/CoreMotion 112 | 0x2fa6a000 - 0x2fac2fff CoreTelephony armv7s <711db5ac808937b09143f43f11f06422> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony 113 | 0x2fac3000 - 0x2fb53fff CoreText armv7s <43e84c5a90fc36a984363965f2d8029b> /System/Library/Frameworks/CoreText.framework/CoreText 114 | 0x2fb54000 - 0x2fb63fff CoreVideo armv7s /System/Library/Frameworks/CoreVideo.framework/CoreVideo 115 | 0x2fd23000 - 0x2ff0dfff Foundation armv7s /System/Library/Frameworks/Foundation.framework/Foundation 116 | 0x300ef000 - 0x30145fff IOKit armv7s <8905cade40f43b668931f86c5832abc0> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 117 | 0x30146000 - 0x30356fff ImageIO armv7s <3234150da2d13945a33c98335e53db80> /System/Library/Frameworks/ImageIO.framework/ImageIO 118 | 0x30357000 - 0x305a2fff JavaScriptCore armv7s <2192c163793b3e04a8f9917eda045d8c> /System/Library/Frameworks/JavaScriptCore.framework/JavaScriptCore 119 | 0x30653000 - 0x30657fff MediaAccessibility armv7s /System/Library/Frameworks/MediaAccessibility.framework/MediaAccessibility 120 | 0x30856000 - 0x30b5cfff MediaToolbox armv7s <84b2b485897333008869c65c1e033d5e> /System/Library/Frameworks/MediaToolbox.framework/MediaToolbox 121 | 0x30c09000 - 0x30c6cfff MobileCoreServices armv7s <1a736ebbc93431c8943cdd93a0a0fdcb> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 122 | 0x316b4000 - 0x316bcfff OpenGLES armv7s <1c3e551d0a923b86940ad36a6e682463> /System/Library/Frameworks/OpenGLES.framework/OpenGLES 123 | 0x316be000 - 0x316befff libCVMSPluginSupport.dylib armv7s /System/Library/Frameworks/OpenGLES.framework/libCVMSPluginSupport.dylib 124 | 0x316c3000 - 0x316c6fff libCoreVMClient.dylib armv7s <38ff1c7f12f83f8bac062e8daf9d4c10> /System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib 125 | 0x316c7000 - 0x316cefff libGFXShared.dylib armv7s <2406a4e5c5b437dbb0a3553655ac4951> /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib 126 | 0x316cf000 - 0x3170ffff libGLImage.dylib armv7s <7d912d8e3a453456a6e2d806b59aa448> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib 127 | 0x318a7000 - 0x319eefff QuartzCore armv7s <741ee0338b1235aab1550f91a3956041> /System/Library/Frameworks/QuartzCore.framework/QuartzCore 128 | 0x31a48000 - 0x31a8afff Security armv7s <289005dd72603957923ec376a37fa16f> /System/Library/Frameworks/Security.framework/Security 129 | 0x31bda000 - 0x31c29fff SystemConfiguration armv7s <82758c34b29a333bbdfe73e78361e0e1> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 130 | 0x31c2c000 - 0x3239ffff UIKit armv7s /System/Library/Frameworks/UIKit.framework/UIKit 131 | 0x323a0000 - 0x323eefff VideoToolbox armv7s /System/Library/Frameworks/VideoToolbox.framework/VideoToolbox 132 | 0x32796000 - 0x3279afff AggregateDictionary armv7s /System/Library/PrivateFrameworks/AggregateDictionary.framework/AggregateDictionary 133 | 0x32df6000 - 0x32e34fff AppSupport armv7s <0cb23d5c42d530cfa7e43605cf368293> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 134 | 0x32f2b000 - 0x32f31fff AppleSRP armv7s /System/Library/PrivateFrameworks/AppleSRP.framework/AppleSRP 135 | 0x32f5e000 - 0x32f6afff AssetsLibraryServices armv7s <05cf849c0bab37698f93ce58e0cabe0f> /System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices 136 | 0x32fb4000 - 0x32fb7fff BTLEAudioController armv7s /System/Library/PrivateFrameworks/BTLEAudioController.framework/BTLEAudioController 137 | 0x32fb8000 - 0x32fddfff BackBoardServices armv7s /System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices 138 | 0x32fe0000 - 0x32fe5fff BluetoothManager armv7s <9d86b542e884374f9845e9a53139abd7> /System/Library/PrivateFrameworks/BluetoothManager.framework/BluetoothManager 139 | 0x32fe6000 - 0x3300afff Bom armv7s /System/Library/PrivateFrameworks/Bom.framework/Bom 140 | 0x330ab000 - 0x330b3fff CaptiveNetwork armv7s <9825d6ad32163fcd8f2f56dbf274de62> /System/Library/PrivateFrameworks/CaptiveNetwork.framework/CaptiveNetwork 141 | 0x330b4000 - 0x33190fff Celestial armv7s <6fcb14a0193e336a938d7f68c01bc2c5> /System/Library/PrivateFrameworks/Celestial.framework/Celestial 142 | 0x3319d000 - 0x331a2fff CertUI armv7s <68968485501f35c09203bd9e045bbcd0> /System/Library/PrivateFrameworks/CertUI.framework/CertUI 143 | 0x332df000 - 0x332eafff CommonUtilities armv7s /System/Library/PrivateFrameworks/CommonUtilities.framework/CommonUtilities 144 | 0x332eb000 - 0x332effff CommunicationsFilter armv7s <87e7685b12ac375aa482a7a31cd28517> /System/Library/PrivateFrameworks/CommunicationsFilter.framework/CommunicationsFilter 145 | 0x33380000 - 0x33382fff ConstantClasses armv7s /System/Library/PrivateFrameworks/ConstantClasses.framework/ConstantClasses 146 | 0x333c2000 - 0x333c4fff CoreAUC armv7s <77474784f35a35718fa5c6bd358ec659> /System/Library/PrivateFrameworks/CoreAUC.framework/CoreAUC 147 | 0x33659000 - 0x33677fff CoreServicesInternal armv7s <29b0b6f5421c3753a2c42ef2c1ef4892> /System/Library/PrivateFrameworks/CoreServicesInternal.framework/CoreServicesInternal 148 | 0x33678000 - 0x33679fff CoreSurface armv7s <12e5cc9dcc093836ad0f36d8fc311158> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface 149 | 0x33720000 - 0x3377cfff CoreUI armv7s <3fdd5b6ee0b03774a8a67554e8a3c3ff> /System/Library/PrivateFrameworks/CoreUI.framework/CoreUI 150 | 0x3377d000 - 0x337d1fff CoreUtils armv7s <2cd95e7adf393d0e9656dcaee71b8298> /System/Library/PrivateFrameworks/CoreUtils.framework/CoreUtils 151 | 0x337d2000 - 0x337d7fff CrashReporterSupport armv7s <1945ce446ee632278fd2b45bec71ef4d> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport 152 | 0x339a3000 - 0x339b9fff DataAccessExpress armv7s /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress 153 | 0x339f4000 - 0x339f8fff DataMigration armv7s <24479dd9d49a354da98e6a0ce861558b> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration 154 | 0x339ff000 - 0x33a18fff DictionaryServices armv7s /System/Library/PrivateFrameworks/DictionaryServices.framework/DictionaryServices 155 | 0x33a37000 - 0x33a54fff EAP8021X armv7s /System/Library/PrivateFrameworks/EAP8021X.framework/EAP8021X 156 | 0x33a5d000 - 0x33a68fff ExFAT armv7s /System/Library/PrivateFrameworks/ExFAT.framework/ExFAT 157 | 0x33aa8000 - 0x33ec3fff FaceCore armv7s <72642f324b7639faa8206f00a953a573> /System/Library/PrivateFrameworks/FaceCore.framework/FaceCore 158 | 0x340f2000 - 0x3429efff GeoServices armv7s <1d0e1ac52cc636e2a6ff9d130bc9108d> /System/Library/PrivateFrameworks/GeoServices.framework/GeoServices 159 | 0x3429f000 - 0x342b5fff GraphicsServices armv7s <3b6c1bed029a36809c005aded6358ae2> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 160 | 0x34667000 - 0x346c1fff IMFoundation armv7s <1fe1f17117fd346e872606e1fbaf958f> /System/Library/PrivateFrameworks/IMFoundation.framework/IMFoundation 161 | 0x346cb000 - 0x346d2fff IOMobileFramebuffer armv7s <0d8975886a1c35ebaa01fbf02f749357> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer 162 | 0x346d3000 - 0x346d8fff IOSurface armv7s /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface 163 | 0x34816000 - 0x34891fff ManagedConfiguration armv7s /System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration 164 | 0x34894000 - 0x3490dfff MediaControlSender armv7s /System/Library/PrivateFrameworks/MediaControlSender.framework/MediaControlSender 165 | 0x3494c000 - 0x34959fff MediaRemote armv7s <9d9e2ea66c0836ab886b38beb1b05532> /System/Library/PrivateFrameworks/MediaRemote.framework/MediaRemote 166 | 0x34abe000 - 0x34acafff MobileAsset armv7s <6813f72ce0593cfea861addfd1357fac> /System/Library/PrivateFrameworks/MobileAsset.framework/MobileAsset 167 | 0x34aee000 - 0x34af6fff MobileBluetooth armv7s <8dd3363b6e2330d9b0eb427f5010b199> /System/Library/PrivateFrameworks/MobileBluetooth.framework/MobileBluetooth 168 | 0x34b11000 - 0x34b14fff MobileInstallation armv7s <7e644fec475d31c2bde3c0a9249ea3c6> /System/Library/PrivateFrameworks/MobileInstallation.framework/MobileInstallation 169 | 0x34b15000 - 0x34b1ffff MobileKeyBag armv7s <849c15afb1a8346994fe6673710fa23b> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag 170 | 0x34b47000 - 0x34b4afff MobileSystemServices armv7s <1bc1a98c34d5398ca9ff7d2a6cd65243> /System/Library/PrivateFrameworks/MobileSystemServices.framework/MobileSystemServices 171 | 0x34b69000 - 0x34b74fff MobileWiFi armv7s <6f236a63a5a831a9ab224cae7ba30ed6> /System/Library/PrivateFrameworks/MobileWiFi.framework/MobileWiFi 172 | 0x34e10000 - 0x34e15fff Netrb armv7s <11576949484a3405881d436920cf495c> /System/Library/PrivateFrameworks/Netrb.framework/Netrb 173 | 0x34e16000 - 0x34e1bfff NetworkStatistics armv7s <04f1b60537e03715934f8cdbb2992fbb> /System/Library/PrivateFrameworks/NetworkStatistics.framework/NetworkStatistics 174 | 0x34e41000 - 0x34e43fff OAuth armv7s /System/Library/PrivateFrameworks/OAuth.framework/OAuth 175 | 0x3559a000 - 0x355d5fff OpenCL armv7s /System/Library/PrivateFrameworks/OpenCL.framework/OpenCL 176 | 0x35b7b000 - 0x35ba2fff PersistentConnection armv7s <199be1a72cf136e38f3e97f918225ac3> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection 177 | 0x35fbe000 - 0x35ff1fff PhysicsKit armv7s /System/Library/PrivateFrameworks/PhysicsKit.framework/PhysicsKit 178 | 0x360e8000 - 0x3611ffff PrintKit armv7s <07cdb8fa73f638878da43cb85ecc6525> /System/Library/PrivateFrameworks/PrintKit.framework/PrintKit 179 | 0x36123000 - 0x361a9fff ProofReader armv7s /System/Library/PrivateFrameworks/ProofReader.framework/ProofReader 180 | 0x361aa000 - 0x361b4fff ProtocolBuffer armv7s /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer 181 | 0x361e6000 - 0x3625afff Quagga armv7s <14d6711448dd35da93958349e88c67bb> /System/Library/PrivateFrameworks/Quagga.framework/Quagga 182 | 0x3654d000 - 0x36562fff SpringBoardServices armv7s /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 183 | 0x367a4000 - 0x368c6fff StoreServices armv7s <95cccb75d8393b4ba47843d1e4c4d5bf> /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices 184 | 0x36976000 - 0x36978fff TCC armv7s /System/Library/PrivateFrameworks/TCC.framework/TCC 185 | 0x369cc000 - 0x369edfff TelephonyUtilities armv7s <89a81f2b2d00390f94886d091df8c370> /System/Library/PrivateFrameworks/TelephonyUtilities.framework/TelephonyUtilities 186 | 0x36d78000 - 0x36dabfff TextInput armv7s /System/Library/PrivateFrameworks/TextInput.framework/TextInput 187 | 0x3702e000 - 0x370eefff UIFoundation armv7s /System/Library/PrivateFrameworks/UIFoundation.framework/UIFoundation 188 | 0x37106000 - 0x37109fff UserFS armv7s <8c69a37146f53c20b27515d9081b585e> /System/Library/PrivateFrameworks/UserFS.framework/UserFS 189 | 0x375ae000 - 0x3805dfff WebCore armv7s /System/Library/PrivateFrameworks/WebCore.framework/WebCore 190 | 0x3805e000 - 0x3811efff WebKit armv7s /System/Library/PrivateFrameworks/WebKit.framework/WebKit 191 | 0x38269000 - 0x38271fff XPCObjects armv7s /System/Library/PrivateFrameworks/XPCObjects.framework/XPCObjects 192 | 0x3909d000 - 0x390a4fff libAccessibility.dylib armv7s <16a4dc0183f737e7b2dfeceb288a5724> /usr/lib/libAccessibility.dylib 193 | 0x392a1000 - 0x392b7fff libCRFSuite.dylib armv7s <1b03911a248832d5b24075ac2a3edfe3> /usr/lib/libCRFSuite.dylib 194 | 0x392cd000 - 0x392e2fff libMobileGestalt.dylib armv7s <47eca5e4f72f38459912efd50f7560a9> /usr/lib/libMobileGestalt.dylib 195 | 0x39300000 - 0x39301fff libSystem.B.dylib armv7s <9bbee79c5cb53f878e11d9da3f80f1c1> /usr/lib/libSystem.B.dylib 196 | 0x39370000 - 0x3939efff libTelephonyUtilDynamic.dylib armv7s /usr/lib/libTelephonyUtilDynamic.dylib 197 | 0x394ed000 - 0x394f9fff libbsm.0.dylib armv7s /usr/lib/libbsm.0.dylib 198 | 0x394fa000 - 0x39503fff libbz2.1.0.dylib armv7s <20bf7a7ab7e73d4c8453b1c86a7c5e3d> /usr/lib/libbz2.1.0.dylib 199 | 0x39504000 - 0x3954ffff libc++.1.dylib armv7s <72615c78ae5f39dcbafa740d87035caf> /usr/lib/libc++.1.dylib 200 | 0x39550000 - 0x3956afff libc++abi.dylib armv7s /usr/lib/libc++abi.dylib 201 | 0x395c8000 - 0x396b5fff libiconv.2.dylib armv7s /usr/lib/libiconv.2.dylib 202 | 0x396b6000 - 0x39807fff libicucore.A.dylib armv7s <9e6bead09e6e3f6284775099f2af03e2> /usr/lib/libicucore.A.dylib 203 | 0x3980f000 - 0x3980ffff liblangid.dylib armv7s <3cca7b6ef834379b82d4a032f99cdfc8> /usr/lib/liblangid.dylib 204 | 0x39810000 - 0x3981afff liblockdown.dylib armv7s /usr/lib/liblockdown.dylib 205 | 0x39b5c000 - 0x39b70fff libmis.dylib armv7s <7da8703c8950371ca3bad4d8c34bd892> /usr/lib/libmis.dylib 206 | 0x39b99000 - 0x39d38fff libobjc.A.dylib armv7s /usr/lib/libobjc.A.dylib 207 | 0x39e00000 - 0x39e15fff libresolv.9.dylib armv7s <880b294be76f3f9989247ca125ad3550> /usr/lib/libresolv.9.dylib 208 | 0x39e3e000 - 0x39ed5fff libsqlite3.dylib armv7s <584eaf4090783a64b8a33125a6a976bd> /usr/lib/libsqlite3.dylib 209 | 0x39ed6000 - 0x39f23fff libstdc++.6.dylib armv7s <6428df9b541c3ffbb23c393b3b1280e9> /usr/lib/libstdc++.6.dylib 210 | 0x39f24000 - 0x39f4afff libtidy.A.dylib armv7s <40c283e2258a330d9ff9799da0a1d2bb> /usr/lib/libtidy.A.dylib 211 | 0x39f4e000 - 0x3a001fff libxml2.2.dylib armv7s <1a18ebeae7253959b9cfe286550809a8> /usr/lib/libxml2.2.dylib 212 | 0x3a002000 - 0x3a023fff libxslt.1.dylib armv7s /usr/lib/libxslt.1.dylib 213 | 0x3a024000 - 0x3a030fff libz.1.dylib armv7s <578def3dfb6e3180b5f9d0cdacfea7ab> /usr/lib/libz.1.dylib 214 | 0x3a031000 - 0x3a035fff libcache.dylib armv7s <5552b722402630c39069717fce563238> /usr/lib/system/libcache.dylib 215 | 0x3a036000 - 0x3a03efff libcommonCrypto.dylib armv7s /usr/lib/system/libcommonCrypto.dylib 216 | 0x3a03f000 - 0x3a043fff libcompiler_rt.dylib armv7s /usr/lib/system/libcompiler_rt.dylib 217 | 0x3a044000 - 0x3a04afff libcopyfile.dylib armv7s <553c4af79d1e30bdafc06af9cf757caf> /usr/lib/system/libcopyfile.dylib 218 | 0x3a04b000 - 0x3a084fff libcorecrypto.dylib armv7s <3078b6192ac6371eb233dfa9b483728b> /usr/lib/system/libcorecrypto.dylib 219 | 0x3a085000 - 0x3a098fff libdispatch.dylib armv7s <724a779782af35d5b686b90ae55712be> /usr/lib/system/libdispatch.dylib 220 | 0x3a099000 - 0x3a09afff libdyld.dylib armv7s /usr/lib/system/libdyld.dylib 221 | 0x3a09b000 - 0x3a09bfff libkeymgr.dylib armv7s /usr/lib/system/libkeymgr.dylib 222 | 0x3a09c000 - 0x3a0a2fff liblaunch.dylib armv7s /usr/lib/system/liblaunch.dylib 223 | 0x3a0a3000 - 0x3a0a6fff libmacho.dylib armv7s /usr/lib/system/libmacho.dylib 224 | 0x3a0a7000 - 0x3a0a8fff libremovefile.dylib armv7s <470ebd7c55de3e19b1ba2f540fb555b8> /usr/lib/system/libremovefile.dylib 225 | 0x3a0a9000 - 0x3a0b6fff libsystem_asl.dylib armv7s <667d4520d8863f96930caf3caed29585> /usr/lib/system/libsystem_asl.dylib 226 | 0x3a0b7000 - 0x3a0b7fff libsystem_blocks.dylib armv7s <7df185e5c3423b2b827bbb017ae0d23a> /usr/lib/system/libsystem_blocks.dylib 227 | 0x3a0b8000 - 0x3a11afff libsystem_c.dylib armv7s <6bcc3e90324438708ca291c8dc2683ae> /usr/lib/system/libsystem_c.dylib 228 | 0x3a11b000 - 0x3a11dfff libsystem_configuration.dylib armv7s <6077b6a8819033b1a5da6eeb65667ac5> /usr/lib/system/libsystem_configuration.dylib 229 | 0x3a11e000 - 0x3a124fff libsystem_dnssd.dylib armv7s <61754fc466d73885939c421a54b10ad7> /usr/lib/system/libsystem_dnssd.dylib 230 | 0x3a125000 - 0x3a13dfff libsystem_info.dylib armv7s /usr/lib/system/libsystem_info.dylib 231 | 0x3a13e000 - 0x3a156fff libsystem_kernel.dylib armv7s /usr/lib/system/libsystem_kernel.dylib 232 | 0x3a157000 - 0x3a175fff libsystem_m.dylib armv7s <5dfbe494c8bc36e49d68ff1fd3e64c03> /usr/lib/system/libsystem_m.dylib 233 | 0x3a176000 - 0x3a187fff libsystem_malloc.dylib armv7s /usr/lib/system/libsystem_malloc.dylib 234 | 0x3a188000 - 0x3a1a8fff libsystem_network.dylib armv7s /usr/lib/system/libsystem_network.dylib 235 | 0x3a1a9000 - 0x3a1b0fff libsystem_notify.dylib armv7s <3e3abecaad193941a8ff25146c014ccb> /usr/lib/system/libsystem_notify.dylib 236 | 0x3a1b1000 - 0x3a1b5fff libsystem_platform.dylib armv7s <2b5893167164377d8bf61d6bac6d76b0> /usr/lib/system/libsystem_platform.dylib 237 | 0x3a1b6000 - 0x3a1bbfff libsystem_pthread.dylib armv7s /usr/lib/system/libsystem_pthread.dylib 238 | 0x3a1bc000 - 0x3a1bdfff libsystem_sandbox.dylib armv7s <8eedadf3f97f38e39b658fa502b9045b> /usr/lib/system/libsystem_sandbox.dylib 239 | 0x3a1be000 - 0x3a1c0fff libsystem_stats.dylib armv7s /usr/lib/system/libsystem_stats.dylib 240 | 0x3a1c1000 - 0x3a1c1fff libunwind.dylib armv7s <4b9e9973ab72392485a03ed5821f40a4> /usr/lib/system/libunwind.dylib 241 | 0x3a1c2000 - 0x3a1dcfff libxpc.dylib armv7s <9b5096abbc8c3fd79550880a8ba59d62> /usr/lib/system/libxpc.dylib -------------------------------------------------------------------------------- /Dynamic.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6D25E5E018D0E58D0045C3C9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D25E5DF18D0E58D0045C3C9 /* Foundation.framework */; }; 11 | 6D25E5E218D0E58D0045C3C9 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D25E5E118D0E58D0045C3C9 /* CoreGraphics.framework */; }; 12 | 6D25E5E418D0E58D0045C3C9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D25E5E318D0E58D0045C3C9 /* UIKit.framework */; }; 13 | 6D25E5EA18D0E58D0045C3C9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6D25E5E818D0E58D0045C3C9 /* InfoPlist.strings */; }; 14 | 6D25E5EC18D0E58D0045C3C9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D25E5EB18D0E58D0045C3C9 /* main.m */; }; 15 | 6D25E5F018D0E58D0045C3C9 /* LLAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D25E5EF18D0E58D0045C3C9 /* LLAppDelegate.m */; }; 16 | 6D25E5F218D0E58D0045C3C9 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6D25E5F118D0E58D0045C3C9 /* Images.xcassets */; }; 17 | 6D432BF818E981AB00BC4CDA /* Framework.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DE9FEBC18D0F44E0086D09D /* Framework.framework */; }; 18 | 6D432BF918E981AB00BC4CDA /* Library.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D25E64718D0E5CD0045C3C9 /* Library.dylib */; }; 19 | 6D432BFA18E981B700BC4CDA /* Library.dylib in Copy Libraries */ = {isa = PBXBuildFile; fileRef = 6D25E64718D0E5CD0045C3C9 /* Library.dylib */; }; 20 | 6D432BFB18E981BF00BC4CDA /* Framework.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 6DE9FEBC18D0F44E0086D09D /* Framework.framework */; }; 21 | 6D432C7318E995AC00BC4CDA /* LLImageLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D432C7218E995AC00BC4CDA /* LLImageLogger.m */; }; 22 | 6D8B70C218E963FE00EB1A43 /* Storyboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6D8B70C118E963FE00EB1A43 /* Storyboard.storyboard */; }; 23 | 6D8B70C518E9643200EB1A43 /* LLViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D8B70C418E9643200EB1A43 /* LLViewController.m */; }; 24 | /* End PBXBuildFile section */ 25 | 26 | /* Begin PBXContainerItemProxy section */ 27 | 6D25E64618D0E5CD0045C3C9 /* PBXContainerItemProxy */ = { 28 | isa = PBXContainerItemProxy; 29 | containerPortal = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 30 | proxyType = 2; 31 | remoteGlobalIDString = 6D25E61718D0E5B60045C3C9; 32 | remoteInfo = Library; 33 | }; 34 | 6D432BF418E981A600BC4CDA /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 37 | proxyType = 1; 38 | remoteGlobalIDString = 6D25E61618D0E5B60045C3C9; 39 | remoteInfo = Library; 40 | }; 41 | 6D432BF618E981A600BC4CDA /* PBXContainerItemProxy */ = { 42 | isa = PBXContainerItemProxy; 43 | containerPortal = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 44 | proxyType = 1; 45 | remoteGlobalIDString = 6DF9BF7618D0F25900258206; 46 | remoteInfo = Framework; 47 | }; 48 | 6D8B70DC18E96D8F00EB1A43 /* PBXContainerItemProxy */ = { 49 | isa = PBXContainerItemProxy; 50 | containerPortal = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 51 | proxyType = 2; 52 | remoteGlobalIDString = 6D8B70CA18E96D2200EB1A43; 53 | remoteInfo = Plugin; 54 | }; 55 | 6DE9FEBB18D0F44E0086D09D /* PBXContainerItemProxy */ = { 56 | isa = PBXContainerItemProxy; 57 | containerPortal = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 58 | proxyType = 2; 59 | remoteGlobalIDString = 6DF9BF7718D0F25900258206; 60 | remoteInfo = Framework; 61 | }; 62 | /* End PBXContainerItemProxy section */ 63 | 64 | /* Begin PBXCopyFilesBuildPhase section */ 65 | 6DE9FEB918D0F44E0086D09D /* Copy Frameworks */ = { 66 | isa = PBXCopyFilesBuildPhase; 67 | buildActionMask = 2147483647; 68 | dstPath = ""; 69 | dstSubfolderSpec = 6; 70 | files = ( 71 | 6D432BFB18E981BF00BC4CDA /* Framework.framework in Copy Frameworks */, 72 | ); 73 | name = "Copy Frameworks"; 74 | runOnlyForDeploymentPostprocessing = 0; 75 | }; 76 | 6DF9BF0318D0EA6400258206 /* Copy Libraries */ = { 77 | isa = PBXCopyFilesBuildPhase; 78 | buildActionMask = 2147483647; 79 | dstPath = ""; 80 | dstSubfolderSpec = 6; 81 | files = ( 82 | 6D432BFA18E981B700BC4CDA /* Library.dylib in Copy Libraries */, 83 | ); 84 | name = "Copy Libraries"; 85 | runOnlyForDeploymentPostprocessing = 0; 86 | }; 87 | /* End PBXCopyFilesBuildPhase section */ 88 | 89 | /* Begin PBXFileReference section */ 90 | 6D25E5DC18D0E58D0045C3C9 /* Dynamic.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Dynamic.app; sourceTree = BUILT_PRODUCTS_DIR; }; 91 | 6D25E5DF18D0E58D0045C3C9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 92 | 6D25E5E118D0E58D0045C3C9 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 93 | 6D25E5E318D0E58D0045C3C9 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 94 | 6D25E5E718D0E58D0045C3C9 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 95 | 6D25E5E918D0E58D0045C3C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 96 | 6D25E5EB18D0E58D0045C3C9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 97 | 6D25E5EE18D0E58D0045C3C9 /* LLAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LLAppDelegate.h; sourceTree = ""; }; 98 | 6D25E5EF18D0E58D0045C3C9 /* LLAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LLAppDelegate.m; sourceTree = ""; }; 99 | 6D25E5F118D0E58D0045C3C9 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 100 | 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Library.xcodeproj; path = Externals/Library/Library.xcodeproj; sourceTree = SOURCE_ROOT; }; 101 | 6D432C7118E995AC00BC4CDA /* LLImageLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LLImageLogger.h; path = Externals/image_logger/Shared/LLImageLogger.h; sourceTree = SOURCE_ROOT; }; 102 | 6D432C7218E995AC00BC4CDA /* LLImageLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LLImageLogger.m; path = Externals/image_logger/Shared/LLImageLogger.m; sourceTree = SOURCE_ROOT; }; 103 | 6D8B70C118E963FE00EB1A43 /* Storyboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Storyboard.storyboard; sourceTree = ""; }; 104 | 6D8B70C318E9643200EB1A43 /* LLViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLViewController.h; sourceTree = ""; }; 105 | 6D8B70C418E9643200EB1A43 /* LLViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLViewController.m; sourceTree = ""; }; 106 | /* End PBXFileReference section */ 107 | 108 | /* Begin PBXFrameworksBuildPhase section */ 109 | 6D25E5D918D0E58D0045C3C9 /* Frameworks */ = { 110 | isa = PBXFrameworksBuildPhase; 111 | buildActionMask = 2147483647; 112 | files = ( 113 | 6D25E5E018D0E58D0045C3C9 /* Foundation.framework in Frameworks */, 114 | 6D25E5E218D0E58D0045C3C9 /* CoreGraphics.framework in Frameworks */, 115 | 6D25E5E418D0E58D0045C3C9 /* UIKit.framework in Frameworks */, 116 | 6D432BF918E981AB00BC4CDA /* Library.dylib in Frameworks */, 117 | 6D432BF818E981AB00BC4CDA /* Framework.framework in Frameworks */, 118 | ); 119 | runOnlyForDeploymentPostprocessing = 0; 120 | }; 121 | /* End PBXFrameworksBuildPhase section */ 122 | 123 | /* Begin PBXGroup section */ 124 | 6D25E5D318D0E58D0045C3C9 = { 125 | isa = PBXGroup; 126 | children = ( 127 | 6D25E5E518D0E58D0045C3C9 /* Dynamic */, 128 | 6D25E64A18D0E5D00045C3C9 /* Externals */, 129 | 6D25E5DE18D0E58D0045C3C9 /* Frameworks */, 130 | 6D25E5DD18D0E58D0045C3C9 /* Products */, 131 | ); 132 | sourceTree = ""; 133 | }; 134 | 6D25E5DD18D0E58D0045C3C9 /* Products */ = { 135 | isa = PBXGroup; 136 | children = ( 137 | 6D25E5DC18D0E58D0045C3C9 /* Dynamic.app */, 138 | ); 139 | name = Products; 140 | sourceTree = ""; 141 | }; 142 | 6D25E5DE18D0E58D0045C3C9 /* Frameworks */ = { 143 | isa = PBXGroup; 144 | children = ( 145 | 6D25E5DF18D0E58D0045C3C9 /* Foundation.framework */, 146 | 6D25E5E118D0E58D0045C3C9 /* CoreGraphics.framework */, 147 | 6D25E5E318D0E58D0045C3C9 /* UIKit.framework */, 148 | ); 149 | name = Frameworks; 150 | sourceTree = ""; 151 | }; 152 | 6D25E5E518D0E58D0045C3C9 /* Dynamic */ = { 153 | isa = PBXGroup; 154 | children = ( 155 | 6D25E5EE18D0E58D0045C3C9 /* LLAppDelegate.h */, 156 | 6D25E5EF18D0E58D0045C3C9 /* LLAppDelegate.m */, 157 | 6D8B70C318E9643200EB1A43 /* LLViewController.h */, 158 | 6D8B70C418E9643200EB1A43 /* LLViewController.m */, 159 | 6D8B70C118E963FE00EB1A43 /* Storyboard.storyboard */, 160 | 6D432C7018E9959B00BC4CDA /* Image Logger */, 161 | 6D25E64B18D0E6070045C3C9 /* Other Sources */, 162 | 6D25E5E618D0E58D0045C3C9 /* Supporting Files */, 163 | 6D25E5F118D0E58D0045C3C9 /* Images.xcassets */, 164 | ); 165 | path = Dynamic; 166 | sourceTree = ""; 167 | }; 168 | 6D25E5E618D0E58D0045C3C9 /* Supporting Files */ = { 169 | isa = PBXGroup; 170 | children = ( 171 | 6D25E5E718D0E58D0045C3C9 /* Info.plist */, 172 | 6D25E5E818D0E58D0045C3C9 /* InfoPlist.strings */, 173 | ); 174 | name = "Supporting Files"; 175 | sourceTree = ""; 176 | }; 177 | 6D25E64218D0E5CD0045C3C9 /* Products */ = { 178 | isa = PBXGroup; 179 | children = ( 180 | 6D25E64718D0E5CD0045C3C9 /* Library.dylib */, 181 | 6DE9FEBC18D0F44E0086D09D /* Framework.framework */, 182 | 6D8B70DD18E96D8F00EB1A43 /* Plugin.llplugin */, 183 | ); 184 | name = Products; 185 | sourceTree = ""; 186 | }; 187 | 6D25E64A18D0E5D00045C3C9 /* Externals */ = { 188 | isa = PBXGroup; 189 | children = ( 190 | 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */, 191 | ); 192 | name = Externals; 193 | sourceTree = ""; 194 | }; 195 | 6D25E64B18D0E6070045C3C9 /* Other Sources */ = { 196 | isa = PBXGroup; 197 | children = ( 198 | 6D25E5EB18D0E58D0045C3C9 /* main.m */, 199 | ); 200 | name = "Other Sources"; 201 | sourceTree = ""; 202 | }; 203 | 6D432C7018E9959B00BC4CDA /* Image Logger */ = { 204 | isa = PBXGroup; 205 | children = ( 206 | 6D432C7118E995AC00BC4CDA /* LLImageLogger.h */, 207 | 6D432C7218E995AC00BC4CDA /* LLImageLogger.m */, 208 | ); 209 | name = "Image Logger"; 210 | sourceTree = ""; 211 | }; 212 | /* End PBXGroup section */ 213 | 214 | /* Begin PBXNativeTarget section */ 215 | 6D25E5DB18D0E58D0045C3C9 /* Dynamic */ = { 216 | isa = PBXNativeTarget; 217 | buildConfigurationList = 6D25E60818D0E58E0045C3C9 /* Build configuration list for PBXNativeTarget "Dynamic" */; 218 | buildPhases = ( 219 | 6D25E5D818D0E58D0045C3C9 /* Sources */, 220 | 6D25E5D918D0E58D0045C3C9 /* Frameworks */, 221 | 6D25E5DA18D0E58D0045C3C9 /* Resources */, 222 | 6DF9BF0318D0EA6400258206 /* Copy Libraries */, 223 | 6DE9FEB918D0F44E0086D09D /* Copy Frameworks */, 224 | ); 225 | buildRules = ( 226 | ); 227 | dependencies = ( 228 | 6D432BF518E981A600BC4CDA /* PBXTargetDependency */, 229 | 6D432BF718E981A600BC4CDA /* PBXTargetDependency */, 230 | ); 231 | name = Dynamic; 232 | productName = Dynamic; 233 | productReference = 6D25E5DC18D0E58D0045C3C9 /* Dynamic.app */; 234 | productType = "com.apple.product-type.application"; 235 | }; 236 | /* End PBXNativeTarget section */ 237 | 238 | /* Begin PBXProject section */ 239 | 6D25E5D418D0E58D0045C3C9 /* Project object */ = { 240 | isa = PBXProject; 241 | attributes = { 242 | CLASSPREFIX = LL; 243 | LastUpgradeCheck = 0510; 244 | ORGANIZATIONNAME = "Damien DeVille"; 245 | }; 246 | buildConfigurationList = 6D25E5D718D0E58D0045C3C9 /* Build configuration list for PBXProject "Dynamic" */; 247 | compatibilityVersion = "Xcode 3.2"; 248 | developmentRegion = English; 249 | hasScannedForEncodings = 0; 250 | knownRegions = ( 251 | en, 252 | ); 253 | mainGroup = 6D25E5D318D0E58D0045C3C9; 254 | productRefGroup = 6D25E5DD18D0E58D0045C3C9 /* Products */; 255 | projectDirPath = ""; 256 | projectReferences = ( 257 | { 258 | ProductGroup = 6D25E64218D0E5CD0045C3C9 /* Products */; 259 | ProjectRef = 6D25E64118D0E5CD0045C3C9 /* Library.xcodeproj */; 260 | }, 261 | ); 262 | projectRoot = ""; 263 | targets = ( 264 | 6D25E5DB18D0E58D0045C3C9 /* Dynamic */, 265 | ); 266 | }; 267 | /* End PBXProject section */ 268 | 269 | /* Begin PBXReferenceProxy section */ 270 | 6D25E64718D0E5CD0045C3C9 /* Library.dylib */ = { 271 | isa = PBXReferenceProxy; 272 | fileType = "compiled.mach-o.dylib"; 273 | path = Library.dylib; 274 | remoteRef = 6D25E64618D0E5CD0045C3C9 /* PBXContainerItemProxy */; 275 | sourceTree = BUILT_PRODUCTS_DIR; 276 | }; 277 | 6D8B70DD18E96D8F00EB1A43 /* Plugin.llplugin */ = { 278 | isa = PBXReferenceProxy; 279 | fileType = wrapper.cfbundle; 280 | path = Plugin.llplugin; 281 | remoteRef = 6D8B70DC18E96D8F00EB1A43 /* PBXContainerItemProxy */; 282 | sourceTree = BUILT_PRODUCTS_DIR; 283 | }; 284 | 6DE9FEBC18D0F44E0086D09D /* Framework.framework */ = { 285 | isa = PBXReferenceProxy; 286 | fileType = wrapper.framework; 287 | path = Framework.framework; 288 | remoteRef = 6DE9FEBB18D0F44E0086D09D /* PBXContainerItemProxy */; 289 | sourceTree = BUILT_PRODUCTS_DIR; 290 | }; 291 | /* End PBXReferenceProxy section */ 292 | 293 | /* Begin PBXResourcesBuildPhase section */ 294 | 6D25E5DA18D0E58D0045C3C9 /* Resources */ = { 295 | isa = PBXResourcesBuildPhase; 296 | buildActionMask = 2147483647; 297 | files = ( 298 | 6D25E5EA18D0E58D0045C3C9 /* InfoPlist.strings in Resources */, 299 | 6D25E5F218D0E58D0045C3C9 /* Images.xcassets in Resources */, 300 | 6D8B70C218E963FE00EB1A43 /* Storyboard.storyboard in Resources */, 301 | ); 302 | runOnlyForDeploymentPostprocessing = 0; 303 | }; 304 | /* End PBXResourcesBuildPhase section */ 305 | 306 | /* Begin PBXSourcesBuildPhase section */ 307 | 6D25E5D818D0E58D0045C3C9 /* Sources */ = { 308 | isa = PBXSourcesBuildPhase; 309 | buildActionMask = 2147483647; 310 | files = ( 311 | 6D25E5F018D0E58D0045C3C9 /* LLAppDelegate.m in Sources */, 312 | 6D432C7318E995AC00BC4CDA /* LLImageLogger.m in Sources */, 313 | 6D25E5EC18D0E58D0045C3C9 /* main.m in Sources */, 314 | 6D8B70C518E9643200EB1A43 /* LLViewController.m in Sources */, 315 | ); 316 | runOnlyForDeploymentPostprocessing = 0; 317 | }; 318 | /* End PBXSourcesBuildPhase section */ 319 | 320 | /* Begin PBXTargetDependency section */ 321 | 6D432BF518E981A600BC4CDA /* PBXTargetDependency */ = { 322 | isa = PBXTargetDependency; 323 | name = Library; 324 | targetProxy = 6D432BF418E981A600BC4CDA /* PBXContainerItemProxy */; 325 | }; 326 | 6D432BF718E981A600BC4CDA /* PBXTargetDependency */ = { 327 | isa = PBXTargetDependency; 328 | name = Framework; 329 | targetProxy = 6D432BF618E981A600BC4CDA /* PBXContainerItemProxy */; 330 | }; 331 | /* End PBXTargetDependency section */ 332 | 333 | /* Begin PBXVariantGroup section */ 334 | 6D25E5E818D0E58D0045C3C9 /* InfoPlist.strings */ = { 335 | isa = PBXVariantGroup; 336 | children = ( 337 | 6D25E5E918D0E58D0045C3C9 /* en */, 338 | ); 339 | name = InfoPlist.strings; 340 | sourceTree = ""; 341 | }; 342 | /* End PBXVariantGroup section */ 343 | 344 | /* Begin XCBuildConfiguration section */ 345 | 6D25E60618D0E58E0045C3C9 /* Debug */ = { 346 | isa = XCBuildConfiguration; 347 | buildSettings = { 348 | ALWAYS_SEARCH_USER_PATHS = NO; 349 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 350 | CLANG_CXX_LIBRARY = "libc++"; 351 | CLANG_ENABLE_MODULES = YES; 352 | CLANG_ENABLE_OBJC_ARC = YES; 353 | CLANG_WARN_BOOL_CONVERSION = YES; 354 | CLANG_WARN_CONSTANT_CONVERSION = YES; 355 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 356 | CLANG_WARN_EMPTY_BODY = YES; 357 | CLANG_WARN_ENUM_CONVERSION = YES; 358 | CLANG_WARN_INT_CONVERSION = YES; 359 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 360 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 361 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 362 | COPY_PHASE_STRIP = NO; 363 | GCC_C_LANGUAGE_STANDARD = gnu99; 364 | GCC_DYNAMIC_NO_PIC = NO; 365 | GCC_OPTIMIZATION_LEVEL = 0; 366 | GCC_PREPROCESSOR_DEFINITIONS = ( 367 | "DEBUG=1", 368 | "$(inherited)", 369 | ); 370 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 371 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 372 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 373 | GCC_WARN_UNDECLARED_SELECTOR = YES; 374 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 375 | GCC_WARN_UNUSED_FUNCTION = YES; 376 | GCC_WARN_UNUSED_VARIABLE = YES; 377 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 378 | ONLY_ACTIVE_ARCH = YES; 379 | SDKROOT = iphoneos; 380 | }; 381 | name = Debug; 382 | }; 383 | 6D25E60718D0E58E0045C3C9 /* Release */ = { 384 | isa = XCBuildConfiguration; 385 | buildSettings = { 386 | ALWAYS_SEARCH_USER_PATHS = NO; 387 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 388 | CLANG_CXX_LIBRARY = "libc++"; 389 | CLANG_ENABLE_MODULES = YES; 390 | CLANG_ENABLE_OBJC_ARC = YES; 391 | CLANG_WARN_BOOL_CONVERSION = YES; 392 | CLANG_WARN_CONSTANT_CONVERSION = YES; 393 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 394 | CLANG_WARN_EMPTY_BODY = YES; 395 | CLANG_WARN_ENUM_CONVERSION = YES; 396 | CLANG_WARN_INT_CONVERSION = YES; 397 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 398 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 399 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 400 | COPY_PHASE_STRIP = YES; 401 | ENABLE_NS_ASSERTIONS = NO; 402 | GCC_C_LANGUAGE_STANDARD = gnu99; 403 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 404 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 405 | GCC_WARN_UNDECLARED_SELECTOR = YES; 406 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 407 | GCC_WARN_UNUSED_FUNCTION = YES; 408 | GCC_WARN_UNUSED_VARIABLE = YES; 409 | IPHONEOS_DEPLOYMENT_TARGET = 7.1; 410 | SDKROOT = iphoneos; 411 | VALIDATE_PRODUCT = YES; 412 | }; 413 | name = Release; 414 | }; 415 | 6D25E60918D0E58E0045C3C9 /* Debug */ = { 416 | isa = XCBuildConfiguration; 417 | buildSettings = { 418 | ALWAYS_SEARCH_USER_PATHS = YES; 419 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 420 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 421 | INFOPLIST_FILE = Dynamic/Info.plist; 422 | PRODUCT_NAME = "$(TARGET_NAME)"; 423 | USER_HEADER_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/usr/local/include"; 424 | WRAPPER_EXTENSION = app; 425 | }; 426 | name = Debug; 427 | }; 428 | 6D25E60A18D0E58E0045C3C9 /* Release */ = { 429 | isa = XCBuildConfiguration; 430 | buildSettings = { 431 | ALWAYS_SEARCH_USER_PATHS = YES; 432 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 433 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; 434 | INFOPLIST_FILE = Dynamic/Info.plist; 435 | PRODUCT_NAME = "$(TARGET_NAME)"; 436 | USER_HEADER_SEARCH_PATHS = "$(CONFIGURATION_BUILD_DIR)/usr/local/include"; 437 | WRAPPER_EXTENSION = app; 438 | }; 439 | name = Release; 440 | }; 441 | /* End XCBuildConfiguration section */ 442 | 443 | /* Begin XCConfigurationList section */ 444 | 6D25E5D718D0E58D0045C3C9 /* Build configuration list for PBXProject "Dynamic" */ = { 445 | isa = XCConfigurationList; 446 | buildConfigurations = ( 447 | 6D25E60618D0E58E0045C3C9 /* Debug */, 448 | 6D25E60718D0E58E0045C3C9 /* Release */, 449 | ); 450 | defaultConfigurationIsVisible = 0; 451 | defaultConfigurationName = Release; 452 | }; 453 | 6D25E60818D0E58E0045C3C9 /* Build configuration list for PBXNativeTarget "Dynamic" */ = { 454 | isa = XCConfigurationList; 455 | buildConfigurations = ( 456 | 6D25E60918D0E58E0045C3C9 /* Debug */, 457 | 6D25E60A18D0E58E0045C3C9 /* Release */, 458 | ); 459 | defaultConfigurationIsVisible = 0; 460 | defaultConfigurationName = Release; 461 | }; 462 | /* End XCConfigurationList section */ 463 | }; 464 | rootObject = 6D25E5D418D0E58D0045C3C9 /* Project object */; 465 | } 466 | -------------------------------------------------------------------------------- /Dynamic.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Dynamic.xcodeproj/xcshareddata/xcschemes/Dynamic.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 51 | 52 | 58 | 59 | 60 | 61 | 62 | 63 | 69 | 70 | 76 | 77 | 78 | 79 | 81 | 82 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /Dynamic/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "40x40", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "60x60", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Dynamic/Images.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "portrait", 5 | "idiom" : "iphone", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "7.0", 8 | "scale" : "2x" 9 | }, 10 | { 11 | "orientation" : "portrait", 12 | "idiom" : "iphone", 13 | "subtype" : "retina4", 14 | "extent" : "full-screen", 15 | "minimum-system-version" : "7.0", 16 | "scale" : "2x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Dynamic/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIdentifier 12 | com.ddeville.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1.0 25 | LSRequiresIPhoneOS 26 | 27 | UIFileSharingEnabled 28 | 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UTImportedTypeDeclarations 40 | 41 | 42 | LSTypeIsPackage 43 | 44 | UTTypeConformsTo 45 | 46 | com.apple.bundle 47 | com.apple.package 48 | 49 | UTTypeDescription 50 | LLPlugin 51 | UTTypeIdentifier 52 | com.ddeville.llplugin 53 | UTTypeTagSpecification 54 | 55 | public.filename-extension 56 | 57 | llplugin 58 | 59 | 60 | 61 | 62 | 63 | 64 | -------------------------------------------------------------------------------- /Dynamic/LLAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLAppDelegate.h 3 | // Dynamic 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LLAppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Dynamic/LLAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLAppDelegate.m 3 | // Dynamic 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import "LLAppDelegate.h" 10 | 11 | @implementation LLAppDelegate 12 | 13 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 | { 15 | UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 16 | [window setBackgroundColor:[UIColor whiteColor]]; 17 | [self setWindow:window]; 18 | 19 | UIViewController *viewController = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:[NSBundle mainBundle]] instantiateInitialViewController]; 20 | [window setRootViewController:viewController]; 21 | 22 | [window makeKeyAndVisible]; 23 | 24 | return YES; 25 | } 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Dynamic/LLViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LLViewController.h 3 | // Dynamic 4 | // 5 | // Created by Damien DeVille on 3/31/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface LLViewController : UITableViewController 12 | 13 | - (IBAction)sayHelloDynamic:(id)sender; 14 | - (IBAction)sayHelloFramework:(id)sender; 15 | 16 | - (IBAction)loadPlugins:(id)sender; 17 | - (IBAction)sayHelloPlugin:(id)sender; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Dynamic/LLViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // LLViewController.m 3 | // Dynamic 4 | // 5 | // Created by Damien DeVille on 3/31/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import "LLViewController.h" 10 | 11 | #import 12 | 13 | #import "Library.h" 14 | 15 | #import "Framework/Framework.h" 16 | 17 | @interface NSObject (PluginInterface) 18 | 19 | - (void)sayHello; 20 | 21 | @end 22 | 23 | #pragma mark - 24 | 25 | @interface LLViewController () 26 | 27 | @property (strong, nonatomic) NSSet *pluginIdentifiers; 28 | 29 | @end 30 | 31 | @implementation LLViewController 32 | 33 | - (void)viewDidLoad 34 | { 35 | [super viewDidLoad]; 36 | 37 | [self setTitle:NSLocalizedString(@"Greetings", @"LLViewController title")]; 38 | } 39 | 40 | #pragma mark - Actions 41 | 42 | - (IBAction)sayHelloDynamic:(id)sender 43 | { 44 | Library *library = [[Library alloc] init]; 45 | [library sayHello]; 46 | } 47 | 48 | - (IBAction)sayHelloFramework:(id)sender 49 | { 50 | Framework *framework = [[Framework alloc] init]; 51 | [framework sayHello]; 52 | } 53 | 54 | static NSString * const LLPluginTypeIdentifier = @"com.ddeville.llplugin"; 55 | 56 | - (IBAction)loadPlugins:(id)sender 57 | { 58 | NSURL *documentsLocation = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]]; 59 | 60 | NSArray *contents = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:documentsLocation includingPropertiesForKeys:@[NSFileType] options:(NSDirectoryEnumerationOptions)0 error:NULL]; 61 | 62 | __block BOOL foundPlugin = NO; 63 | 64 | [contents enumerateObjectsUsingBlock:^ (NSURL *fileURL, NSUInteger idx, BOOL *stop) { 65 | NSString *fileType = [fileURL resourceValuesForKeys:@[NSURLTypeIdentifierKey] error:NULL][NSURLTypeIdentifierKey]; 66 | if (fileType == nil) { 67 | return; 68 | } 69 | if (!UTTypeConformsTo((__bridge CFStringRef)fileType, (__bridge CFStringRef)LLPluginTypeIdentifier)) { 70 | return; 71 | } 72 | 73 | [self _loadPluginAtLocation:fileURL]; 74 | foundPlugin = YES; 75 | }]; 76 | 77 | if (!foundPlugin) { 78 | [self _showAlert:@"Couldn\u2019t Find Plugin" message:@"No plugin could be found. Make sure that you manually copy a plugin into the Documents directory."]; 79 | } 80 | } 81 | 82 | - (IBAction)sayHelloPlugin:(id)sender 83 | { 84 | NSString *pluginIdentifier = [[self pluginIdentifiers] anyObject]; 85 | if (pluginIdentifier == nil) { 86 | [self _showAlert:@"No Plugin Loaded" message:@"Please load the plugins first."]; 87 | return; 88 | } 89 | 90 | NSBundle *plugin = [NSBundle bundleWithIdentifier:pluginIdentifier]; 91 | 92 | id pluginInstance = [[[plugin principalClass] alloc] init]; 93 | if (![pluginInstance respondsToSelector:@selector(sayHello)]) { 94 | [self _showAlert:@"Unexpected Plugin" message:@"The plugin doesn\u2019t have the expected type."]; 95 | return; 96 | } 97 | 98 | [pluginInstance sayHello]; 99 | } 100 | 101 | #pragma mark - Private 102 | 103 | - (void)_loadPluginAtLocation:(NSURL *)pluginLocation 104 | { 105 | NSBundle *plugin = [[NSBundle alloc] initWithURL:pluginLocation]; 106 | 107 | NSError *preflightError = nil; 108 | BOOL preflight = [plugin preflightAndReturnError:&preflightError]; 109 | if (!preflight) { 110 | [self _showAlert:@"Cannot Load Plugin" message:[NSString stringWithFormat:@"The plugin couldn\u2019t be preflighted: %@", [preflightError localizedDescription]]]; 111 | return; 112 | } 113 | 114 | BOOL loaded = [plugin load]; 115 | if (!loaded) { 116 | [self _showAlert:@"Cannot Load Plugin" message:@"The plugin couldn\u2019t be loaded."]; 117 | return; 118 | } 119 | 120 | Class pluginClass = [plugin principalClass]; 121 | if (pluginClass == nil) { 122 | [self _showAlert:@"Cannot Load plugin" message:@"The plugin principal class couldn\u2019t be retrieved."]; 123 | return; 124 | } 125 | 126 | NSString *pluginIdentifier = [plugin bundleIdentifier]; 127 | if (pluginIdentifier == nil) { 128 | [self _showAlert:@"Cannot Load plugin" message:@"The plugin bundle identifier couldn\u2019t be retrieved."]; 129 | return; 130 | } 131 | 132 | NSMutableSet *pluginIdentifiers = [NSMutableSet setWithSet:[self pluginIdentifiers]]; 133 | [pluginIdentifiers addObject:pluginIdentifier]; 134 | [self setPluginIdentifiers:pluginIdentifiers]; 135 | 136 | [self _showAlert:@"Plugin Loaded!" message:[NSString stringWithFormat:@"The plugin with bundle identifier %@ was loaded.", pluginIdentifier]]; 137 | } 138 | 139 | - (void)_showAlert:(NSString *)title message:(NSString *)message 140 | { 141 | UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 142 | [alert show]; 143 | } 144 | 145 | #pragma mark - UITableViewDelegate 146 | 147 | - (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath 148 | { 149 | return NO; 150 | } 151 | 152 | @end 153 | -------------------------------------------------------------------------------- /Dynamic/Storyboard.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | -------------------------------------------------------------------------------- /Dynamic/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Dynamic/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Dynamic 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "LLAppDelegate.h" 12 | 13 | int main(int argc, char * argv[]) 14 | { 15 | @autoreleasepool { 16 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([LLAppDelegate class])); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Externals/Library/Framework/Data.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | message 6 | This message was loaded from a file inside a framework bundle and shown by its executable! 7 | 8 | 9 | -------------------------------------------------------------------------------- /Externals/Library/Framework/Framework.h: -------------------------------------------------------------------------------- 1 | // 2 | // Framework.h 3 | // Framework 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Framework : NSObject 12 | 13 | - (void)sayHello; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Externals/Library/Framework/Framework.m: -------------------------------------------------------------------------------- 1 | // 2 | // Framework.m 3 | // Framework 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import "Framework.h" 10 | 11 | #import 12 | 13 | @implementation Framework 14 | 15 | - (void)sayHello 16 | { 17 | NSURL *plistLocation = [[NSBundle bundleForClass:[self class]] URLForResource:@"Data" withExtension:@"plist"]; 18 | NSDictionary *data = [NSDictionary dictionaryWithContentsOfURL:plistLocation]; 19 | NSString *message = data[@"message"]; 20 | 21 | UIAlertView *alertView = [[UIAlertView alloc] init]; 22 | [alertView setTitle:@"Oh Hai"]; 23 | [alertView setMessage:message]; 24 | [alertView addButtonWithTitle:@"OK"]; 25 | [alertView show]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Externals/Library/Framework/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.ddeville.${PRODUCT_NAME:rfc1034identifier} 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSHumanReadableCopyright 26 | Copyright © 2014 Damien DeVille. All rights reserved. 27 | NSPrincipalClass 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Externals/Library/Framework/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /Externals/Library/Library.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6D25E62518D0E5B60045C3C9 /* Library.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D25E62418D0E5B60045C3C9 /* Library.m */; }; 11 | 6D8B70D618E96D2200EB1A43 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6D8B70D418E96D2200EB1A43 /* InfoPlist.strings */; }; 12 | 6D9DCBEB18E96EBF000FEFC6 /* Plugin.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D9DCBEA18E96EBF000FEFC6 /* Plugin.m */; }; 13 | 6D9DCBEC18E96EE3000FEFC6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF9BF0518D0EBC300258206 /* UIKit.framework */; }; 14 | 6D9DCBED18E96EE8000FEFC6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D25E61D18D0E5B60045C3C9 /* Foundation.framework */; }; 15 | 6D9DCC2518E9767D000FEFC6 /* Data.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6D9DCC2418E9767D000FEFC6 /* Data.plist */; }; 16 | 6DE9FEB518D0F3770086D09D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF9BF0518D0EBC300258206 /* UIKit.framework */; }; 17 | 6DE9FEB818D0F3B50086D09D /* Data.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6DE9FEB718D0F3B50086D09D /* Data.plist */; }; 18 | 6DE9FEC118D0F4880086D09D /* Framework.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DF9BF8518D0F25A00258206 /* Framework.h */; settings = {ATTRIBUTES = (Public, ); }; }; 19 | 6DF9BEFE18D0E9A400258206 /* Library.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D25E62318D0E5B60045C3C9 /* Library.h */; settings = {ATTRIBUTES = (Public, ); }; }; 20 | 6DF9BF0618D0EBC300258206 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DF9BF0518D0EBC300258206 /* UIKit.framework */; }; 21 | 6DF9BF8318D0F25A00258206 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6DF9BF8118D0F25A00258206 /* InfoPlist.strings */; }; 22 | 6DF9BF8718D0F25A00258206 /* Framework.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DF9BF8618D0F25A00258206 /* Framework.m */; }; 23 | /* End PBXBuildFile section */ 24 | 25 | /* Begin PBXFileReference section */ 26 | 6D25E61718D0E5B60045C3C9 /* Library.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = Library.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 27 | 6D25E61D18D0E5B60045C3C9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 28 | 6D25E62318D0E5B60045C3C9 /* Library.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Library.h; sourceTree = ""; }; 29 | 6D25E62418D0E5B60045C3C9 /* Library.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Library.m; sourceTree = ""; }; 30 | 6D8B70CA18E96D2200EB1A43 /* Plugin.llplugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Plugin.llplugin; sourceTree = BUILT_PRODUCTS_DIR; }; 31 | 6D8B70CB18E96D2200EB1A43 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = Library/Frameworks/Cocoa.framework; sourceTree = DEVELOPER_DIR; }; 32 | 6D8B70CE18E96D2200EB1A43 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 33 | 6D8B70CF18E96D2200EB1A43 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; 34 | 6D8B70D018E96D2200EB1A43 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; 35 | 6D8B70D318E96D2200EB1A43 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 36 | 6D8B70D518E96D2200EB1A43 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 37 | 6D9DCBE918E96EBF000FEFC6 /* Plugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Plugin.h; sourceTree = ""; }; 38 | 6D9DCBEA18E96EBF000FEFC6 /* Plugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Plugin.m; sourceTree = ""; }; 39 | 6D9DCC2418E9767D000FEFC6 /* Data.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Data.plist; sourceTree = ""; }; 40 | 6DE9FEB718D0F3B50086D09D /* Data.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Data.plist; sourceTree = ""; }; 41 | 6DF9BF0518D0EBC300258206 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 42 | 6DF9BF7718D0F25900258206 /* Framework.framework */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.framework; path = Framework.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 6DF9BF8018D0F25A00258206 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44 | 6DF9BF8218D0F25A00258206 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 45 | 6DF9BF8518D0F25A00258206 /* Framework.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Framework.h; sourceTree = ""; }; 46 | 6DF9BF8618D0F25A00258206 /* Framework.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Framework.m; sourceTree = ""; }; 47 | /* End PBXFileReference section */ 48 | 49 | /* Begin PBXFrameworksBuildPhase section */ 50 | 6D25E61418D0E5B60045C3C9 /* Frameworks */ = { 51 | isa = PBXFrameworksBuildPhase; 52 | buildActionMask = 2147483647; 53 | files = ( 54 | 6DF9BF0618D0EBC300258206 /* UIKit.framework in Frameworks */, 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | 6D8B70C718E96D2200EB1A43 /* Frameworks */ = { 59 | isa = PBXFrameworksBuildPhase; 60 | buildActionMask = 2147483647; 61 | files = ( 62 | 6D9DCBED18E96EE8000FEFC6 /* Foundation.framework in Frameworks */, 63 | 6D9DCBEC18E96EE3000FEFC6 /* UIKit.framework in Frameworks */, 64 | ); 65 | runOnlyForDeploymentPostprocessing = 0; 66 | }; 67 | 6DF9BF7318D0F25900258206 /* Frameworks */ = { 68 | isa = PBXFrameworksBuildPhase; 69 | buildActionMask = 2147483647; 70 | files = ( 71 | 6DE9FEB518D0F3770086D09D /* UIKit.framework in Frameworks */, 72 | ); 73 | runOnlyForDeploymentPostprocessing = 0; 74 | }; 75 | /* End PBXFrameworksBuildPhase section */ 76 | 77 | /* Begin PBXGroup section */ 78 | 6D25E60E18D0E5B60045C3C9 = { 79 | isa = PBXGroup; 80 | children = ( 81 | 6D25E62018D0E5B60045C3C9 /* Library */, 82 | 6DF9BF7E18D0F25A00258206 /* Framework */, 83 | 6D8B70D118E96D2200EB1A43 /* Plugin */, 84 | 6D25E61918D0E5B60045C3C9 /* Frameworks */, 85 | 6D25E61818D0E5B60045C3C9 /* Products */, 86 | ); 87 | sourceTree = ""; 88 | }; 89 | 6D25E61818D0E5B60045C3C9 /* Products */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 6D25E61718D0E5B60045C3C9 /* Library.dylib */, 93 | 6DF9BF7718D0F25900258206 /* Framework.framework */, 94 | 6D8B70CA18E96D2200EB1A43 /* Plugin.llplugin */, 95 | ); 96 | name = Products; 97 | sourceTree = ""; 98 | }; 99 | 6D25E61918D0E5B60045C3C9 /* Frameworks */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 6DF9BF0518D0EBC300258206 /* UIKit.framework */, 103 | 6D25E61D18D0E5B60045C3C9 /* Foundation.framework */, 104 | 6D8B70CB18E96D2200EB1A43 /* Cocoa.framework */, 105 | 6D8B70CD18E96D2200EB1A43 /* Other Frameworks */, 106 | ); 107 | name = Frameworks; 108 | sourceTree = ""; 109 | }; 110 | 6D25E62018D0E5B60045C3C9 /* Library */ = { 111 | isa = PBXGroup; 112 | children = ( 113 | 6D25E62318D0E5B60045C3C9 /* Library.h */, 114 | 6D25E62418D0E5B60045C3C9 /* Library.m */, 115 | ); 116 | path = Library; 117 | sourceTree = ""; 118 | }; 119 | 6D8B70CD18E96D2200EB1A43 /* Other Frameworks */ = { 120 | isa = PBXGroup; 121 | children = ( 122 | 6D8B70CE18E96D2200EB1A43 /* Foundation.framework */, 123 | 6D8B70CF18E96D2200EB1A43 /* CoreData.framework */, 124 | 6D8B70D018E96D2200EB1A43 /* AppKit.framework */, 125 | ); 126 | name = "Other Frameworks"; 127 | sourceTree = ""; 128 | }; 129 | 6D8B70D118E96D2200EB1A43 /* Plugin */ = { 130 | isa = PBXGroup; 131 | children = ( 132 | 6D9DCBE918E96EBF000FEFC6 /* Plugin.h */, 133 | 6D9DCBEA18E96EBF000FEFC6 /* Plugin.m */, 134 | 6D8B70D218E96D2200EB1A43 /* Supporting Files */, 135 | 6D9DCC2318E9766F000FEFC6 /* Resources */, 136 | ); 137 | path = Plugin; 138 | sourceTree = ""; 139 | }; 140 | 6D8B70D218E96D2200EB1A43 /* Supporting Files */ = { 141 | isa = PBXGroup; 142 | children = ( 143 | 6D8B70D318E96D2200EB1A43 /* Info.plist */, 144 | 6D8B70D418E96D2200EB1A43 /* InfoPlist.strings */, 145 | ); 146 | name = "Supporting Files"; 147 | sourceTree = ""; 148 | }; 149 | 6D9DCC2318E9766F000FEFC6 /* Resources */ = { 150 | isa = PBXGroup; 151 | children = ( 152 | 6D9DCC2418E9767D000FEFC6 /* Data.plist */, 153 | ); 154 | name = Resources; 155 | sourceTree = ""; 156 | }; 157 | 6DE9FEB618D0F3A40086D09D /* Resources */ = { 158 | isa = PBXGroup; 159 | children = ( 160 | 6DE9FEB718D0F3B50086D09D /* Data.plist */, 161 | ); 162 | name = Resources; 163 | sourceTree = ""; 164 | }; 165 | 6DF9BF7E18D0F25A00258206 /* Framework */ = { 166 | isa = PBXGroup; 167 | children = ( 168 | 6DF9BF8518D0F25A00258206 /* Framework.h */, 169 | 6DF9BF8618D0F25A00258206 /* Framework.m */, 170 | 6DF9BF7F18D0F25A00258206 /* Supporting Files */, 171 | 6DE9FEB618D0F3A40086D09D /* Resources */, 172 | ); 173 | path = Framework; 174 | sourceTree = ""; 175 | }; 176 | 6DF9BF7F18D0F25A00258206 /* Supporting Files */ = { 177 | isa = PBXGroup; 178 | children = ( 179 | 6DF9BF8018D0F25A00258206 /* Info.plist */, 180 | 6DF9BF8118D0F25A00258206 /* InfoPlist.strings */, 181 | ); 182 | name = "Supporting Files"; 183 | sourceTree = ""; 184 | }; 185 | /* End PBXGroup section */ 186 | 187 | /* Begin PBXHeadersBuildPhase section */ 188 | 6D25E61518D0E5B60045C3C9 /* Headers */ = { 189 | isa = PBXHeadersBuildPhase; 190 | buildActionMask = 2147483647; 191 | files = ( 192 | 6DF9BEFE18D0E9A400258206 /* Library.h in Headers */, 193 | ); 194 | runOnlyForDeploymentPostprocessing = 0; 195 | }; 196 | 6DF9BF7418D0F25900258206 /* Headers */ = { 197 | isa = PBXHeadersBuildPhase; 198 | buildActionMask = 2147483647; 199 | files = ( 200 | 6DE9FEC118D0F4880086D09D /* Framework.h in Headers */, 201 | ); 202 | runOnlyForDeploymentPostprocessing = 0; 203 | }; 204 | /* End PBXHeadersBuildPhase section */ 205 | 206 | /* Begin PBXNativeTarget section */ 207 | 6D25E61618D0E5B60045C3C9 /* Library */ = { 208 | isa = PBXNativeTarget; 209 | buildConfigurationList = 6D25E63B18D0E5B70045C3C9 /* Build configuration list for PBXNativeTarget "Library" */; 210 | buildPhases = ( 211 | 6D25E61318D0E5B60045C3C9 /* Sources */, 212 | 6D25E61418D0E5B60045C3C9 /* Frameworks */, 213 | 6D25E61518D0E5B60045C3C9 /* Headers */, 214 | ); 215 | buildRules = ( 216 | ); 217 | dependencies = ( 218 | ); 219 | name = Library; 220 | productName = Library; 221 | productReference = 6D25E61718D0E5B60045C3C9 /* Library.dylib */; 222 | productType = "com.apple.product-type.library.dynamic"; 223 | }; 224 | 6D8B70C918E96D2200EB1A43 /* Plugin */ = { 225 | isa = PBXNativeTarget; 226 | buildConfigurationList = 6D8B70DA18E96D2200EB1A43 /* Build configuration list for PBXNativeTarget "Plugin" */; 227 | buildPhases = ( 228 | 6D8B70C618E96D2200EB1A43 /* Sources */, 229 | 6D8B70C718E96D2200EB1A43 /* Frameworks */, 230 | 6D8B70C818E96D2200EB1A43 /* Resources */, 231 | ); 232 | buildRules = ( 233 | ); 234 | dependencies = ( 235 | ); 236 | name = Plugin; 237 | productName = Plugin; 238 | productReference = 6D8B70CA18E96D2200EB1A43 /* Plugin.llplugin */; 239 | productType = "com.apple.product-type.bundle"; 240 | }; 241 | 6DF9BF7618D0F25900258206 /* Framework */ = { 242 | isa = PBXNativeTarget; 243 | buildConfigurationList = 6DF9BF9B18D0F25A00258206 /* Build configuration list for PBXNativeTarget "Framework" */; 244 | buildPhases = ( 245 | 6DF9BF7218D0F25900258206 /* Sources */, 246 | 6DF9BF7318D0F25900258206 /* Frameworks */, 247 | 6DF9BF7418D0F25900258206 /* Headers */, 248 | 6DF9BF7518D0F25900258206 /* Resources */, 249 | ); 250 | buildRules = ( 251 | ); 252 | dependencies = ( 253 | ); 254 | name = Framework; 255 | productName = Framework; 256 | productReference = 6DF9BF7718D0F25900258206 /* Framework.framework */; 257 | productType = "com.apple.product-type.framework"; 258 | }; 259 | /* End PBXNativeTarget section */ 260 | 261 | /* Begin PBXProject section */ 262 | 6D25E60F18D0E5B60045C3C9 /* Project object */ = { 263 | isa = PBXProject; 264 | attributes = { 265 | LastUpgradeCheck = 0510; 266 | ORGANIZATIONNAME = "Damien DeVille"; 267 | }; 268 | buildConfigurationList = 6D25E61218D0E5B60045C3C9 /* Build configuration list for PBXProject "Library" */; 269 | compatibilityVersion = "Xcode 3.2"; 270 | developmentRegion = English; 271 | hasScannedForEncodings = 0; 272 | knownRegions = ( 273 | en, 274 | ); 275 | mainGroup = 6D25E60E18D0E5B60045C3C9; 276 | productRefGroup = 6D25E61818D0E5B60045C3C9 /* Products */; 277 | projectDirPath = ""; 278 | projectRoot = ""; 279 | targets = ( 280 | 6D25E61618D0E5B60045C3C9 /* Library */, 281 | 6DF9BF7618D0F25900258206 /* Framework */, 282 | 6D8B70C918E96D2200EB1A43 /* Plugin */, 283 | ); 284 | }; 285 | /* End PBXProject section */ 286 | 287 | /* Begin PBXResourcesBuildPhase section */ 288 | 6D8B70C818E96D2200EB1A43 /* Resources */ = { 289 | isa = PBXResourcesBuildPhase; 290 | buildActionMask = 2147483647; 291 | files = ( 292 | 6D9DCC2518E9767D000FEFC6 /* Data.plist in Resources */, 293 | 6D8B70D618E96D2200EB1A43 /* InfoPlist.strings in Resources */, 294 | ); 295 | runOnlyForDeploymentPostprocessing = 0; 296 | }; 297 | 6DF9BF7518D0F25900258206 /* Resources */ = { 298 | isa = PBXResourcesBuildPhase; 299 | buildActionMask = 2147483647; 300 | files = ( 301 | 6DE9FEB818D0F3B50086D09D /* Data.plist in Resources */, 302 | 6DF9BF8318D0F25A00258206 /* InfoPlist.strings in Resources */, 303 | ); 304 | runOnlyForDeploymentPostprocessing = 0; 305 | }; 306 | /* End PBXResourcesBuildPhase section */ 307 | 308 | /* Begin PBXSourcesBuildPhase section */ 309 | 6D25E61318D0E5B60045C3C9 /* Sources */ = { 310 | isa = PBXSourcesBuildPhase; 311 | buildActionMask = 2147483647; 312 | files = ( 313 | 6D25E62518D0E5B60045C3C9 /* Library.m in Sources */, 314 | ); 315 | runOnlyForDeploymentPostprocessing = 0; 316 | }; 317 | 6D8B70C618E96D2200EB1A43 /* Sources */ = { 318 | isa = PBXSourcesBuildPhase; 319 | buildActionMask = 2147483647; 320 | files = ( 321 | 6D9DCBEB18E96EBF000FEFC6 /* Plugin.m in Sources */, 322 | ); 323 | runOnlyForDeploymentPostprocessing = 0; 324 | }; 325 | 6DF9BF7218D0F25900258206 /* Sources */ = { 326 | isa = PBXSourcesBuildPhase; 327 | buildActionMask = 2147483647; 328 | files = ( 329 | 6DF9BF8718D0F25A00258206 /* Framework.m in Sources */, 330 | ); 331 | runOnlyForDeploymentPostprocessing = 0; 332 | }; 333 | /* End PBXSourcesBuildPhase section */ 334 | 335 | /* Begin PBXVariantGroup section */ 336 | 6D8B70D418E96D2200EB1A43 /* InfoPlist.strings */ = { 337 | isa = PBXVariantGroup; 338 | children = ( 339 | 6D8B70D518E96D2200EB1A43 /* en */, 340 | ); 341 | name = InfoPlist.strings; 342 | sourceTree = ""; 343 | }; 344 | 6DF9BF8118D0F25A00258206 /* InfoPlist.strings */ = { 345 | isa = PBXVariantGroup; 346 | children = ( 347 | 6DF9BF8218D0F25A00258206 /* en */, 348 | ); 349 | name = InfoPlist.strings; 350 | sourceTree = ""; 351 | }; 352 | /* End PBXVariantGroup section */ 353 | 354 | /* Begin XCBuildConfiguration section */ 355 | 6D25E63918D0E5B70045C3C9 /* Debug */ = { 356 | isa = XCBuildConfiguration; 357 | buildSettings = { 358 | ALWAYS_SEARCH_USER_PATHS = NO; 359 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 360 | CLANG_CXX_LIBRARY = "libc++"; 361 | CLANG_ENABLE_MODULES = YES; 362 | CLANG_ENABLE_OBJC_ARC = YES; 363 | CLANG_WARN_BOOL_CONVERSION = YES; 364 | CLANG_WARN_CONSTANT_CONVERSION = YES; 365 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 366 | CLANG_WARN_EMPTY_BODY = YES; 367 | CLANG_WARN_ENUM_CONVERSION = YES; 368 | CLANG_WARN_INT_CONVERSION = YES; 369 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 370 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 371 | COPY_PHASE_STRIP = NO; 372 | GCC_C_LANGUAGE_STANDARD = gnu99; 373 | GCC_DYNAMIC_NO_PIC = NO; 374 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 375 | GCC_OPTIMIZATION_LEVEL = 0; 376 | GCC_PREPROCESSOR_DEFINITIONS = ( 377 | "DEBUG=1", 378 | "$(inherited)", 379 | ); 380 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 381 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 382 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 383 | GCC_WARN_UNDECLARED_SELECTOR = YES; 384 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 385 | GCC_WARN_UNUSED_FUNCTION = YES; 386 | GCC_WARN_UNUSED_VARIABLE = YES; 387 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 388 | ONLY_ACTIVE_ARCH = YES; 389 | SDKROOT = iphoneos; 390 | SKIP_INSTALL = YES; 391 | SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; 392 | }; 393 | name = Debug; 394 | }; 395 | 6D25E63A18D0E5B70045C3C9 /* Release */ = { 396 | isa = XCBuildConfiguration; 397 | buildSettings = { 398 | ALWAYS_SEARCH_USER_PATHS = NO; 399 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 400 | CLANG_CXX_LIBRARY = "libc++"; 401 | CLANG_ENABLE_MODULES = YES; 402 | CLANG_ENABLE_OBJC_ARC = YES; 403 | CLANG_WARN_BOOL_CONVERSION = YES; 404 | CLANG_WARN_CONSTANT_CONVERSION = YES; 405 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 406 | CLANG_WARN_EMPTY_BODY = YES; 407 | CLANG_WARN_ENUM_CONVERSION = YES; 408 | CLANG_WARN_INT_CONVERSION = YES; 409 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 410 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 411 | COPY_PHASE_STRIP = YES; 412 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 413 | ENABLE_NS_ASSERTIONS = NO; 414 | GCC_C_LANGUAGE_STANDARD = gnu99; 415 | GCC_ENABLE_OBJC_EXCEPTIONS = YES; 416 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 417 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 418 | GCC_WARN_UNDECLARED_SELECTOR = YES; 419 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 420 | GCC_WARN_UNUSED_FUNCTION = YES; 421 | GCC_WARN_UNUSED_VARIABLE = YES; 422 | IPHONEOS_DEPLOYMENT_TARGET = 7.0; 423 | SDKROOT = iphoneos; 424 | SKIP_INSTALL = YES; 425 | SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; 426 | }; 427 | name = Release; 428 | }; 429 | 6D25E63C18D0E5B70045C3C9 /* Debug */ = { 430 | isa = XCBuildConfiguration; 431 | buildSettings = { 432 | DYLIB_COMPATIBILITY_VERSION = 1; 433 | DYLIB_CURRENT_VERSION = 1; 434 | INSTALL_PATH = "@executable_path"; 435 | PRODUCT_NAME = "$(TARGET_NAME)"; 436 | }; 437 | name = Debug; 438 | }; 439 | 6D25E63D18D0E5B70045C3C9 /* Release */ = { 440 | isa = XCBuildConfiguration; 441 | buildSettings = { 442 | DYLIB_COMPATIBILITY_VERSION = 1; 443 | DYLIB_CURRENT_VERSION = 1; 444 | INSTALL_PATH = "@executable_path"; 445 | PRODUCT_NAME = "$(TARGET_NAME)"; 446 | }; 447 | name = Release; 448 | }; 449 | 6D8B70D818E96D2200EB1A43 /* Debug */ = { 450 | isa = XCBuildConfiguration; 451 | buildSettings = { 452 | COMBINE_HIDPI_IMAGES = YES; 453 | FRAMEWORK_SEARCH_PATHS = ( 454 | "$(inherited)", 455 | "$(DEVELOPER_FRAMEWORKS_DIR)", 456 | ); 457 | GCC_PREPROCESSOR_DEFINITIONS = ( 458 | "DEBUG=1", 459 | "$(inherited)", 460 | ); 461 | INFOPLIST_FILE = Plugin/Info.plist; 462 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; 463 | MACOSX_DEPLOYMENT_TARGET = 10.9; 464 | PRODUCT_NAME = "$(TARGET_NAME)"; 465 | SDKROOT = iphoneos; 466 | WRAPPER_EXTENSION = llplugin; 467 | }; 468 | name = Debug; 469 | }; 470 | 6D8B70D918E96D2200EB1A43 /* Release */ = { 471 | isa = XCBuildConfiguration; 472 | buildSettings = { 473 | COMBINE_HIDPI_IMAGES = YES; 474 | FRAMEWORK_SEARCH_PATHS = ( 475 | "$(inherited)", 476 | "$(DEVELOPER_FRAMEWORKS_DIR)", 477 | ); 478 | INFOPLIST_FILE = Plugin/Info.plist; 479 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; 480 | MACOSX_DEPLOYMENT_TARGET = 10.9; 481 | PRODUCT_NAME = "$(TARGET_NAME)"; 482 | SDKROOT = iphoneos; 483 | WRAPPER_EXTENSION = llplugin; 484 | }; 485 | name = Release; 486 | }; 487 | 6DF9BF9C18D0F25A00258206 /* Debug */ = { 488 | isa = XCBuildConfiguration; 489 | buildSettings = { 490 | COMBINE_HIDPI_IMAGES = YES; 491 | DYLIB_COMPATIBILITY_VERSION = 1; 492 | DYLIB_CURRENT_VERSION = 1; 493 | FRAMEWORK_SEARCH_PATHS = ( 494 | "$(inherited)", 495 | "$(DEVELOPER_FRAMEWORKS_DIR)", 496 | ); 497 | GCC_PREPROCESSOR_DEFINITIONS = ( 498 | "DEBUG=1", 499 | "$(inherited)", 500 | ); 501 | INFOPLIST_FILE = Framework/Info.plist; 502 | INSTALL_PATH = "@executable_path"; 503 | PRODUCT_NAME = "$(TARGET_NAME)"; 504 | SDKROOT = iphoneos; 505 | WRAPPER_EXTENSION = framework; 506 | }; 507 | name = Debug; 508 | }; 509 | 6DF9BF9D18D0F25A00258206 /* Release */ = { 510 | isa = XCBuildConfiguration; 511 | buildSettings = { 512 | COMBINE_HIDPI_IMAGES = YES; 513 | DYLIB_COMPATIBILITY_VERSION = 1; 514 | DYLIB_CURRENT_VERSION = 1; 515 | FRAMEWORK_SEARCH_PATHS = ( 516 | "$(inherited)", 517 | "$(DEVELOPER_FRAMEWORKS_DIR)", 518 | ); 519 | INFOPLIST_FILE = Framework/Info.plist; 520 | INSTALL_PATH = "@executable_path"; 521 | PRODUCT_NAME = "$(TARGET_NAME)"; 522 | SDKROOT = iphoneos; 523 | WRAPPER_EXTENSION = framework; 524 | }; 525 | name = Release; 526 | }; 527 | /* End XCBuildConfiguration section */ 528 | 529 | /* Begin XCConfigurationList section */ 530 | 6D25E61218D0E5B60045C3C9 /* Build configuration list for PBXProject "Library" */ = { 531 | isa = XCConfigurationList; 532 | buildConfigurations = ( 533 | 6D25E63918D0E5B70045C3C9 /* Debug */, 534 | 6D25E63A18D0E5B70045C3C9 /* Release */, 535 | ); 536 | defaultConfigurationIsVisible = 0; 537 | defaultConfigurationName = Release; 538 | }; 539 | 6D25E63B18D0E5B70045C3C9 /* Build configuration list for PBXNativeTarget "Library" */ = { 540 | isa = XCConfigurationList; 541 | buildConfigurations = ( 542 | 6D25E63C18D0E5B70045C3C9 /* Debug */, 543 | 6D25E63D18D0E5B70045C3C9 /* Release */, 544 | ); 545 | defaultConfigurationIsVisible = 0; 546 | defaultConfigurationName = Release; 547 | }; 548 | 6D8B70DA18E96D2200EB1A43 /* Build configuration list for PBXNativeTarget "Plugin" */ = { 549 | isa = XCConfigurationList; 550 | buildConfigurations = ( 551 | 6D8B70D818E96D2200EB1A43 /* Debug */, 552 | 6D8B70D918E96D2200EB1A43 /* Release */, 553 | ); 554 | defaultConfigurationIsVisible = 0; 555 | defaultConfigurationName = Release; 556 | }; 557 | 6DF9BF9B18D0F25A00258206 /* Build configuration list for PBXNativeTarget "Framework" */ = { 558 | isa = XCConfigurationList; 559 | buildConfigurations = ( 560 | 6DF9BF9C18D0F25A00258206 /* Debug */, 561 | 6DF9BF9D18D0F25A00258206 /* Release */, 562 | ); 563 | defaultConfigurationIsVisible = 0; 564 | defaultConfigurationName = Release; 565 | }; 566 | /* End XCConfigurationList section */ 567 | }; 568 | rootObject = 6D25E60F18D0E5B60045C3C9 /* Project object */; 569 | } 570 | -------------------------------------------------------------------------------- /Externals/Library/Library.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Externals/Library/Library.xcodeproj/xcshareddata/xcschemes/Framework.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 52 | 53 | 54 | 55 | 61 | 62 | 64 | 65 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Externals/Library/Library.xcodeproj/xcshareddata/xcschemes/Library.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 33 | 39 | 40 | 41 | 42 | 43 | 52 | 53 | 54 | 55 | 61 | 62 | 64 | 65 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /Externals/Library/Library.xcodeproj/xcshareddata/xcschemes/Plugin.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 42 | 43 | 44 | 45 | 51 | 52 | 54 | 55 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Externals/Library/Library/Library.h: -------------------------------------------------------------------------------- 1 | // 2 | // Library.h 3 | // Library 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Library : NSObject 12 | 13 | - (void)sayHello; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Externals/Library/Library/Library.m: -------------------------------------------------------------------------------- 1 | // 2 | // Library.m 3 | // Library 4 | // 5 | // Created by Damien DeVille on 3/12/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import "Library.h" 10 | 11 | #import 12 | 13 | @implementation Library 14 | 15 | - (void)sayHello 16 | { 17 | UIAlertView *alertView = [[UIAlertView alloc] init]; 18 | [alertView setTitle:@"Oh Hai"]; 19 | [alertView setMessage:@"This message was shown from a dynamic library!"]; 20 | [alertView addButtonWithTitle:@"OK"]; 21 | [alertView show]; 22 | } 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Externals/Library/Plugin/Data.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | message 6 | This message was loaded from a file inside a plugin and shown by its executable! 7 | 8 | 9 | -------------------------------------------------------------------------------- /Externals/Library/Plugin/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | com.ddeville.plugin 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | ${PRODUCT_NAME} 17 | CFBundlePackageType 18 | BNDL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSHumanReadableCopyright 26 | Copyright © 2014 Damien DeVille. All rights reserved. 27 | NSPrincipalClass 28 | Plugin 29 | 30 | 31 | -------------------------------------------------------------------------------- /Externals/Library/Plugin/Plugin.h: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin.h 3 | // Library 4 | // 5 | // Created by Damien DeVille on 3/31/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface Plugin : NSObject 12 | 13 | - (void)sayHello; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Externals/Library/Plugin/Plugin.m: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin.m 3 | // Library 4 | // 5 | // Created by Damien DeVille on 3/31/14. 6 | // Copyright (c) 2014 Damien DeVille. All rights reserved. 7 | // 8 | 9 | #import "Plugin.h" 10 | 11 | #import 12 | 13 | @implementation Plugin 14 | 15 | - (void)sayHello 16 | { 17 | NSURL *plistLocation = [[NSBundle bundleForClass:[self class]] URLForResource:@"Data" withExtension:@"plist"]; 18 | NSDictionary *data = [NSDictionary dictionaryWithContentsOfURL:plistLocation]; 19 | NSString *message = data[@"message"]; 20 | 21 | UIAlertView *alertView = [[UIAlertView alloc] init]; 22 | [alertView setTitle:@"Oh Hai"]; 23 | [alertView setMessage:message]; 24 | [alertView addButtonWithTitle:@"OK"]; 25 | [alertView show]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Externals/Library/Plugin/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- 1 | Dynamic Linking 2 | -------------------------------------------------------------------------------- /Xcode Specifications/iPhone Simulator PackageTypes.xcspec: -------------------------------------------------------------------------------- 1 | /** 2 | iPhone Simulator PackageTypes.xcspec 3 | 4 | Copyright (c) 1999-2008 Apple Inc. All rights reserved. 5 | 6 | Package type specifications for iPhone Simulator. 7 | */ 8 | ( 9 | // Application wrapper 10 | { Type = PackageType; 11 | Identifier = com.apple.package-type.wrapper.application; 12 | BasedOn = com.apple.package-type.wrapper; 13 | Name = "Application Wrapper"; 14 | Description = "Application Wrapper"; 15 | DefaultBuildSettings = { 16 | GENERATE_PKGINFO_FILE = YES; 17 | }; 18 | ProductReference = { 19 | FileType = wrapper.application; 20 | Name = "$(WRAPPER_NAME)"; 21 | IsLaunchable = YES; 22 | }; 23 | }, 24 | 25 | // CFBundle wrapper 26 | { Type = PackageType; 27 | Identifier = com.apple.package-type.wrapper; 28 | Name = "Wrapper"; 29 | Description = "Wrapper"; 30 | DefaultBuildSettings = { 31 | WRAPPER_PREFIX = ""; 32 | WRAPPER_SUFFIX = ".bundle"; 33 | WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; 34 | CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)"; // shallow 35 | SHALLOW_BUNDLE = YES; 36 | EXECUTABLE_PREFIX = ""; 37 | EXECUTABLE_SUFFIX = ""; 38 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 39 | EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 40 | EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)"; 41 | INFOPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/Info.plist"; 42 | INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings"; 43 | PKGINFO_PATH = "$(CONTENTS_FOLDER_PATH)/PkgInfo"; 44 | PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist"; 45 | VERSIONPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/version.plist"; 46 | PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers"; 47 | PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders"; 48 | EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Executables"; 49 | FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks"; 50 | SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks"; 51 | SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedSupport"; 52 | UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 53 | LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj"; 54 | DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation"; 55 | PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PlugIns"; 56 | SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts"; 57 | JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java"; 58 | }; 59 | ProductReference = { 60 | FileType = wrapper.cfbundle; 61 | Name = "$(WRAPPER_NAME)"; 62 | IsLaunchable = NO; 63 | }; 64 | }, 65 | 66 | // Framework wrapper 67 | { Type = PackageType; 68 | Identifier = com.apple.package-type.wrapper.framework; 69 | Name = "Framework Wrapper"; 70 | Description = "Framework wrapper"; 71 | DefaultBuildSettings = { 72 | WRAPPER_PREFIX = ""; 73 | WRAPPER_SUFFIX = ".framework"; 74 | WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; 75 | VERSIONS_FOLDER_PATH = "$(WRAPPER_NAME)/Versions"; 76 | CONTENTS_FOLDER_PATH = "$(VERSIONS_FOLDER_PATH)/$(FRAMEWORK_VERSION)"; 77 | CURRENT_VERSION = "Current"; 78 | EXECUTABLE_PREFIX = ""; 79 | EXECUTABLE_SUFFIX = ""; 80 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 81 | EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 82 | EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)"; 83 | INFOPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist"; 84 | INFOPLISTSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings"; 85 | PKGINFO_PATH = "$(WRAPPER_NAME)/PkgInfo"; 86 | PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist"; 87 | VERSIONPLIST_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/version.plist"; 88 | PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers"; 89 | PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders"; 90 | EXECUTABLES_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)"; // Not the same as EXECUTABLE_FOLDER_PATH 91 | FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks"; 92 | SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks"; 93 | SHARED_SUPPORT_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)"; 94 | UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Resources"; 95 | LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj"; 96 | DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation"; 97 | PLUGINS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)"; 98 | SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts"; 99 | JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java"; 100 | CODESIGNING_FOLDER_PATH = "$(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH)"; 101 | }; 102 | ProductReference = { 103 | FileType = wrapper.framework; 104 | Name = "$(WRAPPER_NAME)"; 105 | IsLaunchable = NO; 106 | }; 107 | }, 108 | 109 | // Static library ('ar' archive containing .o files) 110 | { Type = PackageType; 111 | Identifier = com.apple.package-type.static-library; 112 | Name = "Mach-O Static Library"; 113 | Description = "Mach-O static library"; 114 | DefaultBuildSettings = { 115 | EXECUTABLE_PREFIX = "lib"; 116 | EXECUTABLE_SUFFIX = ".a"; 117 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 118 | EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; 119 | }; 120 | ProductReference = { 121 | FileType = archive.ar; 122 | Name = "$(EXECUTABLE_NAME)"; 123 | IsLaunchable = NO; 124 | }; 125 | }, 126 | 127 | // Mach-O dynamic library 128 | { Type = PackageType; 129 | Identifier = com.apple.package-type.mach-o-dylib; 130 | Name = "Mach-O Dynamic Library"; 131 | Description = "Mach-O dynamic library"; 132 | DefaultBuildSettings = { 133 | EXECUTABLE_PREFIX = ""; 134 | EXECUTABLE_SUFFIX = ""; 135 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 136 | EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; 137 | }; 138 | ProductReference = { 139 | FileType = compiled.mach-o.dylib; 140 | Name = "$(EXECUTABLE_NAME)"; 141 | IsLaunchable = NO; 142 | }; 143 | }, 144 | 145 | 146 | ) 147 | 148 | -------------------------------------------------------------------------------- /Xcode Specifications/iPhone Simulator ProductTypes.xcspec: -------------------------------------------------------------------------------- 1 | /** 2 | iPhone Simulator ProductTypes.xcspec 3 | 4 | Copyright (c) 1999-2008 Apple Inc. All rights reserved. 5 | 6 | Product type specifications for iPhone Simulator. 7 | */ 8 | ( 9 | // Application 10 | { Type = ProductType; 11 | Identifier = com.apple.product-type.application; 12 | BasedOn = com.apple.product-type.bundle; 13 | Class = PBXApplicationProductType; 14 | Name = "Application"; 15 | Description = "Application"; 16 | IconNamePrefix = "TargetApp"; 17 | DefaultTargetName = "Application"; 18 | SupportsZeroLink = YES; 19 | DefaultBuildProperties = { 20 | MACH_O_TYPE = "mh_execute"; 21 | GCC_DYNAMIC_NO_PIC = NO; 22 | GCC_SYMBOLS_PRIVATE_EXTERN = YES; 23 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 24 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 25 | WRAPPER_EXTENSION = "app"; 26 | INSTALL_PATH = "$(LOCAL_APPS_DIR)"; 27 | STRIP_STYLE = "all"; 28 | }; 29 | PackageTypes = ( 30 | com.apple.package-type.wrapper.application 31 | ); 32 | }, 33 | 34 | // Bundle 35 | { Type = ProductType; 36 | Identifier = com.apple.product-type.bundle; 37 | Class = PBXBundleProductType; 38 | Name = "Bundle"; 39 | Description = "Generic bundle"; 40 | IconNamePrefix = "TargetPlugin"; 41 | DefaultTargetName = "Bundle"; 42 | DefaultBuildProperties = { 43 | FULL_PRODUCT_NAME = "$(WRAPPER_NAME)"; 44 | MACH_O_TYPE = "mh_bundle"; 45 | WRAPPER_PREFIX = ""; 46 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 47 | WRAPPER_EXTENSION = "bundle"; 48 | WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; 49 | FRAMEWORK_FLAG_PREFIX = "-framework"; 50 | LIBRARY_FLAG_PREFIX = "-l"; 51 | LIBRARY_FLAG_NOSPACE = YES; 52 | STRIP_STYLE = "non-global"; 53 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 54 | }; 55 | PackageTypes = ( 56 | com.apple.package-type.wrapper 57 | ); 58 | IsWrapper = YES; 59 | HasInfoPlist = YES; 60 | HasInfoPlistStrings = YES; 61 | }, 62 | 63 | // Static library 64 | { Type = ProductType; 65 | Identifier = com.apple.product-type.library.static; 66 | Class = PBXStaticLibraryProductType; 67 | Name = "Static Library"; 68 | Description = "Static library"; 69 | IconNamePrefix = "TargetLibrary"; 70 | DefaultTargetName = "Static Library"; 71 | DefaultBuildProperties = { 72 | FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; 73 | MACH_O_TYPE = "staticlib"; 74 | REZ_EXECUTABLE = YES; 75 | EXECUTABLE_PREFIX = "lib"; 76 | EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; 77 | EXECUTABLE_EXTENSION = "a"; 78 | PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include"; 79 | PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include"; 80 | INSTALL_PATH = "/usr/local/lib"; 81 | FRAMEWORK_FLAG_PREFIX = "-framework"; 82 | LIBRARY_FLAG_PREFIX = "-l"; 83 | LIBRARY_FLAG_NOSPACE = YES; 84 | STRIP_STYLE = "debugging"; 85 | SEPARATE_STRIP = YES; 86 | GCC_ENABLE_SYMBOL_SEPARATION = NO; 87 | }; 88 | AlwaysPerformSeparateStrip = YES; 89 | PackageTypes = ( 90 | com.apple.package-type.static-library // default 91 | ); 92 | }, 93 | 94 | // Dynamic library 95 | { Type = ProductType; 96 | Identifier = com.apple.product-type.library.dynamic; 97 | Class = PBXDynamicLibraryProductType; 98 | Name = "Dynamic Library"; 99 | Description = "Dynamic library"; 100 | IconNamePrefix = "TargetLibrary"; 101 | DefaultTargetName = "Dynamic Library"; 102 | DefaultBuildProperties = { 103 | FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; 104 | MACH_O_TYPE = "mh_dylib"; 105 | REZ_EXECUTABLE = YES; 106 | EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; 107 | EXECUTABLE_EXTENSION = "dylib"; 108 | PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include"; 109 | PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include"; 110 | INSTALL_PATH = "/usr/local/lib"; 111 | DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)"; 112 | LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; 113 | DYLIB_COMPATIBILITY_VERSION = "1"; 114 | DYLIB_CURRENT_VERSION = "1"; 115 | FRAMEWORK_FLAG_PREFIX = "-framework"; 116 | LIBRARY_FLAG_PREFIX = "-l"; 117 | LIBRARY_FLAG_NOSPACE = YES; 118 | STRIP_STYLE = "debugging"; 119 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 120 | CODE_SIGNING_ALLOWED = YES; 121 | }; 122 | PackageTypes = ( 123 | com.apple.package-type.mach-o-dylib // default 124 | ); 125 | }, 126 | 127 | // Framework 128 | { Type = ProductType; 129 | Identifier = com.apple.product-type.framework; 130 | BasedOn = com.apple.product-type.bundle; 131 | Class = PBXFrameworkProductType; 132 | Name = "Framework"; 133 | Description = "Framework"; 134 | IconNamePrefix = "TargetFramework"; 135 | DefaultTargetName = "Framework"; 136 | DefaultBuildProperties = { 137 | MACH_O_TYPE = "mh_dylib"; 138 | FRAMEWORK_VERSION = "A"; 139 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 140 | WRAPPER_EXTENSION = "framework"; 141 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 142 | DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)"; 143 | LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; 144 | STRIP_STYLE = "debugging"; 145 | CODE_SIGNING_ALLOWED = YES; 146 | }; 147 | PackageTypes = ( 148 | com.apple.package-type.wrapper.framework // default 149 | ); 150 | }, 151 | 152 | // Unit Test Bundle Product 153 | { Type = ProductType; 154 | Identifier = com.apple.product-type.bundle.unit-test; 155 | BasedOn = com.apple.product-type.bundle; 156 | Name = "Unit Test Bundle"; 157 | Description = "Unit Test Bundle"; 158 | DefaultBuildProperties = { 159 | WRAPPER_EXTENSION = "xctest"; 160 | OTHER_LDFLAGS = "$(inherited) -framework XCTest"; 161 | FRAMEWORK_SEARCH_PATHS = "$(inherited) $(DEVELOPER_FRAMEWORKS_DIR)"; 162 | }; 163 | PackageTypes = ( 164 | com.apple.package-type.wrapper 165 | ); 166 | }, 167 | 168 | ) 169 | -------------------------------------------------------------------------------- /Xcode Specifications/iPhoneOSPackageTypes.xcspec: -------------------------------------------------------------------------------- 1 | // !!! BINARY PROPERTY LIST WARNING !!! 2 | // 3 | // The pretty-printed property list below has been created 4 | // from a binary version on disk and should not be saved as 5 | // the ASCII format is a subset of the binary representation! 6 | // 7 | ( 8 | { DefaultBuildSettings = { 9 | CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)"; 10 | DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation"; 11 | EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Executables"; 12 | EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 13 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 14 | EXECUTABLE_PATH = "$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)"; 15 | EXECUTABLE_PREFIX = ""; 16 | EXECUTABLE_SUFFIX = ""; 17 | FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Frameworks"; 18 | INFOPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/Info.plist"; 19 | INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings"; 20 | JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java"; 21 | LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj"; 22 | PBDEVELOPMENTPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist"; 23 | PKGINFO_PATH = "$(CONTENTS_FOLDER_PATH)/PkgInfo"; 24 | PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PlugIns"; 25 | PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/PrivateHeaders"; 26 | PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/Headers"; 27 | SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts"; 28 | SHALLOW_BUNDLE = "YES"; 29 | SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedFrameworks"; 30 | SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)/SharedSupport"; 31 | UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 32 | VERSIONPLIST_PATH = "$(CONTENTS_FOLDER_PATH)/version.plist"; 33 | WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; 34 | WRAPPER_PREFIX = ""; 35 | WRAPPER_SUFFIX = ".bundle"; 36 | }; 37 | Description = "Wrapper"; 38 | Identifier = "com.apple.package-type.wrapper"; 39 | Name = "Wrapper"; 40 | ProductReference = { 41 | FileType = "wrapper.cfbundle"; 42 | IsLaunchable = "NO"; 43 | Name = "$(WRAPPER_NAME)"; 44 | }; 45 | Type = "PackageType"; 46 | }, 47 | { BasedOn = "com.apple.package-type.wrapper"; 48 | DefaultBuildSettings = { GENERATE_PKGINFO_FILE = "YES"; }; 49 | Description = "Application Wrapper"; 50 | Identifier = "com.apple.package-type.wrapper.application"; 51 | Name = "Application Wrapper"; 52 | ProductReference = { 53 | FileType = "wrapper.application"; 54 | IsLaunchable = "YES"; 55 | Name = "$(WRAPPER_NAME)"; 56 | }; 57 | Type = "PackageType"; 58 | }, 59 | { BasedOn = "com.apple.package-type.wrapper"; 60 | DefaultBuildSettings = { WRAPPER_SUFFIX = "xctest"; }; 61 | Description = "Unit Test Bundle"; 62 | Identifier = "com.apple.package-type.bundle.unit-test"; 63 | Name = "Unit Test Bundle"; 64 | ProductReference = { 65 | FileType = "wrapper.cfbundle"; 66 | IsLaunchable = "NO"; 67 | Name = "$(WRAPPER_NAME)"; 68 | }; 69 | Type = "PackageType"; 70 | }, 71 | { BasedOn = "com.apple.package-type.wrapper"; 72 | DefaultBuildSettings = { 73 | CONTENTS_FOLDER_PATH = "$(WRAPPER_NAME)/Contents"; 74 | DOCUMENTATION_FOLDER_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)"; 75 | EXECUTABLES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 76 | EXECUTABLE_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 77 | FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 78 | INFOPLIST_PATH = "$(WRAPPER_NAME)/ContentInfo.plist"; 79 | INFOSTRINGS_PATH = "$(LOCALIZED_RESOURCES_FOLDER_PATH)/ContentInfo.strings"; 80 | JAVA_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)"; 81 | LOCALIZED_RESOURCES_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj"; 82 | PLUGINS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 83 | PRIVATE_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 84 | PUBLIC_HEADERS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 85 | SCRIPTS_FOLDER_PATH = "$(UNLOCALIZED_RESOURCES_FOLDER_PATH)"; 86 | SHARED_FRAMEWORKS_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 87 | SHARED_SUPPORT_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 88 | UNLOCALIZED_RESOURCES_FOLDER_PATH = "$(CONTENTS_FOLDER_PATH)"; 89 | WRAPPER_SUFFIX = ""; 90 | }; 91 | Description = "In-App Purchase Content"; 92 | Identifier = "com.apple.package-type.in-app-purchase-content"; 93 | Name = "In-App Purchase Content"; 94 | ProductReference = { 95 | FileType = "folder"; 96 | IsLaunchable = "NO"; 97 | Name = "$(WRAPPER_NAME)"; 98 | }; 99 | Type = "PackageType"; 100 | }, 101 | { DefaultBuildSettings = { 102 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 103 | EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; 104 | EXECUTABLE_PREFIX = "lib"; 105 | EXECUTABLE_SUFFIX = ".a"; 106 | }; 107 | Description = "Mach-O static library"; 108 | Identifier = "com.apple.package-type.static-library"; 109 | Name = "Mach-O Static Library"; 110 | ProductReference = { 111 | FileType = "archive.ar"; 112 | IsLaunchable = "NO"; 113 | Name = "$(EXECUTABLE_NAME)"; 114 | }; 115 | Type = "PackageType"; 116 | }, 117 | // Mach-O dynamic library 118 | { Type = PackageType; 119 | Identifier = com.apple.package-type.mach-o-dylib; 120 | Name = "Mach-O Dynamic Library"; 121 | Description = "Mach-O dynamic library"; 122 | DefaultBuildSettings = { 123 | EXECUTABLE_PREFIX = ""; 124 | EXECUTABLE_SUFFIX = ""; 125 | EXECUTABLE_NAME = "$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)"; 126 | EXECUTABLE_PATH = "$(EXECUTABLE_NAME)"; 127 | }; 128 | ProductReference = { 129 | FileType = compiled.mach-o.dylib; 130 | Name = "$(EXECUTABLE_NAME)"; 131 | IsLaunchable = NO; 132 | }; 133 | }, 134 | ) 135 | -------------------------------------------------------------------------------- /Xcode Specifications/iPhoneOSProductTypes.xcspec: -------------------------------------------------------------------------------- 1 | // !!! BINARY PROPERTY LIST WARNING !!! 2 | // 3 | // The pretty-printed property list below has been created 4 | // from a binary version on disk and should not be saved as 5 | // the ASCII format is a subset of the binary representation! 6 | // 7 | ( 8 | { Class = "PBXBundleProductType"; 9 | DefaultBuildProperties = { 10 | FRAMEWORK_FLAG_PREFIX = "-framework"; 11 | FULL_PRODUCT_NAME = "$(WRAPPER_NAME)"; 12 | GCC_INLINES_ARE_PRIVATE_EXTERN = "YES"; 13 | LIBRARY_FLAG_NOSPACE = "YES"; 14 | LIBRARY_FLAG_PREFIX = "-l"; 15 | MACH_O_TYPE = "mh_bundle"; 16 | STRIP_STYLE = "non-global"; 17 | WRAPPER_EXTENSION = "bundle"; 18 | WRAPPER_NAME = "$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)"; 19 | WRAPPER_PREFIX = ""; 20 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 21 | }; 22 | DefaultTargetName = "Bundle"; 23 | Description = "Generic bundle"; 24 | HasInfoPlist = "YES"; 25 | HasInfoPlistStrings = "YES"; 26 | IconNamePrefix = "TargetPlugin"; 27 | Identifier = "com.apple.product-type.bundle"; 28 | IsWrapper = "YES"; 29 | Name = "Bundle"; 30 | PackageTypes = ( "com.apple.package-type.wrapper" ); 31 | Type = "ProductType"; 32 | }, 33 | { BasedOn = "com.apple.product-type.bundle"; 34 | Class = "PBXApplicationProductType"; 35 | DefaultBuildProperties = { 36 | CODE_SIGNING_ALLOWED = "YES"; 37 | ENTITLEMENTS_ALLOWED = "YES"; 38 | GCC_INLINES_ARE_PRIVATE_EXTERN = "YES"; 39 | GCC_SYMBOLS_PRIVATE_EXTERN = "YES"; 40 | INSTALL_PATH = "$(LOCAL_APPS_DIR)"; 41 | MACH_O_TYPE = "mh_execute"; 42 | PROVISIONING_PROFILE_REQUIRED = "YES"; 43 | RESOURCE_RULES_REQUIRED = "YES"; 44 | STRIP_STYLE = "all"; 45 | WRAPPER_EXTENSION = "app"; 46 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 47 | }; 48 | DefaultTargetName = "Application"; 49 | Description = "Application"; 50 | IconNamePrefix = "TargetApp"; 51 | Identifier = "com.apple.product-type.application"; 52 | Name = "Application"; 53 | PackageTypes = ( "com.apple.package-type.wrapper.application" ); 54 | SupportsZeroLink = "YES"; 55 | Type = "ProductType"; 56 | Validation = { 57 | AdditionalValidationClass = "XCiPhoneOSPlatformPlugin"; 58 | Checks = { "!( $(VALIDATE_PRODUCT) == NO && $(CODE_SIGN_IDENTITY) == 'iPhone Distribution' )" = "The Validate Built Product build setting was not enabled when building for Distribution."; }; 59 | ValidationToolSpec = "com.apple.build-tools.platform.validate"; 60 | }; 61 | }, 62 | { BasedOn = "com.apple.product-type.bundle"; 63 | Class = "PBXBundleProductType"; 64 | DefaultBuildProperties = { 65 | FRAMEWORK_SEARCH_PATHS = "$(inherited) $(DEVELOPER_FRAMEWORKS_DIR)"; 66 | OTHER_LDFLAGS = "$(inherited) -framework XCTest"; 67 | WRAPPER_EXTENSION = "xctest"; 68 | }; 69 | Description = "Unit Test Bundle"; 70 | Identifier = "com.apple.product-type.bundle.unit-test"; 71 | Name = "Unit Test Bundle"; 72 | PackageTypes = ( "com.apple.package-type.bundle.unit-test" ); 73 | Type = "ProductType"; 74 | }, 75 | { Class = "PBXBundleProductType"; 76 | DefaultBuildProperties = { FULL_PRODUCT_NAME = "$(WRAPPER_NAME)"; }; 77 | Description = "In-App Purchase Content"; 78 | HasInfoPlist = "YES"; 79 | HasInfoPlistStrings = "NO"; 80 | Identifier = "com.apple.product-type.in-app-purchase-content"; 81 | IsWrapper = "YES"; 82 | Name = "In-App Purchase Content"; 83 | PackageTypes = ( "com.apple.package-type.in-app-purchase-content" ); 84 | Type = "ProductType"; 85 | }, 86 | { AlwaysPerformSeparateStrip = "YES"; 87 | Class = "PBXStaticLibraryProductType"; 88 | DefaultBuildProperties = { 89 | CODE_SIGNING_ALLOWED = "NO"; 90 | EXECUTABLE_EXTENSION = "a"; 91 | EXECUTABLE_PREFIX = "lib"; 92 | EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; 93 | FRAMEWORK_FLAG_PREFIX = "-framework"; 94 | FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; 95 | GCC_ENABLE_SYMBOL_SEPARATION = "NO"; 96 | INSTALL_PATH = "/usr/local/lib"; 97 | LIBRARY_FLAG_NOSPACE = "YES"; 98 | LIBRARY_FLAG_PREFIX = "-l"; 99 | MACH_O_TYPE = "staticlib"; 100 | PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include"; 101 | PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include"; 102 | REZ_EXECUTABLE = "YES"; 103 | SEPARATE_STRIP = "YES"; 104 | STRIP_STYLE = "debugging"; 105 | }; 106 | DefaultTargetName = "Static Library"; 107 | Description = "Static library"; 108 | IconNamePrefix = "TargetLibrary"; 109 | Identifier = "com.apple.product-type.library.static"; 110 | Name = "Static Library"; 111 | PackageTypes = ( "com.apple.package-type.static-library" ); 112 | Type = "ProductType"; 113 | }, 114 | // Dynamic library 115 | { Type = ProductType; 116 | Identifier = com.apple.product-type.library.dynamic; 117 | Class = PBXDynamicLibraryProductType; 118 | Name = "Dynamic Library"; 119 | Description = "Dynamic library"; 120 | IconNamePrefix = "TargetLibrary"; 121 | DefaultTargetName = "Dynamic Library"; 122 | DefaultBuildProperties = { 123 | FULL_PRODUCT_NAME = "$(EXECUTABLE_NAME)"; 124 | MACH_O_TYPE = "mh_dylib"; 125 | REZ_EXECUTABLE = YES; 126 | EXECUTABLE_SUFFIX = ".$(EXECUTABLE_EXTENSION)"; 127 | EXECUTABLE_EXTENSION = "dylib"; 128 | PUBLIC_HEADERS_FOLDER_PATH = "/usr/local/include"; 129 | PRIVATE_HEADERS_FOLDER_PATH = "/usr/local/include"; 130 | INSTALL_PATH = "/usr/local/lib"; 131 | DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)"; 132 | LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; 133 | DYLIB_COMPATIBILITY_VERSION = "1"; 134 | DYLIB_CURRENT_VERSION = "1"; 135 | FRAMEWORK_FLAG_PREFIX = "-framework"; 136 | LIBRARY_FLAG_PREFIX = "-l"; 137 | LIBRARY_FLAG_NOSPACE = YES; 138 | STRIP_STYLE = "debugging"; 139 | GCC_INLINES_ARE_PRIVATE_EXTERN = YES; 140 | CODE_SIGNING_ALLOWED = YES; 141 | }; 142 | PackageTypes = ( 143 | com.apple.package-type.mach-o-dylib // default 144 | ); 145 | }, 146 | 147 | // Framework 148 | { Type = ProductType; 149 | Identifier = com.apple.product-type.framework; 150 | BasedOn = com.apple.product-type.bundle; 151 | Class = PBXFrameworkProductType; 152 | Name = "Framework"; 153 | Description = "Framework"; 154 | IconNamePrefix = "TargetFramework"; 155 | DefaultTargetName = "Framework"; 156 | DefaultBuildProperties = { 157 | MACH_O_TYPE = "mh_dylib"; 158 | FRAMEWORK_VERSION = "A"; 159 | WRAPPER_SUFFIX = ".$(WRAPPER_EXTENSION)"; 160 | WRAPPER_EXTENSION = "framework"; 161 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 162 | DYLIB_INSTALL_NAME_BASE = "$(INSTALL_PATH)"; 163 | LD_DYLIB_INSTALL_NAME = "$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)"; 164 | STRIP_STYLE = "debugging"; 165 | CODE_SIGNING_ALLOWED = YES; 166 | }; 167 | PackageTypes = ( 168 | com.apple.package-type.wrapper.framework // default 169 | ); 170 | }, 171 | ) 172 | --------------------------------------------------------------------------------