Compare commits
	
		
			130 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 4346b331b7 | ||
|   | baa524eda5 | ||
|   | 66ca97ef12 | ||
|   | e8bbb96de2 | ||
|   | 928635e44f | ||
|   | 99efb11c3d | ||
|   | b4b17cc722 | ||
|   | 2ed9a17914 | ||
|   | feb51d582a | ||
|   | d7cccae1ad | ||
|   | 9871c759e0 | ||
|   | 956e925f97 | ||
|   | c769f3cf58 | ||
|   | 440454fc5a | ||
|   | c4cd7b4a55 | ||
|   | d688e29975 | ||
|   | 7b07c2e28d | ||
|   | 0159cfc194 | ||
|   | cbba8a4328 | ||
|   | 3a57b33e8f | ||
|   | fd12c317b7 | ||
|   | ecb228aad4 | ||
|   | 3555b1222c | ||
|   | 3fef0a5600 | ||
|   | ca29173c80 | ||
|   | e57a4da108 | ||
|   | a9e96416a8 | ||
|   | 922f8483a7 | ||
|   | f0ae11a93f | ||
|   | c0988f07e5 | ||
|   | a36b169782 | ||
|   | 551cdc5804 | ||
|   | 94d56d74c4 | ||
|   | f17fd4c73a | ||
|   | 28ceb4733f | ||
|   | 6a8ad1e899 | ||
|   | 3ee31bc677 | ||
|   | fccfde865a | ||
|   | f6b4c3f951 | ||
|   | b1c717ebd8 | ||
|   | 1220cac6e4 | ||
|   | 6f65bb687e | ||
|   | 7af1a9d79b | ||
|   | 23ea3b7097 | ||
|   | 9909fb854c | ||
|   | 0320381c67 | ||
|   | 612c3561fd | ||
|   | 59904aa4c1 | ||
|   | 9f6b41519b | ||
|   | 5d2166fcef | ||
|   | 6ce22c2adc | ||
|   | ede5d2542d | ||
|   | 6b7b31d54a | ||
|   | 8d60757e77 | ||
|   | 2f9fb4304a | ||
|   | a6e94923cf | ||
|   | 342965c16a | ||
|   | 4ce3554561 | ||
|   | ab39342b0f | ||
|   | 2a1844500b | ||
|   | 5e7420502b | ||
|   | 545521954b | ||
|   | d6216760e4 | ||
|   | 0390522194 | ||
|   | ca2e7a3c75 | ||
|   | ed7c70aa59 | ||
|   | 093b4b3c9a | ||
|   | 4d58838ef1 | ||
|   | d10562c501 | ||
|   | 99dba4e58c | ||
|   | bf58b61561 | ||
|   | d2aee71a92 | ||
|   | 92f6238bba | ||
|   | 6aa7b57014 | ||
|   | 55d076b805 | ||
|   | 3756385651 | ||
|   | adc8a5b9c2 | ||
|   | bb25caf586 | ||
|   | 75820a0979 | ||
|   | 16f52589db | ||
|   | 21c8dc9cf5 | ||
|   | 34540ce545 | ||
|   | 7b834b0e31 | ||
|   | 7ac9cdb107 | ||
|   | cf9d024a2b | ||
|   | 4d4735e505 | ||
|   | 2c9ea8f16e | ||
|   | 5eb12202b2 | ||
|   | 307a5f9452 | ||
|   | 835e161f66 | ||
|   | 73f30fdfed | ||
|   | be506a9f7f | ||
|   | bc1bb0d320 | ||
|   | 7d997b89c7 | ||
|   | 6d61b7ca7c | ||
|   | 590da67714 | ||
|   | 8749a57936 | ||
|   | 3ba7403a39 | ||
|   | 84aeaad03b | ||
|   | ddcb4932ab | ||
|   | 11f1a89128 | ||
|   | c97b972172 | ||
|   | 1cb6110985 | ||
|   | 3dadb53b3b | ||
|   | 39aa232f97 | ||
|   | 609b635870 | ||
|   | 522f7bd667 | ||
|   | 250794ce98 | ||
|   | 41eeedc472 | ||
|   | cdbe112ec6 | ||
|   | 5377d9bec7 | ||
|   | 5d2a0d5c8b | ||
|   | e5fc979998 | ||
|   | 18873b8340 | ||
|   | ed09a029de | ||
|   | a750efa382 | ||
|   | 0940a4d079 | ||
|   | b72d31b816 | ||
|   | 5690b10635 | ||
|   | d90171d8e7 | ||
|   | 02c23792ee | ||
|   | 3e8a897fbc | ||
|   | ba60ff6351 | ||
|   | 134a0a5fd0 | ||
|   | 96e91eb269 | ||
|   | 8577ef3411 | ||
|   | 99f401018d | ||
|   | 6ac084844e | ||
|   | 3dcd64f7c0 | ||
|   | 12334f8ddf | 
							
								
								
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| demo | ||||
| demo.app | ||||
| ios-deploy | ||||
| ios-deploy.dSYM | ||||
| build/* | ||||
| node_modules/* | ||||
| /.DS_Store | ||||
| *~ | ||||
| src/scripts/lldb.pyc | ||||
| src/ios-deploy/lldb.py.h | ||||
|   | ||||
| @@ -23,6 +23,8 @@ Please run the commands below in your Terminal.app and include it in the issue: | ||||
| ``` | ||||
| Also include **command line arguments** you used for ios-deploy. | ||||
|  | ||||
| Don't forget to check out the [El Capitan](https://github.com/phonegap/ios-deploy/blob/master/README.md#os-x-1011-el-capitan) section of the [README](https://github.com/phonegap/ios-deploy/blob/master/README.md) before filing that issue! | ||||
|  | ||||
|  | ||||
| ## Sending a Pull Request | ||||
|  | ||||
|   | ||||
							
								
								
									
										6
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,2 +1,8 @@ | ||||
| ios-deploy is available under the provisions of the GNU General Public License, | ||||
| version 3 (or later), available here: http://www.gnu.org/licenses/gpl-3.0.html | ||||
|  | ||||
|  | ||||
| Error codes used for error messages were taken from SDMMobileDevice framework, | ||||
| originally reverse engineered by Sam Marshall. SDMMobileDevice is distributed | ||||
| under BSD 3-Clause license and is available here: | ||||
| https://github.com/samdmarshall/SDMMobileDevice | ||||
|   | ||||
							
								
								
									
										35
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,35 +0,0 @@ | ||||
| IOS_SDK_VERSION = 8.3 | ||||
|  | ||||
| IOS_CC = gcc -ObjC | ||||
| DEVICE_SUPPORT = $(shell xcode-select --print-path)/Platforms/iPhoneOS.platform/DeviceSupport | ||||
| IOS_SDK = $(shell xcode-select --print-path)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(IOS_SDK_VERSION).sdk | ||||
|  | ||||
| all: clean ios-deploy demo.app | ||||
|  | ||||
| demo.app: demo Info.plist | ||||
| 	mkdir -p demo.app | ||||
| 	cp demo demo.app/ | ||||
| 	cp Info.plist ResourceRules.plist demo.app/ | ||||
| 	codesign -f -s "iPhone Developer" --entitlements Entitlements.plist demo.app | ||||
|  | ||||
| demo: demo.c | ||||
| 	$(IOS_CC) -g -arch armv7 -isysroot $(IOS_SDK) -framework CoreFoundation -o demo demo.c | ||||
|  | ||||
| ios-deploy: clean ios-deploy.c | ||||
| 	$(IOS_CC) -g -o ios-deploy -framework Foundation -framework CoreFoundation -framework MobileDevice -F/System/Library/PrivateFrameworks ios-deploy.c | ||||
|  | ||||
| symlink:  | ||||
| 	cd $(DEVICE_SUPPORT); ln -sfn "`find . -type d -maxdepth 1 -exec basename {} \; | tail -1`" Latest	 | ||||
|      | ||||
| install: symlink ios-deploy | ||||
| 	mkdir -p $(prefix)/bin | ||||
| 	cp ios-deploy $(prefix)/bin | ||||
|  | ||||
| uninstall: | ||||
| 	rm $(prefix)/bin/ios-deploy | ||||
|  | ||||
| debug: all | ||||
| 	./ios-deploy --debug --bundle demo.app | ||||
|  | ||||
| clean: | ||||
| 	@rm -rf *.app demo ios-deploy | ||||
							
								
								
									
										97
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										97
									
								
								README.md
									
									
									
									
									
								
							| @@ -4,11 +4,21 @@ Install and debug iOS apps without using Xcode. Designed to work on un-jailbroke | ||||
|  | ||||
| ## Requirements | ||||
|  | ||||
| * Mac OS X. Tested on 10.10 Yosemite and iOS 8.3 | ||||
| * Mac OS X. Tested on 10.11 El Capitan and iOS 9.0 | ||||
| * You need to have a valid iOS Development certificate installed. | ||||
| * Xcode 6 or greater should be installed | ||||
| * Xcode 6.4 or greater should be installed | ||||
|  | ||||
| ## Roadmap | ||||
|  | ||||
| See our [milestones](https://github.com/phonegap/ios-deploy/milestones). | ||||
|  | ||||
| Significant changes:  | ||||
|  | ||||
|     1.8.0 will use an Xcode project instead of a Makefile (to prepare for 2.0.0) | ||||
|     2.0.0 will break out the commands into their own files, and create ios-deploy-lib for node.js use | ||||
|  | ||||
| ## Installation | ||||
| ======= | ||||
|  | ||||
| ios-deploy installation is made simple using the node.js package manager.  If you use [Homebrew](http://brew.sh/), install [node.js](https://nodejs.org): | ||||
|  | ||||
| @@ -22,42 +32,59 @@ Now install ios-deploy with the [node.js](https://nodejs.org) package manager: | ||||
| npm install -g ios-deploy | ||||
| ``` | ||||
|  | ||||
| To install from source: | ||||
| To build from source: | ||||
|  | ||||
| ``` | ||||
| make install prefix=/usr/local | ||||
| xcodebuild | ||||
| ``` | ||||
|  | ||||
| This will install ios-deploy in the `bin` folder of `/usr/local`, i.e. `/usr/local/bin` | ||||
| This will build `ios-deploy` into the `build/Release` folder. | ||||
|  | ||||
| ## Testing | ||||
|  | ||||
| Run: | ||||
|  | ||||
| ``` | ||||
| npm install && npm test | ||||
| ``` | ||||
|  | ||||
| ### OS X 10.11 El Capitan | ||||
|  | ||||
| If you are *not* using a node version manager like [nvm](https://github.com/creationix/nvm) or [n](https://github.com/tj/n), you may have to do either of these three things below when under El Capitan: | ||||
|  | ||||
| 1. Add the `--unsafe-perm=true` flag  when installing ios-deploy | ||||
| 2. Add the `--allow-root` flag  when installing ios-deploy | ||||
| 3. Ensure the `nobody` user has write access to `/usr/local/lib/node_modules/ios-deploy/ios-deploy` | ||||
|  | ||||
| ## Usage | ||||
|  | ||||
|     Usage: ios-deploy [OPTION]... | ||||
|       -d, --debug                  launch the app in GDB after installation | ||||
|       -i, --id <device_id>         the id of the device to connect to | ||||
|       -c, --detect                 only detect if the device is connected | ||||
|       -b, --bundle <bundle.app>    the path to the app bundle to be installed | ||||
|       -a, --args <args>            command line arguments to pass to the app when launching it | ||||
|       -t, --timeout <timeout>      number of seconds to wait for a device to be connected | ||||
|       -u, --unbuffered             don't buffer stdout | ||||
|       -n, --nostart                do not start the app when debugging | ||||
|       -I, --noninteractive         start in non interactive mode (quit when app crashes or exits) | ||||
|       -L, --justlaunch             just launch the app and exit lldb | ||||
|       -v, --verbose                enable verbose output | ||||
|       -m, --noinstall              directly start debugging without app install (-d not required) | ||||
|       -p, --port <number>          port used for device, default: 12345 | ||||
|       -r, --uninstall              uninstall the app before install (do not use with -m; app cache and data are cleared) | ||||
|       -9, --uninstall_only         uninstall the app ONLY. Use only with -1 <bundle_id>  | ||||
|       -1, --bundle_id <bundle id>  specify bundle id for list, upload, and uninstall_only | ||||
|       -l, --list                   list files | ||||
|       -o, --upload <file>          upload file | ||||
|       -w, --download               download app tree | ||||
|       -2, --to <target pathname>   use together with up/download file/tree. specify target | ||||
|       -D, --mkdir <dir>            make directory on device | ||||
|       -R, --rm <path>              remove file or directory on device (directories must be empty) | ||||
|       -V, --version                print the executable version | ||||
|       -e, --exists                 check if the app with given bundle_id is installed or not | ||||
|  | ||||
|         -d, --debug                  launch the app in lldb after installation | ||||
|         -i, --id <device_id>         the id of the device to connect to | ||||
|         -c, --detect                 only detect if the device is connected | ||||
|         -b, --bundle <bundle.app>    the path to the app bundle to be installed | ||||
|         -a, --args <args>            command line arguments to pass to the app when launching it | ||||
|         -t, --timeout <timeout>      number of seconds to wait for a device to be connected | ||||
|         -u, --unbuffered             don't buffer stdout | ||||
|         -n, --nostart                do not start the app when debugging | ||||
|         -I, --noninteractive         start in non interactive mode (quit when app crashes or exits) | ||||
|         -L, --justlaunch             just launch the app and exit lldb | ||||
|         -v, --verbose                enable verbose output | ||||
|         -m, --noinstall              directly start debugging without app install (-d not required) | ||||
|         -p, --port <number>          port used for device, default: dynamic | ||||
|         -r, --uninstall              uninstall the app before install (do not use with -m; app cache and data are cleared)  | ||||
|         -9, --uninstall_only         uninstall the app ONLY. Use only with -1 <bundle_id>  | ||||
|         -1, --bundle_id <bundle id>  specify bundle id for list and upload | ||||
|         -l, --list                   list files | ||||
|         -o, --upload <file>          upload file | ||||
|         -w, --download               download app tree | ||||
|         -2, --to <target pathname>   use together with up/download file/tree. specify target | ||||
|         -D, --mkdir <dir>            make directory on device | ||||
|         -R, --rm <path>              remove file or directory on device (directories must be empty) | ||||
|         -V, --version                print the executable version  | ||||
|         -e, --exists                 check if the app with given bundle_id is installed or not  | ||||
|         -B, --list_bundle_id         list bundle_id  | ||||
|         -W, --no-wifi                ignore wifi devices | ||||
|  | ||||
| ## Examples | ||||
|  | ||||
| @@ -66,6 +93,9 @@ The commands below assume that you have an app called `my.app` with bundle id `b | ||||
|     // deploy and debug your app to a connected device | ||||
|     ios-deploy --debug --bundle my.app | ||||
|  | ||||
|     // deploy and debug your app to a connected device, skipping any wi-fi connection (use USB) | ||||
|     ios-deploy --debug --bundle my.app --no-wifi | ||||
|  | ||||
|     // deploy and launch your app to a connected device, but quit the debugger after | ||||
|     ios-deploy --justlaunch --debug --bundle my.app | ||||
|  | ||||
| @@ -88,19 +118,22 @@ The commands below assume that you have an app called `my.app` with bundle id `b | ||||
|     ios-deploy --exists --bundle_id com.apple.mobilemail | ||||
|  | ||||
|     // Download the Documents directory of the app *only* | ||||
|     ios-deploy --download=/Documents -bundle_id my.app.id --to ./my_download_location | ||||
|     ios-deploy --download=/Documents --bundle_id my.app.id --to ./my_download_location | ||||
|      | ||||
|     // List ids and names of connected devices | ||||
|     ios-deploy -c | ||||
|      | ||||
|     // Uninstall an app | ||||
|     ios-deploy --uninstall_only --bundle_id my.bundle.id | ||||
|      | ||||
|     // list all bundle ids of all apps on your device | ||||
|     ios-deploy --list_bundle_id | ||||
|  | ||||
| ## Demo | ||||
|  | ||||
| The included demo.app represents the minimum required to get code running on iOS. | ||||
|  | ||||
| * `make demo.app` will generate the demo.app executable. If it doesn't compile, modify IOS_SDK_VERSION in the Makefile. | ||||
| * `make demo.app` will generate the demo.app executable. If it doesn't compile, modify `IOS_SDK_VERSION` in the Makefile. | ||||
| * `make debug` will install demo.app and launch a LLDB session. | ||||
|  | ||||
| ## Notes | ||||
|   | ||||
							
								
								
									
										5
									
								
								demo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								demo/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| demo | ||||
| demo.app | ||||
| demo.dSYM | ||||
| /.DS_Store | ||||
| *~ | ||||
							
								
								
									
										24
									
								
								demo/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								demo/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| IOS_SDK_VERSION = 9.1 | ||||
|  | ||||
| IOS_CC = gcc -ObjC | ||||
| IOS_SDK = $(shell xcode-select --print-path)/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS$(IOS_SDK_VERSION).sdk | ||||
|  | ||||
| all: clean demo.app | ||||
|  | ||||
| demo.app: demo Info.plist | ||||
| 	mkdir -p demo.app | ||||
| 	cp demo demo.app/ | ||||
| 	cp Info.plist ResourceRules.plist demo.app/ | ||||
| 	codesign -f -s "iPhone Developer" --entitlements Entitlements.plist demo.app | ||||
|  | ||||
| demo: demo.c | ||||
| 	$(IOS_CC) -g -arch armv7 -isysroot $(IOS_SDK) -framework CoreFoundation -o demo demo.c | ||||
|  | ||||
| debug: all ios-deploy | ||||
| 	@../build/Release/ios-deploy --debug --bundle demo.app | ||||
|  | ||||
| clean: | ||||
| 	@rm -rf *.app demo demo.dSYM | ||||
| 	 | ||||
| ios-deploy: | ||||
| 	@xcodebuild -project ../ios-deploy.xcodeproj | ||||
| @@ -6,4 +6,4 @@ int main(int argc, const char* argv[]) { | ||||
|         printf("argv[%d] = %s\n", i, argv[i]); | ||||
|     } | ||||
|     return 0; | ||||
| } | ||||
| } | ||||
							
								
								
									
										537
									
								
								ios-deploy.xcodeproj/project.pbxproj
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										537
									
								
								ios-deploy.xcodeproj/project.pbxproj
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,537 @@ | ||||
| // !$*UTF8*$! | ||||
| { | ||||
| 	archiveVersion = 1; | ||||
| 	classes = { | ||||
| 	}; | ||||
| 	objectVersion = 46; | ||||
| 	objects = { | ||||
|  | ||||
| /* Begin PBXBuildFile section */ | ||||
| 		7E70899E1B587F29004D23AA /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899D1B587F29004D23AA /* CoreFoundation.framework */; }; | ||||
| 		7E7089A01B58801E004D23AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899F1B58801E004D23AA /* Foundation.framework */; }; | ||||
| 		7E8E3A861C45D4CE0017F6C1 /* ios_deploy_tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */; }; | ||||
| 		7E8E3A921C45D5380017F6C1 /* libios_deploy.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E8E3A911C45D5380017F6C1 /* libios_deploy.h */; settings = {ATTRIBUTES = (Public, ); }; }; | ||||
| 		7E8E3A941C45D5380017F6C1 /* libios_deploy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E8E3A931C45D5380017F6C1 /* libios_deploy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; | ||||
| 		7E8E3A9B1C45D5970017F6C1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899F1B58801E004D23AA /* Foundation.framework */; }; | ||||
| 		7E8E3A9D1C45D6290017F6C1 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E70899D1B587F29004D23AA /* CoreFoundation.framework */; }; | ||||
| 		7EDCC3CD1C45DC94002F9851 /* ios-deploy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E7089991B587DE4004D23AA /* ios-deploy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; | ||||
| /* End PBXBuildFile section */ | ||||
|  | ||||
| /* Begin PBXContainerItemProxy section */ | ||||
| 		7E8E3A991C45D5850017F6C1 /* PBXContainerItemProxy */ = { | ||||
| 			isa = PBXContainerItemProxy; | ||||
| 			containerPortal = 7E7089861B587BF3004D23AA /* Project object */; | ||||
| 			proxyType = 1; | ||||
| 			remoteGlobalIDString = 7E8E3A8E1C45D5380017F6C1; | ||||
| 			remoteInfo = "ios-deploy-lib"; | ||||
| 		}; | ||||
| 		7EDCC3CA1C45D933002F9851 /* PBXContainerItemProxy */ = { | ||||
| 			isa = PBXContainerItemProxy; | ||||
| 			containerPortal = 7E7089861B587BF3004D23AA /* Project object */; | ||||
| 			proxyType = 1; | ||||
| 			remoteGlobalIDString = 7E8E3A8E1C45D5380017F6C1; | ||||
| 			remoteInfo = "ios-deploy-lib"; | ||||
| 		}; | ||||
| /* End PBXContainerItemProxy section */ | ||||
|  | ||||
| /* Begin PBXFileReference section */ | ||||
| 		7E1C00CC1C3C93AF00D686B5 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; }; | ||||
| 		7E1C00CF1C3C9ABB00D686B5 /* lldb.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = lldb.py; path = src/scripts/lldb.py; sourceTree = SOURCE_ROOT; }; | ||||
| 		7E1C00D11C3C9CB000D686B5 /* lldb.py.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lldb.py.h; sourceTree = "<group>"; }; | ||||
| 		7E70898E1B587BF3004D23AA /* ios-deploy */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "ios-deploy"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
| 		7E7089991B587DE4004D23AA /* ios-deploy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "ios-deploy.m"; sourceTree = "<group>"; }; | ||||
| 		7E70899A1B587DE4004D23AA /* errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = errors.h; sourceTree = "<group>"; }; | ||||
| 		7E70899B1B587DE4004D23AA /* MobileDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileDevice.h; sourceTree = "<group>"; }; | ||||
| 		7E70899D1B587F29004D23AA /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = System/Library/Frameworks/CoreFoundation.framework; sourceTree = SDKROOT; }; | ||||
| 		7E70899F1B58801E004D23AA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; | ||||
| 		7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "ios-deploy-tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
| 		7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ios_deploy_tests.m; sourceTree = "<group>"; }; | ||||
| 		7E8E3A871C45D4CE0017F6C1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; | ||||
| 		7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libios-deploy.a"; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||
| 		7E8E3A911C45D5380017F6C1 /* libios_deploy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libios_deploy.h; sourceTree = "<group>"; }; | ||||
| 		7E8E3A931C45D5380017F6C1 /* libios_deploy.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = libios_deploy.m; sourceTree = "<group>"; }; | ||||
| 		7EDCC3CE1C45DFF0002F9851 /* check_reqs.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; path = check_reqs.js; sourceTree = "<group>"; }; | ||||
| /* End PBXFileReference section */ | ||||
|  | ||||
| /* Begin PBXFrameworksBuildPhase section */ | ||||
| 		7E70898B1B587BF3004D23AA /* Frameworks */ = { | ||||
| 			isa = PBXFrameworksBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7E7089A01B58801E004D23AA /* Foundation.framework in Frameworks */, | ||||
| 				7E70899E1B587F29004D23AA /* CoreFoundation.framework in Frameworks */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| 		7E8E3A801C45D4CE0017F6C1 /* Frameworks */ = { | ||||
| 			isa = PBXFrameworksBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| 		7E8E3A8C1C45D5380017F6C1 /* Frameworks */ = { | ||||
| 			isa = PBXFrameworksBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7E8E3A9D1C45D6290017F6C1 /* CoreFoundation.framework in Frameworks */, | ||||
| 				7E8E3A9B1C45D5970017F6C1 /* Foundation.framework in Frameworks */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXFrameworksBuildPhase section */ | ||||
|  | ||||
| /* Begin PBXGroup section */ | ||||
| 		7E1C00CE1C3C9A7700D686B5 /* scripts */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7EDCC3CE1C45DFF0002F9851 /* check_reqs.js */, | ||||
| 				7E1C00CF1C3C9ABB00D686B5 /* lldb.py */, | ||||
| 			); | ||||
| 			name = scripts; | ||||
| 			path = src/scripts; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E7089851B587BF3004D23AA = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E1C00CE1C3C9A7700D686B5 /* scripts */, | ||||
| 				7E7089901B587BF3004D23AA /* ios-deploy */, | ||||
| 				7E8E3A841C45D4CE0017F6C1 /* ios-deploy-tests */, | ||||
| 				7E8E3A901C45D5380017F6C1 /* ios-deploy-lib */, | ||||
| 				7E7089A21B588219004D23AA /* Frameworks */, | ||||
| 				7E70898F1B587BF3004D23AA /* Products */, | ||||
| 			); | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E70898F1B587BF3004D23AA /* Products */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E70898E1B587BF3004D23AA /* ios-deploy */, | ||||
| 				7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */, | ||||
| 				7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */, | ||||
| 			); | ||||
| 			name = Products; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E7089901B587BF3004D23AA /* ios-deploy */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E1C00D11C3C9CB000D686B5 /* lldb.py.h */, | ||||
| 				7E1C00CC1C3C93AF00D686B5 /* version.h */, | ||||
| 				7E7089991B587DE4004D23AA /* ios-deploy.m */, | ||||
| 				7E70899A1B587DE4004D23AA /* errors.h */, | ||||
| 				7E70899B1B587DE4004D23AA /* MobileDevice.h */, | ||||
| 			); | ||||
| 			name = "ios-deploy"; | ||||
| 			path = "src/ios-deploy"; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E7089A21B588219004D23AA /* Frameworks */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E70899F1B58801E004D23AA /* Foundation.framework */, | ||||
| 				7E70899D1B587F29004D23AA /* CoreFoundation.framework */, | ||||
| 			); | ||||
| 			name = Frameworks; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E8E3A841C45D4CE0017F6C1 /* ios-deploy-tests */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E8E3A851C45D4CE0017F6C1 /* ios_deploy_tests.m */, | ||||
| 				7E8E3A871C45D4CE0017F6C1 /* Info.plist */, | ||||
| 			); | ||||
| 			name = "ios-deploy-tests"; | ||||
| 			path = "src/ios-deploy-tests"; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| 		7E8E3A901C45D5380017F6C1 /* ios-deploy-lib */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				7E8E3A911C45D5380017F6C1 /* libios_deploy.h */, | ||||
| 				7E8E3A931C45D5380017F6C1 /* libios_deploy.m */, | ||||
| 			); | ||||
| 			name = "ios-deploy-lib"; | ||||
| 			path = "src/ios-deploy-lib"; | ||||
| 			sourceTree = "<group>"; | ||||
| 		}; | ||||
| /* End PBXGroup section */ | ||||
|  | ||||
| /* Begin PBXHeadersBuildPhase section */ | ||||
| 		7E8E3A8D1C45D5380017F6C1 /* Headers */ = { | ||||
| 			isa = PBXHeadersBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7E8E3A921C45D5380017F6C1 /* libios_deploy.h in Headers */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXHeadersBuildPhase section */ | ||||
|  | ||||
| /* Begin PBXNativeTarget section */ | ||||
| 		7E70898D1B587BF3004D23AA /* ios-deploy */ = { | ||||
| 			isa = PBXNativeTarget; | ||||
| 			buildConfigurationList = 7E7089951B587BF3004D23AA /* Build configuration list for PBXNativeTarget "ios-deploy" */; | ||||
| 			buildPhases = ( | ||||
| 				7EDCC3CF1C45E03B002F9851 /* ShellScript */, | ||||
| 				7E70898B1B587BF3004D23AA /* Frameworks */, | ||||
| 				7EDCC3CC1C45DC89002F9851 /* Sources */, | ||||
| 			); | ||||
| 			buildRules = ( | ||||
| 			); | ||||
| 			dependencies = ( | ||||
| 				7E8E3A9A1C45D5850017F6C1 /* PBXTargetDependency */, | ||||
| 			); | ||||
| 			name = "ios-deploy"; | ||||
| 			productName = "ios-deploy"; | ||||
| 			productReference = 7E70898E1B587BF3004D23AA /* ios-deploy */; | ||||
| 			productType = "com.apple.product-type.tool"; | ||||
| 		}; | ||||
| 		7E8E3A821C45D4CE0017F6C1 /* ios-deploy-tests */ = { | ||||
| 			isa = PBXNativeTarget; | ||||
| 			buildConfigurationList = 7E8E3A8A1C45D4CE0017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-tests" */; | ||||
| 			buildPhases = ( | ||||
| 				7E8E3A7F1C45D4CE0017F6C1 /* Sources */, | ||||
| 				7E8E3A801C45D4CE0017F6C1 /* Frameworks */, | ||||
| 				7E8E3A811C45D4CE0017F6C1 /* Resources */, | ||||
| 			); | ||||
| 			buildRules = ( | ||||
| 			); | ||||
| 			dependencies = ( | ||||
| 				7EDCC3CB1C45D933002F9851 /* PBXTargetDependency */, | ||||
| 			); | ||||
| 			name = "ios-deploy-tests"; | ||||
| 			productName = "ios-deploy-tests"; | ||||
| 			productReference = 7E8E3A831C45D4CE0017F6C1 /* ios-deploy-tests.xctest */; | ||||
| 			productType = "com.apple.product-type.bundle.unit-test"; | ||||
| 		}; | ||||
| 		7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */ = { | ||||
| 			isa = PBXNativeTarget; | ||||
| 			buildConfigurationList = 7E8E3A951C45D5380017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-lib" */; | ||||
| 			buildPhases = ( | ||||
| 				7E8E3A8B1C45D5380017F6C1 /* Sources */, | ||||
| 				7E8E3A8C1C45D5380017F6C1 /* Frameworks */, | ||||
| 				7E8E3A8D1C45D5380017F6C1 /* Headers */, | ||||
| 			); | ||||
| 			buildRules = ( | ||||
| 			); | ||||
| 			dependencies = ( | ||||
| 			); | ||||
| 			name = "ios-deploy-lib"; | ||||
| 			productName = "ios-deploy-lib"; | ||||
| 			productReference = 7E8E3A8F1C45D5380017F6C1 /* libios-deploy.a */; | ||||
| 			productType = "com.apple.product-type.library.static"; | ||||
| 		}; | ||||
| /* End PBXNativeTarget section */ | ||||
|  | ||||
| /* Begin PBXProject section */ | ||||
| 		7E7089861B587BF3004D23AA /* Project object */ = { | ||||
| 			isa = PBXProject; | ||||
| 			attributes = { | ||||
| 				LastUpgradeCheck = 0710; | ||||
| 				ORGANIZATIONNAME = PhoneGap; | ||||
| 				TargetAttributes = { | ||||
| 					7E70898D1B587BF3004D23AA = { | ||||
| 						CreatedOnToolsVersion = 6.4; | ||||
| 					}; | ||||
| 					7E8E3A821C45D4CE0017F6C1 = { | ||||
| 						CreatedOnToolsVersion = 7.2; | ||||
| 					}; | ||||
| 					7E8E3A8E1C45D5380017F6C1 = { | ||||
| 						CreatedOnToolsVersion = 7.2; | ||||
| 					}; | ||||
| 				}; | ||||
| 			}; | ||||
| 			buildConfigurationList = 7E7089891B587BF3004D23AA /* Build configuration list for PBXProject "ios-deploy" */; | ||||
| 			compatibilityVersion = "Xcode 3.2"; | ||||
| 			developmentRegion = English; | ||||
| 			hasScannedForEncodings = 0; | ||||
| 			knownRegions = ( | ||||
| 				en, | ||||
| 				Base, | ||||
| 			); | ||||
| 			mainGroup = 7E7089851B587BF3004D23AA; | ||||
| 			productRefGroup = 7E70898F1B587BF3004D23AA /* Products */; | ||||
| 			projectDirPath = ""; | ||||
| 			projectRoot = ""; | ||||
| 			targets = ( | ||||
| 				7E70898D1B587BF3004D23AA /* ios-deploy */, | ||||
| 				7E8E3A821C45D4CE0017F6C1 /* ios-deploy-tests */, | ||||
| 				7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */, | ||||
| 			); | ||||
| 		}; | ||||
| /* End PBXProject section */ | ||||
|  | ||||
| /* Begin PBXResourcesBuildPhase section */ | ||||
| 		7E8E3A811C45D4CE0017F6C1 /* Resources */ = { | ||||
| 			isa = PBXResourcesBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXResourcesBuildPhase section */ | ||||
|  | ||||
| /* Begin PBXShellScriptBuildPhase section */ | ||||
| 		7EDCC3CF1C45E03B002F9851 /* ShellScript */ = { | ||||
| 			isa = PBXShellScriptBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 			); | ||||
| 			inputPaths = ( | ||||
| 			); | ||||
| 			outputPaths = ( | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 			shellPath = /bin/sh; | ||||
| 			shellScript = "echo \"\\\"# AUTO-GENERATED - DO NOT MODIFY\\n\\\"\" > src/ios-deploy/lldb.py.h\nawk '{ print \"\\\"\"$0\"\\\\n\\\"\"}' src/scripts/lldb.py >> src/ios-deploy/lldb.py.h"; | ||||
| 		}; | ||||
| /* End PBXShellScriptBuildPhase section */ | ||||
|  | ||||
| /* Begin PBXSourcesBuildPhase section */ | ||||
| 		7E8E3A7F1C45D4CE0017F6C1 /* Sources */ = { | ||||
| 			isa = PBXSourcesBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7E8E3A861C45D4CE0017F6C1 /* ios_deploy_tests.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| 		7E8E3A8B1C45D5380017F6C1 /* Sources */ = { | ||||
| 			isa = PBXSourcesBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7E8E3A941C45D5380017F6C1 /* libios_deploy.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| 		7EDCC3CC1C45DC89002F9851 /* Sources */ = { | ||||
| 			isa = PBXSourcesBuildPhase; | ||||
| 			buildActionMask = 2147483647; | ||||
| 			files = ( | ||||
| 				7EDCC3CD1C45DC94002F9851 /* ios-deploy.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXSourcesBuildPhase section */ | ||||
|  | ||||
| /* Begin PBXTargetDependency section */ | ||||
| 		7E8E3A9A1C45D5850017F6C1 /* PBXTargetDependency */ = { | ||||
| 			isa = PBXTargetDependency; | ||||
| 			target = 7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */; | ||||
| 			targetProxy = 7E8E3A991C45D5850017F6C1 /* PBXContainerItemProxy */; | ||||
| 		}; | ||||
| 		7EDCC3CB1C45D933002F9851 /* PBXTargetDependency */ = { | ||||
| 			isa = PBXTargetDependency; | ||||
| 			target = 7E8E3A8E1C45D5380017F6C1 /* ios-deploy-lib */; | ||||
| 			targetProxy = 7EDCC3CA1C45D933002F9851 /* PBXContainerItemProxy */; | ||||
| 		}; | ||||
| /* End PBXTargetDependency section */ | ||||
|  | ||||
| /* Begin XCBuildConfiguration section */ | ||||
| 		7E7089931B587BF3004D23AA /* Debug */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				ALWAYS_SEARCH_USER_PATHS = NO; | ||||
| 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||||
| 				CLANG_CXX_LIBRARY = "libc++"; | ||||
| 				CLANG_ENABLE_MODULES = YES; | ||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | ||||
| 				CLANG_WARN_BOOL_CONVERSION = YES; | ||||
| 				CLANG_WARN_CONSTANT_CONVERSION = YES; | ||||
| 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||||
| 				CLANG_WARN_EMPTY_BODY = YES; | ||||
| 				CLANG_WARN_ENUM_CONVERSION = YES; | ||||
| 				CLANG_WARN_INT_CONVERSION = YES; | ||||
| 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||||
| 				CLANG_WARN_UNREACHABLE_CODE = YES; | ||||
| 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||||
| 				COPY_PHASE_STRIP = NO; | ||||
| 				DEBUG_INFORMATION_FORMAT = dwarf; | ||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||
| 				ENABLE_TESTABILITY = YES; | ||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||
| 				GCC_DYNAMIC_NO_PIC = NO; | ||||
| 				GCC_NO_COMMON_BLOCKS = YES; | ||||
| 				GCC_OPTIMIZATION_LEVEL = 0; | ||||
| 				GCC_PREPROCESSOR_DEFINITIONS = ( | ||||
| 					"DEBUG=1", | ||||
| 					"$(inherited)", | ||||
| 				); | ||||
| 				GCC_SYMBOLS_PRIVATE_EXTERN = NO; | ||||
| 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||||
| 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||||
| 				GCC_WARN_UNDECLARED_SELECTOR = YES; | ||||
| 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||||
| 				GCC_WARN_UNUSED_FUNCTION = YES; | ||||
| 				GCC_WARN_UNUSED_VARIABLE = YES; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.8; | ||||
| 				MTL_ENABLE_DEBUG_INFO = YES; | ||||
| 				ONLY_ACTIVE_ARCH = YES; | ||||
| 				OTHER_LDFLAGS = ( | ||||
| 					"-framework", | ||||
| 					MobileDevice, | ||||
| 					"-F/System/Library/PrivateFrameworks", | ||||
| 				); | ||||
| 				SDKROOT = macosx; | ||||
| 			}; | ||||
| 			name = Debug; | ||||
| 		}; | ||||
| 		7E7089941B587BF3004D23AA /* Release */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				ALWAYS_SEARCH_USER_PATHS = NO; | ||||
| 				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||||
| 				CLANG_CXX_LIBRARY = "libc++"; | ||||
| 				CLANG_ENABLE_MODULES = YES; | ||||
| 				CLANG_ENABLE_OBJC_ARC = YES; | ||||
| 				CLANG_WARN_BOOL_CONVERSION = YES; | ||||
| 				CLANG_WARN_CONSTANT_CONVERSION = YES; | ||||
| 				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||||
| 				CLANG_WARN_EMPTY_BODY = YES; | ||||
| 				CLANG_WARN_ENUM_CONVERSION = YES; | ||||
| 				CLANG_WARN_INT_CONVERSION = YES; | ||||
| 				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||||
| 				CLANG_WARN_UNREACHABLE_CODE = YES; | ||||
| 				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||||
| 				COPY_PHASE_STRIP = NO; | ||||
| 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; | ||||
| 				ENABLE_NS_ASSERTIONS = NO; | ||||
| 				ENABLE_STRICT_OBJC_MSGSEND = YES; | ||||
| 				GCC_C_LANGUAGE_STANDARD = gnu99; | ||||
| 				GCC_NO_COMMON_BLOCKS = YES; | ||||
| 				GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||||
| 				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||||
| 				GCC_WARN_UNDECLARED_SELECTOR = YES; | ||||
| 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||||
| 				GCC_WARN_UNUSED_FUNCTION = YES; | ||||
| 				GCC_WARN_UNUSED_VARIABLE = YES; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.8; | ||||
| 				MTL_ENABLE_DEBUG_INFO = NO; | ||||
| 				OTHER_LDFLAGS = ( | ||||
| 					"-framework", | ||||
| 					MobileDevice, | ||||
| 					"-F/System/Library/PrivateFrameworks", | ||||
| 				); | ||||
| 				SDKROOT = macosx; | ||||
| 			}; | ||||
| 			name = Release; | ||||
| 		}; | ||||
| 		7E7089961B587BF3004D23AA /* Debug */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| 			}; | ||||
| 			name = Debug; | ||||
| 		}; | ||||
| 		7E7089971B587BF3004D23AA /* Release */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| 			}; | ||||
| 			name = Release; | ||||
| 		}; | ||||
| 		7E8E3A881C45D4CE0017F6C1 /* Debug */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				CODE_SIGN_IDENTITY = "-"; | ||||
| 				COMBINE_HIDPI_IMAGES = YES; | ||||
| 				INFOPLIST_FILE = "src/ios-deploy-tests/Info.plist"; | ||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.11; | ||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "com.phonegap.ios-deploy-tests"; | ||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| 			}; | ||||
| 			name = Debug; | ||||
| 		}; | ||||
| 		7E8E3A891C45D4CE0017F6C1 /* Release */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				CODE_SIGN_IDENTITY = "-"; | ||||
| 				COMBINE_HIDPI_IMAGES = YES; | ||||
| 				INFOPLIST_FILE = "src/ios-deploy-tests/Info.plist"; | ||||
| 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.11; | ||||
| 				PRODUCT_BUNDLE_IDENTIFIER = "com.phonegap.ios-deploy-tests"; | ||||
| 				PRODUCT_NAME = "$(TARGET_NAME)"; | ||||
| 			}; | ||||
| 			name = Release; | ||||
| 		}; | ||||
| 		7E8E3A961C45D5380017F6C1 /* Debug */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				CODE_SIGN_IDENTITY = "-"; | ||||
| 				EXECUTABLE_PREFIX = lib; | ||||
| 				INSTALL_PATH = ""; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.11; | ||||
| 				OTHER_LDFLAGS = ( | ||||
| 					"-framework", | ||||
| 					MobileDevice, | ||||
| 					"-F/System/Library/PrivateFrameworks", | ||||
| 				); | ||||
| 				PRODUCT_NAME = "ios-deploy"; | ||||
| 				PUBLIC_HEADERS_FOLDER_PATH = ""; | ||||
| 			}; | ||||
| 			name = Debug; | ||||
| 		}; | ||||
| 		7E8E3A971C45D5380017F6C1 /* Release */ = { | ||||
| 			isa = XCBuildConfiguration; | ||||
| 			buildSettings = { | ||||
| 				CODE_SIGN_IDENTITY = "-"; | ||||
| 				EXECUTABLE_PREFIX = lib; | ||||
| 				INSTALL_PATH = ""; | ||||
| 				MACOSX_DEPLOYMENT_TARGET = 10.11; | ||||
| 				OTHER_LDFLAGS = ( | ||||
| 					"-framework", | ||||
| 					MobileDevice, | ||||
| 					"-F/System/Library/PrivateFrameworks", | ||||
| 				); | ||||
| 				PRODUCT_NAME = "ios-deploy"; | ||||
| 				PUBLIC_HEADERS_FOLDER_PATH = ""; | ||||
| 			}; | ||||
| 			name = Release; | ||||
| 		}; | ||||
| /* End XCBuildConfiguration section */ | ||||
|  | ||||
| /* Begin XCConfigurationList section */ | ||||
| 		7E7089891B587BF3004D23AA /* Build configuration list for PBXProject "ios-deploy" */ = { | ||||
| 			isa = XCConfigurationList; | ||||
| 			buildConfigurations = ( | ||||
| 				7E7089931B587BF3004D23AA /* Debug */, | ||||
| 				7E7089941B587BF3004D23AA /* Release */, | ||||
| 			); | ||||
| 			defaultConfigurationIsVisible = 0; | ||||
| 			defaultConfigurationName = Release; | ||||
| 		}; | ||||
| 		7E7089951B587BF3004D23AA /* Build configuration list for PBXNativeTarget "ios-deploy" */ = { | ||||
| 			isa = XCConfigurationList; | ||||
| 			buildConfigurations = ( | ||||
| 				7E7089961B587BF3004D23AA /* Debug */, | ||||
| 				7E7089971B587BF3004D23AA /* Release */, | ||||
| 			); | ||||
| 			defaultConfigurationIsVisible = 0; | ||||
| 			defaultConfigurationName = Release; | ||||
| 		}; | ||||
| 		7E8E3A8A1C45D4CE0017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-tests" */ = { | ||||
| 			isa = XCConfigurationList; | ||||
| 			buildConfigurations = ( | ||||
| 				7E8E3A881C45D4CE0017F6C1 /* Debug */, | ||||
| 				7E8E3A891C45D4CE0017F6C1 /* Release */, | ||||
| 			); | ||||
| 			defaultConfigurationIsVisible = 0; | ||||
| 			defaultConfigurationName = Release; | ||||
| 		}; | ||||
| 		7E8E3A951C45D5380017F6C1 /* Build configuration list for PBXNativeTarget "ios-deploy-lib" */ = { | ||||
| 			isa = XCConfigurationList; | ||||
| 			buildConfigurations = ( | ||||
| 				7E8E3A961C45D5380017F6C1 /* Debug */, | ||||
| 				7E8E3A971C45D5380017F6C1 /* Release */, | ||||
| 			); | ||||
| 			defaultConfigurationIsVisible = 0; | ||||
| 			defaultConfigurationName = Release; | ||||
| 		}; | ||||
| /* End XCConfigurationList section */ | ||||
| 	}; | ||||
| 	rootObject = 7E7089861B587BF3004D23AA /* Project object */; | ||||
| } | ||||
| @@ -0,0 +1,56 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <Scheme | ||||
|    LastUpgradeVersion = "0720" | ||||
|    version = "1.3"> | ||||
|    <BuildAction | ||||
|       parallelizeBuildables = "YES" | ||||
|       buildImplicitDependencies = "YES"> | ||||
|    </BuildAction> | ||||
|    <TestAction | ||||
|       buildConfiguration = "Debug" | ||||
|       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||||
|       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||||
|       shouldUseLaunchSchemeArgsEnv = "YES"> | ||||
|       <Testables> | ||||
|          <TestableReference | ||||
|             skipped = "NO"> | ||||
|             <BuildableReference | ||||
|                BuildableIdentifier = "primary" | ||||
|                BlueprintIdentifier = "7E8E3A821C45D4CE0017F6C1" | ||||
|                BuildableName = "ios-deploy-tests.xctest" | ||||
|                BlueprintName = "ios-deploy-tests" | ||||
|                ReferencedContainer = "container:ios-deploy.xcodeproj"> | ||||
|             </BuildableReference> | ||||
|          </TestableReference> | ||||
|       </Testables> | ||||
|       <AdditionalOptions> | ||||
|       </AdditionalOptions> | ||||
|    </TestAction> | ||||
|    <LaunchAction | ||||
|       buildConfiguration = "Debug" | ||||
|       selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||||
|       selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||||
|       launchStyle = "0" | ||||
|       useCustomWorkingDirectory = "NO" | ||||
|       ignoresPersistentStateOnLaunch = "NO" | ||||
|       debugDocumentVersioning = "YES" | ||||
|       debugServiceExtension = "internal" | ||||
|       allowLocationSimulation = "YES"> | ||||
|       <AdditionalOptions> | ||||
|       </AdditionalOptions> | ||||
|    </LaunchAction> | ||||
|    <ProfileAction | ||||
|       buildConfiguration = "Release" | ||||
|       shouldUseLaunchSchemeArgsEnv = "YES" | ||||
|       savedToolIdentifier = "" | ||||
|       useCustomWorkingDirectory = "NO" | ||||
|       debugDocumentVersioning = "YES"> | ||||
|    </ProfileAction> | ||||
|    <AnalyzeAction | ||||
|       buildConfiguration = "Debug"> | ||||
|    </AnalyzeAction> | ||||
|    <ArchiveAction | ||||
|       buildConfiguration = "Release" | ||||
|       revealArchiveInOrganizer = "YES"> | ||||
|    </ArchiveAction> | ||||
| </Scheme> | ||||
							
								
								
									
										23
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,21 +1,34 @@ | ||||
| { | ||||
|   "name": "ios-deploy", | ||||
|   "version": "1.6.2", | ||||
|   "os" : [ "darwin" ], | ||||
|   "description": "launch iOS apps iOS devices from the command line (Xcode 6)", | ||||
|   "version": "1.9.0", | ||||
|   "os": [ | ||||
|     "darwin" | ||||
|   ], | ||||
|   "description": "launch iOS apps iOS devices from the command line (Xcode 7)", | ||||
|   "main": "ios-deploy", | ||||
|   "scripts": { | ||||
|       "preinstall": "make ios-deploy" | ||||
|   }, | ||||
|   "bin" : "./ios-deploy" , | ||||
|   "bin": "./build/Release/ios-deploy", | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "https://github.com/phonegap/ios-deploy" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|   	"jshint": "2.5.8" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "preinstall": "./src/scripts/check_reqs.js && xcodebuild", | ||||
|     "test": "npm run pycompile && npm run jshint && xcodebuild -target ios-deploy-lib && xcodebuild test -scheme ios-deploy-tests", | ||||
|     "jshint": "node node_modules/jshint/bin/jshint src/scripts/*.js", | ||||
|     "pycompile": "python -m py_compile src/scripts/*.py" | ||||
|   }, | ||||
|   "keywords": [ | ||||
|     "ios-deploy", | ||||
|     "deploy to iOS device" | ||||
|   ], | ||||
|   "bugs": { | ||||
|       "url": "https://github.com/phonegap/ios-deploy/issues" | ||||
|    }, | ||||
|   "author": "Greg Hughes", | ||||
|   "license": "GPLv3" | ||||
| } | ||||
|   | ||||
| @@ -1,3 +0,0 @@ | ||||
| #!/usr/bin/env bash | ||||
| echo "$ make" | ||||
| make | ||||
							
								
								
									
										5
									
								
								src/ios-deploy-lib/libios_deploy.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/ios-deploy-lib/libios_deploy.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| #import <Foundation/Foundation.h> | ||||
