eggon SDK for ios 7 Integration Instructions The eggon SDK requires a few simple steps in order to be used within your ios 7 application. Environment This guide assumes that a standard ios Development environment is setup: A Mac OS X 10.8 or 10.9 system with XCode 5 The source code, including the XCode Project, for the application you want to test In order to run the app on your actual device you will also need to have setup your Apple ios Developer certificate and your application must have a valid provisioning profile. Instructions for all of the above steps are available at the Apple ios dev center https://developer.apple.com I) Add the bundle to your Xcode Project The eggshell.bundle is provided by TestPlant in the eggon_sdk package: 1. Locate the eggshell.bundle file in the Finder 2. Drag the eggshell.bundle and drop it into the Project section of your XCode project 3. Do NOT add the bundle directly to your application target(s). You can choose to copy the bundle into your destination group s folder if you would like
II) Edit Required Build Settings In order to link with the eggshell you need to add some linker flags. 1. Select your Project in the Project Navigator 2. Then select your application Target 3. Under Build Settings, select All and Combined. 4. Scroll to the Linking section. 5. Double click to the right of Other Linker Flags to add the following flags (if not already present) a. ObjC b. lz c. lc++
III) Add Bundle Resources to the Build Phases Now you need to add the resources to the build phases for each of the ios application targets you want to be able to test. (eg. if you have separate targets for a free and paid version of your application) 1. Expand the eggshell.bundle in the project 2. Select your target 3. Select Build Phases 4. Scroll down to Link Binary With Libraries 5. From the Bundle, drag the eggshell.framework into Link Binary With Libraries 6. Scroll down to Copy Bundle Resources 7. From the Bundle, drag the eggshellsettings_iphone.storyboardc into Copy Bundle Resources
IV) Add Server Startup Call To complete the integration, you need to add a line in your Application to start the server. To have your application be accessible to eggplant from the start we recommend putting this call in your Application Delegate class. However you can put it wherever is appropriate for your needs. First import the header at the top of your file: #import <eggshell/tpeggshell.h> Then in the didfinishlaunchingwithoptions: method, launch the server: [TPEggShell startserver]; // 5900, "WordToPass" or [TPEggShell startserverwithpassword: "MY_PASS" onport: 5900]; After that point you will be able to connect from eggplant to the application using the specified port and password. If you would like to configure access dynamically from INSIDE your application you can bring up a pre built configuration panel using the following call: [TPEggShell showeggshellsettingsonviewcontroller: myviewcontroller]; If you want to terminate the server at some point you may use: [TPEggShell stopserver]; For a complete list of all available API please see the TPEggShell.h header file.
Potential Issues: SIGPIPE indicates a network write error but is not indicative of a bug and is not a crash. When this happens in the debugger it's just letting you know about it. Theses signals can usually just be ignored by issuing this command to LLDB (the default debugger in Xcode): process handle SIGPIPE n true p true s false continue (if your process stopped) The eggon SDK uses the Boost library for socket communications. It s possible that a version conflict could arise with apps that also use Boost. If you need the eggon SDK compiled against a different version of the Boost library please contact us at support@testplant.com.
Release Notes 1.06: (09 Sep 2014) Fixed problems with missing architectures. Added API call + frameworkversion to get a string about the version. 1.05: (15 Aug 2014) Fixed some crashing bugs dealing with screen changes / device rotation. Fixed some licensing bugs. Added API call + licenseinfo to get a string about the licenses/expiration. 1.04: (3 Aug 2014) Removed License termination completely this version will run indefinitely. Fixed a number of crashes when doing full screen updates. Some drawing performance improvements. 1.03: (30 Mar 2014) Extended License to 1 August 2014. Fixed a number of crashes caused when connections dropped. Resolved a view contention issue that could lead to a crash. Improved memory performance. Some drawing performance improvements. 1.02: (10 Feb 2014) Performance optimizations in how images are sent to eggplant. Resolved a view contention issue that could lead to a crash. Fixed a problem showing and sending events to Alert Panels. Added debug messages to the console output. 1.01: (28 Jan 2014) Added the ability to enable various levels of debug logging to the GUI and command line calls Performance improves to the screen update polling Fixed an issue where the server wouldn t shut down cleanly when stopping Fixed a problem where the connection would drop when left idle. 1.0: (06 Jan 2014) Sends screen updates of the integrated application to eggplant. Receives eggplant touch events including Swipe. Enables typing full Unicode Characters including multi byte sets. Allows device rotation using eggplant s RotateMobile command. Shares Clipboard Data between eggplant and the application. Supports Reverse Connections from the application to a listening eggplant. Handles common special keys (but not the Home which leaves the application). Provides a full configuration UI within your application.
Includes 32 and 64 bit support for all iphones that support ios 7.