|  | ||||
| @interface ios_deploy_lib : NSObject | ||||
|  | ||||
| @end | ||||
							
								
								
									
										5
									
								
								src/ios-deploy-lib/libios_deploy.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/ios-deploy-lib/libios_deploy.m
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| #import "libios_deploy.h" | ||||
|  | ||||
| @implementation ios_deploy_lib | ||||
|  | ||||
| @end | ||||
							
								
								
									
										24
									
								
								src/ios-deploy-tests/Info.plist
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								src/ios-deploy-tests/Info.plist
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | ||||
| <dict> | ||||
| 	<key>CFBundleDevelopmentRegion</key> | ||||
| 	<string>en</string> | ||||
| 	<key>CFBundleExecutable</key> | ||||
| 	<string>$(EXECUTABLE_NAME)</string> | ||||
| 	<key>CFBundleIdentifier</key> | ||||
| 	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | ||||
| 	<key>CFBundleInfoDictionaryVersion</key> | ||||
| 	<string>6.0</string> | ||||
| 	<key>CFBundleName</key> | ||||
| 	<string>$(PRODUCT_NAME)</string> | ||||
| 	<key>CFBundlePackageType</key> | ||||
| 	<string>BNDL</string> | ||||
| 	<key>CFBundleShortVersionString</key> | ||||
| 	<string>1.0</string> | ||||
| 	<key>CFBundleSignature</key> | ||||
| 	<string>????</string> | ||||
| 	<key>CFBundleVersion</key> | ||||
| 	<string>1</string> | ||||
| </dict> | ||||
| </plist> | ||||
							
								
								
									
										31
									
								
								src/ios-deploy-tests/ios_deploy_tests.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/ios-deploy-tests/ios_deploy_tests.m
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| #import <XCTest/XCTest.h> | ||||
|  | ||||
| @interface ios_deploy_tests : XCTestCase | ||||
|  | ||||
| @end | ||||
|  | ||||
| @implementation ios_deploy_tests | ||||
|  | ||||
| - (void)setUp { | ||||
|     [super setUp]; | ||||
|     // Put setup code here. This method is called before the invocation of each test method in the class. | ||||
| } | ||||
|  | ||||
| - (void)tearDown { | ||||
|     // Put teardown code here. This method is called after the invocation of each test method in the class. | ||||
|     [super tearDown]; | ||||
| } | ||||
|  | ||||
| - (void)testExample { | ||||
|     // This is an example of a functional test case. | ||||
|     // Use XCTAssert and related functions to verify your tests produce the correct results. | ||||
| } | ||||
|  | ||||
| - (void)testPerformanceExample { | ||||
|     // This is an example of a performance test case. | ||||
|     [self measureBlock:^{ | ||||
|         // Put the code you want to measure the time of here. | ||||
|     }]; | ||||
| } | ||||
|  | ||||
| @end | ||||
| @@ -195,6 +195,7 @@ mach_error_t AMDeviceNotificationSubscribe(am_device_notification_callback | ||||
|     callback, unsigned int unused0, unsigned int unused1, void* //unsigned int
 | ||||
|     dn_unknown3, struct am_device_notification **notification); | ||||
| 
 | ||||
| 
 | ||||
| /*  Connects to the iPhone. Pass in the am_device structure that the
 | ||||
|  *  notification callback will give to you. | ||||
|  * | ||||
| @@ -9,7 +9,29 @@ typedef struct error_id_to_message { | ||||
| 	const char* message; | ||||
| } error_id_to_message_t; | ||||
| 
 | ||||
| // Taken from https://github.com/samdmarshall/SDMMobileDevice/blob/master/Framework/MobileDevice/Error/SDMMD_Error.h
 | ||||
| // Parts of error code to localization id map is taken from SDMMobileDevice framework. Associated license is bellow.
 | ||||
| // https://github.com/samdmarshall/SDMMobileDevice/blob/master/Framework/MobileDevice/Error/SDMMD_Error.h
 | ||||
| //
 | ||||
| // Copyright (c) 2014, Sam Marshall
 | ||||
| // All rights reserved.
 | ||||
| //
 | ||||
| // Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 
 | ||||
| // following conditions are met:
 | ||||
| //
 | ||||
| // 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
 | ||||
| //
 | ||||
| // 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer 
 | ||||
| // 		in the documentation and/or other materials provided with the distribution.
 | ||||
| //
 | ||||
| // 3. Neither the name of Sam Marshall nor the names of its contributors may be used to endorse or promote products derived from this
 | ||||
| // 		software without specific prior written permission.
 | ||||
| //
 | ||||
| // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | ||||
| // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 | ||||
| // COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | ||||
| // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | ||||
| // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | ||||
| // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | ||||
| static errorcode_to_id_t errorcode_to_id[] = { | ||||
| 	{ 0xe8000001, "kAMDUndefinedError" }, | ||||
| 	{ 0xe8000002, "kAMDBadHeaderError" }, | ||||
| @@ -168,7 +190,13 @@ static errorcode_to_id_t errorcode_to_id[] = { | ||||
| 	{ 0xe800009b, "kAMDMCChallengeRequired" }, | ||||
| 	{ 0xe800009c, "kAMDMissingBundleVersionError" }, | ||||
| 
 | ||||
| 	{ 0xe8008015, "A valid provisioning profile for this executable was not found."}, | ||||
| 	// Errors without id->string mapping.
 | ||||
| 	{ 0xe8008015, "A valid provisioning profile for this executable was not found." }, | ||||
| 	{ 0xe8008016, "The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile." }, | ||||
| 	{ 0xe8008017, "A signed resource has been added, modified, or deleted." }, | ||||
| 	{ 0xe8008018, "The identity used to sign the executable is no longer valid. Please verify that your device’s clock is properly set, and that your signing certificate is not expired." }, | ||||
| 	{ 0xe8008019, "The application does not have a valid signature." }, | ||||
| 	{ 0xe800801c, "No code signature found." }, | ||||
| }; | ||||
| 
 | ||||
| const int errorcode_to_id_count = sizeof(errorcode_to_id) / sizeof(errorcode_to_id_t); | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								src/ios-deploy/version.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/ios-deploy/version.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| "1.9.0" | ||||
							
								
								
									
										56
									
								
								src/scripts/check_reqs.js
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										56
									
								
								src/scripts/check_reqs.js
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,56 @@ | ||||
| #!/usr/bin/env node | ||||
|  | ||||
| var util = require('util'); | ||||
| var os = require('os'); | ||||
| var child_process = require('child_process'); | ||||
|  | ||||
| var XCODEBUILD_MIN_VERSION = '6.0'; | ||||
| var XCODEBUILD_NOT_FOUND_MESSAGE = util.format('Please install Xcode version %s or greater from the Mac App Store.', XCODEBUILD_MIN_VERSION); | ||||
| var TOOL = 'xcodebuild'; | ||||
|  | ||||
| var xcode_version = child_process.spawn(TOOL, ['-version']), | ||||
| 	version_string = ''; | ||||
|  | ||||
| xcode_version.stdout.on('data', function (data) { | ||||
| 	version_string += data; | ||||
| }); | ||||
|  | ||||
| xcode_version.stderr.on('data', function (data) { | ||||
| 	console.log('stderr: ' + data); | ||||
| }); | ||||
|  | ||||
| xcode_version.on('error', function (err) { | ||||
| 	console.log(util.format('Tool %s was not found. %s', TOOL, XCODEBUILD_NOT_FOUND_MESSAGE)); | ||||
| }); | ||||
|  | ||||
| xcode_version.on('close', function (code) { | ||||
| 	if (code === 0) { | ||||
| 		var arr = version_string.match(/^Xcode (\d+\.\d+)/); | ||||
| 		var ver = arr[1]; | ||||
|  | ||||
| 		if (os.release() >= '15.0.0' && ver < '7.0') { | ||||
| 			console.log(util.format('You need at least Xcode 7.0 when you are on OS X 10.11 El Capitan (you have version %s)', ver)); | ||||
| 			process.exit(1); | ||||
| 		} | ||||
|  | ||||
| 		if (ver < XCODEBUILD_MIN_VERSION) { | ||||
| 		    console.log(util.format('%s : %s. (you have version %s)', TOOL, XCODEBUILD_NOT_FOUND_MESSAGE, ver)); | ||||
| 		} | ||||
| 		 | ||||
| 		if (os.release() >= '15.0.0') { // print the El Capitan warning | ||||
| 			console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); | ||||
| 			console.log('!!!! WARNING: You are on OS X 10.11 El Capitan, you may need to add the'); | ||||
| 			console.log('!!!! WARNING:   `--unsafe-perm=true` flag when running `npm install`'); | ||||
| 			console.log('!!!! WARNING:   or else it will fail.'); | ||||
| 			console.log('!!!! WARNING: link:'); | ||||
| 			console.log('!!!! WARNING:   https://github.com/phonegap/ios-deploy#os-x-1011-el-capitan'); | ||||
| 			console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); | ||||
| 		} | ||||
| 		 | ||||
| 	} | ||||
| 	process.exit(code); | ||||
| }); | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										85
									
								
								src/scripts/lldb.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								src/scripts/lldb.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | ||||
| import lldb | ||||
| import os | ||||
| import sys | ||||
| import shlex | ||||
|  | ||||
| def connect_command(debugger, command, result, internal_dict): | ||||
|     # These two are passed in by the script which loads us | ||||
|     connect_url = internal_dict['fruitstrap_connect_url'] | ||||
|     error = lldb.SBError() | ||||
|  | ||||
|     process = lldb.target.ConnectRemote(lldb.target.GetDebugger().GetListener(), connect_url, None, error) | ||||
|  | ||||
|     # Wait for connection to succeed | ||||
|     listener = lldb.target.GetDebugger().GetListener() | ||||
|     listener.StartListeningForEvents(process.GetBroadcaster(), lldb.SBProcess.eBroadcastBitStateChanged) | ||||
|     events = [] | ||||
|     state = (process.GetState() or lldb.eStateInvalid) | ||||
|     while state != lldb.eStateConnected: | ||||
|         event = lldb.SBEvent() | ||||
|         if listener.WaitForEvent(1, event): | ||||
|             state = process.GetStateFromEvent(event) | ||||
|             events.append(event) | ||||
|         else: | ||||
|             state = lldb.eStateInvalid | ||||
|  | ||||
|     # Add events back to queue, otherwise lldb freezes | ||||
|     for event in events: | ||||
|         listener.AddEvent(event) | ||||
|  | ||||
| def run_command(debugger, command, result, internal_dict): | ||||
|     device_app = internal_dict['fruitstrap_device_app'] | ||||
|     args = command.split('--',1) | ||||
|     error = lldb.SBError() | ||||
|     lldb.target.modules[0].SetPlatformFileSpec(lldb.SBFileSpec(device_app)) | ||||
|     args_arr = [] | ||||
|     if len(args) > 1: | ||||
|         args_arr = shlex.split(args[1]) | ||||
|     else: | ||||
|         args_arr = shlex.split('{args}') | ||||
|     lldb.target.Launch(lldb.SBLaunchInfo(args_arr), error) | ||||
|     lockedstr = ': Locked' | ||||
|     if lockedstr in str(error): | ||||
|        print('\\nDevice Locked\\n') | ||||
|        os._exit(254) | ||||
|     else: | ||||
|        print(str(error)) | ||||
|  | ||||
| def safequit_command(debugger, command, result, internal_dict): | ||||
|     process = lldb.target.process | ||||
|     state = process.GetState() | ||||
|     if state == lldb.eStateRunning: | ||||
|         process.Detach() | ||||
|         os._exit(0) | ||||
|     elif state > lldb.eStateRunning: | ||||
|         os._exit(state) | ||||
|     else: | ||||
|         print('\\nApplication has not been launched\\n') | ||||
|         os._exit(1) | ||||
|  | ||||
| def autoexit_command(debugger, command, result, internal_dict): | ||||
|     process = lldb.target.process | ||||
|     listener = debugger.GetListener() | ||||
|     listener.StartListeningForEvents(process.GetBroadcaster(), lldb.SBProcess.eBroadcastBitStateChanged | lldb.SBProcess.eBroadcastBitSTDOUT | lldb.SBProcess.eBroadcastBitSTDERR) | ||||
|     event = lldb.SBEvent() | ||||
|     while True: | ||||
|         if listener.WaitForEvent(1, event) and lldb.SBProcess.EventIsProcessEvent(event): | ||||
|             state = lldb.SBProcess.GetStateFromEvent(event) | ||||
|         else: | ||||
|             state = process.GetState() | ||||
|  | ||||
|         if state == lldb.eStateExited: | ||||
|             os._exit(process.GetExitStatus()) | ||||
|         elif state == lldb.eStateStopped: | ||||
|             debugger.HandleCommand('bt') | ||||
|             os._exit({exitcode_app_crash}) | ||||
|  | ||||
|         stdout = process.GetSTDOUT(1024) | ||||
|         while stdout: | ||||
|             sys.stdout.write(stdout) | ||||
|             stdout = process.GetSTDOUT(1024) | ||||
|  | ||||
|         stderr = process.GetSTDERR(1024) | ||||
|         while stderr: | ||||
|             sys.stdout.write(stderr) | ||||
|             stderr = process.GetSTDERR(1024) | ||||
		Reference in New Issue
	
	Block a user