Copy link to clipboard
Copied
My company is developing a game for the iPhone and iPad devices using Flash cs5.5 and Air3.0
The client requires that certain features be supported - such things like GameCenter, Rating system, etc... none of which is currently supported by flash for the iOS.
However, they did provide us with a bunch of xCode sample files on how they want things to work.
My idea was to bridge the gap in functionality by creating a native exention that utilized the xcode source that was given to me, thus giving me the functionality that is required.
But first, I need to actually CREATE a native extension, even just a basic echo/hello world... I have followed all the steps from various guides and tutorials and I have managed to create an ipa and put it on my iPad2 to test, but when the program starts up, nothing happens, I am left with a black screen. When I comment out the lines of code that intialize the extension, it fires up just fine.
(and yes, I even tried to put things in try blocks in case there was an error - no luck)
So I am hoping that someone can read through the process of what I am doing below and point out what I am doing wrong, or what I am missing.
What I am using:
Mac Mini running OSX 10.7.2 - this is used to run xCode 4.1 build 4B110
PC - Windows 7 home 64bit - Running Flash CS5.5 (version 11.5.1.3469) with the AIR 3.0 SDK inside it. I also have the AIR 3.0 sdk in a seperate folder for command line running. (This is my primary developement platform)
The PC does have flash builder installed, but I have never really used it, nor do I know how to use it... everything that has been built to date has been done using Flash CS5.5
So, this is what I have done.
The first thing I do is create a .a static library on the mac.
I open xcode and create a new project.
//
// EchoExtension.m
// EchoExtension
//
#include "FlashRuntimeExtensions.h"
FREObject echo(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) {
return argv[0];
}
//----------- Extention intializer and finalizer ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// A native context instance is created
void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) {
// setup the number of functions in this extention
// for easy reference, set the number of function that this extention will use.
int FunctionCount = 1;
// set the pointer reference to the number of function this extention will use.
*numFunctionsToTest = FunctionCount;
// create an array to store all the functions we will use.
FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*FunctionCount);
// create an array entry for each function
func[0].name = (const uint8_t*)"echo"; // the name of the function
func[0].functionData = NULL; // the data type
func[0].function = &echo; // reference to the actual function
// save the array in a pointer.
*functionsToSet = func;
}
// A native context instance is disposed
void ContextFinalizer(FREContext ctx) {
return;
}
// Initialization function of each extension
void ExtInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet) {
*extDataToSet = NULL;
*ctxInitializerToSet = &ContextInitializer;
*ctxFinalizerToSet = &ContextFinalizer;
}
// Called when extension is unloaded
void ExtFinalizer(void* extData) {
return;
}
I am now finish with that god foresaken mac (*shudders*)
Back on my PC, I create a folder for my test project. For all intents an purposes, let's call this "D:\src\EchoExtension" I then create 2 folders, one called "lib" and one called "app". Lib is where I will create the actionscript source for my extension.
package com.extensions.EchoExtension
{
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
import flash.external.ExtensionContext;
public class EchoExtension extends EventDispatcher
{
protected var _extensionContext:ExtensionContext;
/**
* Constructor.
*/
public function EchoExtension()
{
super();
// Initialize extension.
_extensionContext = ExtensionContext.createExtensionContext( "com.extensions.EchoExtension", "main" );
}
public function echo(Prompt:String):String
{
return _extensionContext.call( "echo" ) as String;
}
}
}
import com.extensions.EchoExtension.EchoExtension;
var ext:EchoExtension = new EchoExtension();
stop();
<extension xmlns="http://ns.adobe.com/air/extension/2.5">
<id>com.extensions.EchoExtension</id>
<versionNumber>1</versionNumber>
<platforms>
<platform name="iPhone-ARM">
<applicationDeployment>
<nativeLibrary>libEchoExtension.a</nativeLibrary>
<initializer>ExtInitializer</initializer>
<finalizer>ExtFinalizer</finalizer>
</applicationDeployment>
</platform>
</platforms>
</extension>
D:\SDKs\AirSDK30\bin\adt -package -target ane EchoExtension.ane extension.xml -swc EchoExtension.swc -platform iPhone-ARM library.swf libEchoExtension.a
Now that I have my swc, ane, and all that, it's time to create my sample application that will be used to test my new extension.
// basic imports.
import flash.desktop.NativeApplication;
import flash.events.MouseEvent;
import flash.text.TextField;
// import the extension from our swc.
import com.extensions.EchoExtension.EchoExtension;
// set our input text field to need the softkeyboard
txtInput.needsSoftKeyboard = true;
// add the event handlers to our buttons.
btnEcho.addEventListener(MouseEvent.CLICK, btnEcho_Click);
btnClear.addEventListener(MouseEvent.CLICK, btnClear_Click);
btnRunTime.addEventListener(MouseEvent.CLICK, btnRunTime_Click);
// create our extension variable.
var ext:EchoExtension;
try
{
// initialize our echo extension.
ext = new EchoExtension();
} catch (e:Error) {
txtEcho.text = "Error trying to create new EchoExtension:\n\n" + e;
}
stop();
// clear the echo text field
function btnClear_Click(e:MouseEvent):void
{
txtEcho.text = "";
}
// just for testing, put the current version of air runtime into our text field so we can make sure we are running air 3.0
function btnRunTime_Click(e:MouseEvent):void
{
txtEcho.text += "\nRuntime version = " + NativeApplication.nativeApplication.runtimeVersion;
}
// call the extension, passing it whatever is in the input text field and have it return it and place it in our echo text field
function btnEcho_Click(e:MouseEvent):void
{
txtEcho.text += "\n";
try
{
txtEcho.text += ext.echo(txtInput.text);
} catch (e:Error) {
txtEcho.text += "\nError calling ext.echo: " + e;
}
}
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<application xmlns="http://ns.adobe.com/air/application/3.0">
<extensions>
<extensionID>com.extensions.EchoExtension</extensionID>
</extensions>
<id>EchoExtensionTester</id>
<versionNumber>1.0</versionNumber>
<filename>EchoExtensionTester</filename>
<description/>
<!-- To localize the description, use the following format for the description element.<description><text xml:lang="en">English App description goes here</text><text xml:lang="fr">French App description goes here</text><text xml:lang="ja">Japanese App description goes here</text></description>-->
<name>EchoExtensionTester</name>
<!-- To localize the name, use the following format for the name element.<name><text xml:lang="en">English App name goes here</text><text xml:lang="fr">French App name goes here</text><text xml:lang="ja">Japanese App name goes here</text></name>-->
<copyright/>
<initialWindow>
<content>EchoExtensionTester.swf</content>
<systemChrome>standard</systemChrome>
<transparent>false</transparent>
<visible>true</visible>
<fullScreen>true</fullScreen>
<aspectRatio>landscape</aspectRatio>
<renderMode>gpu</renderMode>
<maximizable>true</maximizable>
<minimizable>true</minimizable>
<resizable>true</resizable>
<autoOrients>false</autoOrients>
</initialWindow>
<icon/>
<customUpdateUI>false</customUpdateUI>
<allowBrowserInvocation>false</allowBrowserInvocation>
<iPhone>
<InfoAdditions>
<![CDATA[<key>UIDeviceFamily</key><array><string>1</string><string>2</string></array>]]>
</InfoAdditions>
<requestedDisplayResolution>high</requestedDisplayResolution>
</iPhone>
</application>
Error creating files.
An implmentation for native extension 'com.extensions.EchoExtension' required by the application was not found for the target platform.
cls
"D:\SDKs\AirSDK30\bin\adt" -package -target ipa-ad-hoc -storetype pkcs12 -keystore "D:\src\mycert.p12" -storepass MYPASSWORD -provisioning-profile "D:\src\myprovfile.mobileprovision" "EchoExtensionTester.ipa" "EchoExtensionTester-app.xml" "EchoExtensionTester.swf" -extdir ../lib/Build
set /p dummy=
echo done
hrm. Time to do a little trial and error to see if I can figure out where the break down is.
And here I am stuck.
Can anyone tell me what I am doing wrong or what I have forgotten to do?
Thanks.
Hi Can you check if the SWC of the native extension is linked as external?
Following image can help locate and change the SWC link type.
The issue that many people face here (i.e. extension works in fast/interpreter mode and doesnt when packaged as standard mode) happens only when the SWC of the NE is not externally linked.
I hope this helps.
Regards,
Saumitra Bhave
AIR iOS
Copy link to clipboard
Copied
AIR 3 links against iOS 4.0. What is your native library set to? (I didn't see anything else suspicious in what you are doing, but I haven't built an iOS extension myself, yet.)
Copy link to clipboard
Copied
I am not 100% sure what you mean by "what is your native library set to" - but the iOS deployment target is set to 4.3
Copy link to clipboard
Copied
I assumed that there would be some link options somewhere. After looking at XCode a bit, this seems to be set by the Base SDK setting. However, I only get an option for iOS 4.3 and I don't see a way to get the iOS 4 SDK from Apple (?). .
Copy link to clipboard
Copied
Xcode 4.2 only has SDKs for iOS 4.3 and 5.0. The older Xcode has SDKs for 3.0 - 4.3. That Xcode isn't compatible with Lion.
The version numbers are a bit confusing, so I'm not fully sure what Xcode you will get at this link, but it ought to be able to make things for iOS 4:
http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?bundleID=20792
Make sure to rename or duplicate your current Developer folder, so that this install doesn't overwrite the newer Xcode (in case you should ever need it).
It's funny in a way if AIR does require 4.0, because most devices that are using something earlier than 4.3 are also the same devices that cannot run AIR.
Copy link to clipboard
Copied
so the answer is to recompile the static library targetting an ios version earlier than 4.3?
hrm... that is odd... I mean, I am targetting ios mobile devices, specifically iphone 3,4 and iPad 1 and 2...
What should I be targetting to cover those?
Copy link to clipboard
Copied
Well, I'm not sure that this is the issue. It is the case that you can only link to iOS 4 libraries. I'm asking around here, but I haven't gotten an answer yet.
[Edit] It looks like I was wrong. While you can only use those frameworks that were originally available in iOS 4.0, using iOS 4.3 as the base SDK should be fine. CoreMidi is the only iOS 4.3 framework that can't be used. Sorry for introducing a red herring into the mix.
Message was edited by: Joe ... Ward
Copy link to clipboard
Copied
Ok, new info.
If I leave in the extension ID lines in the xml, but comment out the lines of code that use them in the swf, and build... when I laugh the program it fires up normally... but the buttons don't do anything as there are no extensions present.
I still have no idea why I am getting a black screen when using native extensions... I even tried to use an ane from the net from other tutorials and I can't get them to work either... same thing...
Copy link to clipboard
Copied
I have also tried to use .ane that have been pre-built by others from here: http://www.adobe.com/devnet/air/native-extensions-for-air.html
on both the iPhone and the iPad2 I just get a black screen.
Copy link to clipboard
Copied
As another test, I downloaded the Air3.0 sdk for mac onto the mac directly.... copied all my source files over to it.
Then, using terminal and adt, I rebuilt the ane directly on the mac... I then used adt to directly rebuild the ipa file aswell (talk about an annoying and difficult process)
anyway, once I had successfully build an IPA on the mac solely, I put the newly minted "made in mac" ipa on my ipad and fired it up... exact same results... black screen.
the app will minimize when I press the home button, and restore to a black screen when I restore it, but the interface I built does not appear so long as I am trying to use an extension.
I have also tested iphone only, ipad only, and iphone/ipad combinations... no change.
I have also made sure that my .a library is build using a release (in xcode, I select product, build, then product/build for/build for archiving which created the release build folder - so I am using that release build .a file in my ane.
This too, had no change on anything.
I have also tried testing with gpu mode and cpu mode as I found another thread that said they were getting a black screen with gpu mode... that too, made no difference.
I am completely out of ideas of things to try.... I don't know what I am doing wrong.
(the iPad is version 4.3.5 (8L1) if that makes any difference)
Copy link to clipboard
Copied
Dave,
If you comment out the extension code in your app and display the value of NativeApplication.nativeApplication.runtimeVersion, what do you see on the device? Does it indicate AIR 3, or something earlier? Nevermind, I see you already did that.
It (still) sounds like the problem isn't in how you are creating the ANE, but rather on the application compiling or packaging side.
Another thing to check is that the EchoExtension.swc is externally linked (but that is the default, so it probably is unless you changed it).
-Joe
Copy link to clipboard
Copied
ok... I did have the swc set to merged as I usually always set them to merged, so i changed it to RSL and rebuilt it on the pc... no change...
The only thing I can think of at this time is maybe it is because I am building the swf using flash instead of the flex sdk.... problem is I have no idea how to use flex or build the swf that I created...
Copy link to clipboard
Copied
It has to be external, otherwise the runtime looks for the code in the wrong place.
Have you been able to connect to the debugger when you run the app? That should reveal any errors occuring at initialization.
Copy link to clipboard
Copied
I have been trying to get the remote debugging working with my flash and ipad2... but I can't seem to figure it out. I looked at several tutorials, but the ipad build just doesn't want to seem to connect to the flash remote debugger.
Anyway... here is a little more information.
I moved the initialization of the extension from the start of the application to the button event itself. Now, the application will start up exactly as it's supposed to, but when I press the button that creates and initalizes the extension and does the echo call, the application crashes.
Here is the new code:
// basic imports.
import flash.desktop.NativeApplication;
import flash.events.MouseEvent;
import flash.text.TextField;
// import the extension from our swc.
import com.extensions.EchoExtension.EchoExtension;
// set our input text field to need the softkeyboard
txtInput.needsSoftKeyboard = true;
// add the event handlers to our buttons.
btnEcho.addEventListener(MouseEvent.CLICK, btnEcho_Click);
btnClear.addEventListener(MouseEvent.CLICK, btnClear_Click);
btnRunTime.addEventListener(MouseEvent.CLICK, btnRunTime_Click);
txtEcho.text += "Initialization complete.\n";
stop();
// clear the echo text field
function btnClear_Click(e:MouseEvent):void
{
txtEcho.text = "";
}
// just for testing, put the current version of air runtime into our text field so we can make sure we are running air 3.0
function btnRunTime_Click(e:MouseEvent):void
{
txtEcho.text += "Runtime version = " + NativeApplication.nativeApplication.runtimeVersion +"\n" ;
}
// call the extension, passing it whatever is in the input text field and have it return it and place it in our echo text field
function btnEcho_Click(e:MouseEvent):void
{
// create our extension variable.
try
{
var ext:EchoExtension = new EchoExtension();
txtEcho.text += ext.echo(txtInput.text) +"\n" ;
ext = null;
} catch (err:Error) {
txtEcho.text += "Error: " + err.message +"\n" ;
}
}
Now, program crashes are an entirely different animal because the ipad creates a crash log! YAY!
this is what the crash log contains:
Incident Identifier: 4BF67A2C-FD36-495D-BB56-B3DCA4772EB8
CrashReporter Key: 7a4dd56d46eb23a7701ad55245de2bca11c48b32
Hardware Model: iPad2,2
Process: EchoExtensionTester [9272]
Path: /var/mobile/Applications/90B3B31D-F516-4094-BE3B-88E1324419EC/EchoExtensionTester.app/EchoExtensionTester
Identifier: EchoExtensionTester
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-10-28 14:17:48.145 -0300
OS Version: iPhone OS 4.3.5 (8L1)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000000
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 EchoExtensionTester 0x00813aac 0x1000 + 8465068
1 EchoExtensionTester 0x005f88ec 0x1000 + 6256876
2 EchoExtensionTester 0x00372ba4 0x1000 + 3611556
3 EchoExtensionTester 0x006dd7c8 0x1000 + 7194568
4 EchoExtensionTester 0x006dd25c 0x1000 + 7193180
5 EchoExtensionTester 0x006de304 0x1000 + 7197444
6 EchoExtensionTester 0x006dc750 0x1000 + 7190352
7 EchoExtensionTester 0x006730cc 0x1000 + 6758604
8 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
9 EchoExtensionTester 0x006dc750 0x1000 + 7190352
10 EchoExtensionTester 0x006730cc 0x1000 + 6758604
11 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
12 EchoExtensionTester 0x006dc750 0x1000 + 7190352
13 EchoExtensionTester 0x006730cc 0x1000 + 6758604
14 EchoExtensionTester 0x006dd0ac 0x1000 + 7192748
15 EchoExtensionTester 0x0032fc90 0x1000 + 3337360
16 EchoExtensionTester 0x00329e1c 0x1000 + 3313180
17 EchoExtensionTester 0x0032171c 0x1000 + 3278620
18 EchoExtensionTester 0x0032179c 0x1000 + 3278748
19 EchoExtensionTester 0x0032ae00 0x1000 + 3317248
20 EchoExtensionTester 0x00137328 0x1000 + 1270568
21 EchoExtensionTester 0x004f9a5c 0x1000 + 5212764
22 EchoExtensionTester 0x00035adc 0x1000 + 215772
23 EchoExtensionTester 0x002f6824 0x1000 + 3102756
24 EchoExtensionTester 0x002f7f18 0x1000 + 3108632
25 UIKit 0x35ef9bee 0x35ede000 + 113646
26 UIKit 0x35ef9568 0x35ede000 + 111976
27 UIKit 0x35ee230c 0x35ede000 + 17164
28 UIKit 0x35ee1c4c 0x35ede000 + 15436
29 GraphicsServices 0x321e9e70 0x321e5000 + 20080
30 CoreFoundation 0x316f3a90 0x3167e000 + 481936
31 CoreFoundation 0x316f5838 0x3167e000 + 489528
32 CoreFoundation 0x316f6606 0x3167e000 + 493062
33 CoreFoundation 0x31686ebc 0x3167e000 + 36540
34 CoreFoundation 0x31686dc4 0x3167e000 + 36292
35 GraphicsServices 0x321e9418 0x321e5000 + 17432
36 GraphicsServices 0x321e94c4 0x321e5000 + 17604
37 UIKit 0x35f0cd62 0x35ede000 + 191842
38 UIKit 0x35f0a800 0x35ede000 + 182272
39 EchoExtensionTester 0x001819e4 0x1000 + 1575396
40 EchoExtensionTester 0x00813a6c 0x1000 + 8465004
Thread 1:
0 libsystem_kernel.dylib 0x35afe3ec 0x35aec000 + 74732
1 libsystem_c.dylib 0x31bf06d8 0x31bbc000 + 214744
2 libsystem_c.dylib 0x31bf0bbc 0x31bbc000 + 215996
Thread 2 name: Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0 libsystem_kernel.dylib 0x35afefbc 0x35aec000 + 77756
1 libdispatch.dylib 0x31660ed4 0x31660000 + 3796
2 libdispatch.dylib 0x31661f3a 0x31660000 + 7994
3 libdispatch.dylib 0x316614ec 0x31660000 + 5356
4 libsystem_c.dylib 0x31bf058a 0x31bbc000 + 214410
5 libsystem_c.dylib 0x31bf0bbc 0x31bbc000 + 215996
Thread 3 name: WebThread
Thread 3:
0 libsystem_kernel.dylib 0x35afbc00 0x35aec000 + 64512
1 libsystem_kernel.dylib 0x35afb758 0x35aec000 + 63320
2 CoreFoundation 0x316f42b8 0x3167e000 + 484024
3 CoreFoundation 0x316f6562 0x3167e000 + 492898
4 CoreFoundation 0x31686ebc 0x3167e000 + 36540
5 CoreFoundation 0x31686dc4 0x3167e000 + 36292
6 WebCore 0x3248e27e 0x32488000 + 25214
7 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
8 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 4:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbdeb2 0x31bbc000 + 7858
3 EchoExtensionTester 0x004aa090 0x1000 + 4886672
4 EchoExtensionTester 0x002a0b54 0x1000 + 2751316
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 5:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbdeb2 0x31bbc000 + 7858
3 EchoExtensionTester 0x004aa090 0x1000 + 4886672
4 EchoExtensionTester 0x002a0b54 0x1000 + 2751316
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 6:
0 libsystem_kernel.dylib 0x35afbc74 0x35aec000 + 64628
1 libsystem_kernel.dylib 0x35afbf46 0x35aec000 + 65350
2 libsystem_c.dylib 0x31c16812 0x31bbc000 + 370706
3 libsystem_c.dylib 0x31c169fe 0x31bbc000 + 371198
4 EchoExtensionTester 0x004a9f60 0x1000 + 4886368
5 EchoExtensionTester 0x001b8908 0x1000 + 1800456
6 EchoExtensionTester 0x001b893c 0x1000 + 1800508
7 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
8 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
9 EchoExtensionTester 0x004aa748 0x1000 + 4888392
10 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
11 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 7:
0 libsystem_kernel.dylib 0x35afdd18 0x35aec000 + 72984
1 libsystem_c.dylib 0x31c16860 0x31bbc000 + 370784
2 libsystem_c.dylib 0x31bbde86 0x31bbc000 + 7814
3 EchoExtensionTester 0x004aa044 0x1000 + 4886596
4 EchoExtensionTester 0x0039367c 0x1000 + 3745404
5 EchoExtensionTester 0x004aa2fc 0x1000 + 4887292
6 EchoExtensionTester 0x004aa5e8 0x1000 + 4888040
7 EchoExtensionTester 0x004aa748 0x1000 + 4888392
8 libsystem_c.dylib 0x31bef30a 0x31bbc000 + 209674
9 libsystem_c.dylib 0x31bf0bb4 0x31bbc000 + 215988
Thread 0 crashed with ARM Thread State:
r0: 0x03ebb060 r1: 0x00000000 r2: 0x00000000 r3: 0x00000000
r4: 0x043b19e0 r5: 0x00000002 r6: 0x2fdfc178 r7: 0x2fdfc108
r8: 0x043b19e0 r9: 0x007d47d4 r10: 0x2fdfc1e4 r11: 0x043b19f0
ip: 0x00813aad sp: 0x2fdfc03c lr: 0x005f88f4 pc: 0x00813aac
cpsr: 0x68000030
Binary Images:
0x1000 - 0x8d6fff +EchoExtensionTester armv7 <4c58623df42ff7826b2bf3efab136467> /var/mobile/Applications/90B3B31D-F516-4094-BE3B-88E1324419EC/EchoExtensionTester.app/EchoExtensionTester
0x2fe00000 - 0x2fe25fff dyld armv7 <4d3190188cbf32a8a73f32a8b5bb7adf> /usr/lib/dyld
0x30986000 - 0x309b9fff QuickLook armv7 <29d2d981d1d6358381f5716ee37314b4> /System/Library/Frameworks/QuickLook.framework/QuickLook
0x30ab8000 - 0x30abefff StoreKit armv7 <0deee3e11c7632aab98ab3c026d41e41> /System/Library/Frameworks/StoreKit.framework/StoreKit
0x30ac5000 - 0x30af3fff DataAccess armv7 <3a2e67aa1d8834b7a8fc2fbb56654b15> /System/Library/PrivateFrameworks/DataAccess.framework/DataAccess
0x30af4000 - 0x30b9afff GameKit armv7 <844f6d90111f3e81961a723f557dd2a1> /System/Library/Frameworks/GameKit.framework/GameKit
0x30bbf000 - 0x30c7efff CFNetwork armv7 <b09e0d53de9f3bc8bde494780f3cdd4f> /System/Library/Frameworks/CFNetwork.framework/CFNetwork
0x30c81000 - 0x30d05fff AVFoundation armv7 <eeaf5f4f822436a5bd1655f536e69879> /System/Library/Frameworks/AVFoundation.framework/AVFoundation
0x30e07000 - 0x30f07fff libGLProgrammability.dylib armv7 <c0e6b958279639c098136283c6ad06a8> /System/Library/Frameworks/OpenGLES.framework/libGLProgrammability.dylib
0x30f08000 - 0x30f0bfff ActorKit armv7 <f7aa6cdd654231988aafcf448978f450> /System/Library/PrivateFrameworks/ActorKit.framework/ActorKit
0x30f0c000 - 0x30f52fff CoreTelephony armv7 <af7d1e770e5a3ffd8834a57fb5d40557> /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony
0x30f56000 - 0x30f5dfff AggregateDictionary armv7 <ab9777b39e8e3026ad64dc90323cad7e> /System/Library/PrivateFrameworks/AggregateDictionary.framework/AggregateDictionary
0x30f85000 - 0x31072fff libiconv.2.dylib armv7 <f4146ce07e3031ea8a81fa5516fd77d0> /usr/lib/libiconv.2.dylib
0x3107a000 - 0x310affff AddressBook armv7 <3f2071a77bc134cd82065eef90d4082f> /System/Library/Frameworks/AddressBook.framework/AddressBook
0x310b0000 - 0x311d1fff CoreGraphics armv7 <65f6c8701b563542820a26b0dfc4f6a4> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics
0x31209000 - 0x31241fff IOKit armv7 <80ae313ad69d3363935c88e51a11862d> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
0x31242000 - 0x3129bfff EventKit armv7 <0d4e597ee229337183e96e921a72e30a> /System/Library/Frameworks/EventKit.framework/EventKit
0x312af000 - 0x3136bfff MapKit armv7 <806f9ca7eb593d1998587441ce87a396> /System/Library/Frameworks/MapKit.framework/MapKit
0x3136c000 - 0x31466fff GameKitServices armv7 <a69426414c4634cda77409d5890696ac> /System/Library/PrivateFrameworks/GameKitServices.framework/GameKitServices
0x31469000 - 0x314a6fff CoreText armv7 <fb6a72faec2330c4b2cd33c2e9c59588> /System/Library/Frameworks/CoreText.framework/CoreText
0x314a7000 - 0x314abfff libGFXShared.dylib armv7 <a0772a32cd8b3b9194bb0c29807c1c5b> /System/Library/Frameworks/OpenGLES.framework/libGFXShared.dylib
0x314ac000 - 0x314c7fff FTServices armv7 <e23c3572bf3a36a3a99364d18c484f1e> /System/Library/PrivateFrameworks/FTServices.framework/FTServices
0x314c8000 - 0x31519fff libsqlite3.dylib armv7 <8a41cc6a6d9332308bc415d27577fd24> /usr/lib/libsqlite3.dylib
0x31624000 - 0x31626fff libAccessibility.dylib armv7 <d55f1553d14831a2a5435ae27ef75ef4> /usr/lib/libAccessibility.dylib
0x31627000 - 0x3165ffff libCGFreetype.A.dylib armv7 <416c77100b453e3f838831c4c857f8c7> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib
0x31660000 - 0x3166dfff libdispatch.dylib armv7 <9a0511ad5ebc3db898f1f49ed1a73d34> /usr/lib/system/libdispatch.dylib
0x3167e000 - 0x31763fff CoreFoundation armv7 <a8444f997111304c9571b3ff974b769c> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation
0x31797000 - 0x317cefff Security armv7 <6599f42a910b3b31a0e1d98c883d61cb> /System/Library/Frameworks/Security.framework/Security
0x317cf000 - 0x317effff PrintKit armv7 <e5a01ca9083a36afacc08611a398e2ad> /System/Library/PrivateFrameworks/PrintKit.framework/PrintKit
0x31851000 - 0x31858fff libbz2.1.0.dylib armv7 <0a082e1d475432959ba93aa3dbf7fb31> /usr/lib/libbz2.1.0.dylib
0x31ba0000 - 0x31ba8fff MobileBluetooth armv7 <63f11756c4aa3262b2317ff3b8e2a977> /System/Library/PrivateFrameworks/MobileBluetooth.framework/MobileBluetooth
0x31bbc000 - 0x31c3dfff libsystem_c.dylib armv7 <17ee3fe220c23b1f898d21ba25b2bcac> /usr/lib/system/libsystem_c.dylib
0x31c5a000 - 0x31d6cfff MediaPlayer armv7 <da848c0745a637af81d7edd962a09324> /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer
0x31d6d000 - 0x31e0afff AddressBookUI armv7 <e354aeb3d96e30338e90cc3638ffe81b> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI
0x31e0b000 - 0x31e3afff SystemConfiguration armv7 <1d73b8a159363f96bb9c039655c5eae6> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration
0x31e42000 - 0x31e4bfff MobileWiFi armv7 <03d98d5cf6383695aa7d8a88da52f410> /System/Library/PrivateFrameworks/MobileWiFi.framework/MobileWiFi
0x31e4c000 - 0x31e4cfff libCVMSPluginSupport.dylib armv7 <42d8aa2a31843a6e8bfff745644a7ba5> /System/Library/Frameworks/OpenGLES.framework/libCVMSPluginSupport.dylib
0x31e4d000 - 0x31e4dfff Accelerate armv7 <7d5ad465049136afaa1f0d89aac600bc> /System/Library/Frameworks/Accelerate.framework/Accelerate
0x31e6b000 - 0x31e6efff CaptiveNetwork armv7 <fc834fd33a18341ea7506587ad895703> /System/Library/PrivateFrameworks/CaptiveNetwork.framework/CaptiveNetwork
0x31e6f000 - 0x31e81fff TelephonyUI armv7 <e2c34b9a391e3384875ac552dbca0ad4> /System/Library/PrivateFrameworks/TelephonyUI.framework/TelephonyUI
0x31e82000 - 0x31e97fff libresolv.9.dylib armv7 <e92cfbb83f7b330db19181e797bb3f7b> /usr/lib/libresolv.9.dylib
0x31e98000 - 0x31ea3fff libz.1.dylib armv7 <ac706bee36593dc683fd5a96a389d72e> /usr/lib/libz.1.dylib
0x31ec7000 - 0x31ec9fff SpringBoardUI armv7 <90ba5da3e3e337e0a83e2c2589d951a8> /System/Library/PrivateFrameworks/SpringBoardUI.framework/SpringBoardUI
0x31ed3000 - 0x31ef0fff libsystem_info.dylib armv7 <48016be86e3f3cd9aeee1c6590e1ac6f> /usr/lib/system/libsystem_info.dylib
0x31ef2000 - 0x31ef4fff libgcc_s.1.dylib armv7 <a2631ac302f4310dae8367939e16b7c2> /usr/lib/libgcc_s.1.dylib
0x31f0c000 - 0x31f3ffff AppSupport armv7 <0217468bd9f839229a47910b7816b3d5> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport
0x31f40000 - 0x31f43fff IOSurface armv7 <ad50e71624583d06b891344d832f9b08> /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface
0x31f64000 - 0x31f79fff OpenAL armv7 <162722d7da273d649798b27ae0e4458c> /System/Library/Frameworks/OpenAL.framework/OpenAL
0x31fa8000 - 0x31fb7fff MobileDeviceLink armv7 <563a09bcdb2f32369b1e22f53f58273a> /System/Library/PrivateFrameworks/MobileDeviceLink.framework/MobileDeviceLink
0x31fb8000 - 0x31ff4fff libGLImage.dylib armv7 <9d97699e44ee3651ba4ac37e5adec35b> /System/Library/Frameworks/OpenGLES.framework/libGLImage.dylib
0x31ff5000 - 0x3203ffff libstdc++.6.dylib armv7 <e98c3fd72ba43d02aac24b08f7219eb7> /usr/lib/libstdc++.6.dylib
0x32044000 - 0x3204bfff libMobileGestalt.dylib armv7 <55f29184efcc3046bb833dd72a4487e1> /usr/lib/libMobileGestalt.dylib
0x320af000 - 0x320d3fff MediaControl armv7 <1cfc7d79f554357ab59eb69f9efebf07> /System/Library/PrivateFrameworks/MediaControl.framework/MediaControl
0x320d6000 - 0x320dbfff libcopyfile.dylib armv7 <e32cf2d48a1f3060b372ca7623e4a12b> /usr/lib/system/libcopyfile.dylib
0x320df000 - 0x320e5fff BluetoothManager armv7 <7861bc6128d93f72877df2f234434a47> /System/Library/PrivateFrameworks/BluetoothManager.framework/BluetoothManager
0x320f2000 - 0x320f7fff liblaunch.dylib armv7 <f5ccc8234aea3ebd9a88bd37f0fa23ae> /usr/lib/system/liblaunch.dylib
0x32124000 - 0x32127fff MobileIcons armv7 <08e426f8a707388d8adda670bfed0c2e> /System/Library/PrivateFrameworks/MobileIcons.framework/MobileIcons
0x3216d000 - 0x321a0fff iCalendar armv7 <34ce1957082f3518b5740ac33cfc92eb> /System/Library/PrivateFrameworks/iCalendar.framework/iCalendar
0x321e5000 - 0x321f1fff GraphicsServices armv7 <ff78a9636e933f0dbd222f8d26209788> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices
0x321f2000 - 0x32231fff libSystem.B.dylib armv7 <64cf947dd8423eeeb677f81dd3eb2d9d> /usr/lib/libSystem.B.dylib
0x32232000 - 0x3225bfff ContentIndex armv7 <ecd71782cd833360872b943ecc65d203> /System/Library/PrivateFrameworks/ContentIndex.framework/ContentIndex
0x32270000 - 0x322a5fff ImageCapture armv7 <2c474beec10f3791ac8a1d37df04600f> /System/Library/PrivateFrameworks/ImageCapture.framework/ImageCapture
0x322a6000 - 0x322dafff VideoToolbox armv7 <570c63dc3a273a5a8c9072fd5567f5c1> /System/Library/PrivateFrameworks/VideoToolbox.framework/VideoToolbox
0x32301000 - 0x32409fff CoreData armv7 <9843a401dd1d322383e3e40021cc8b95> /System/Library/Frameworks/CoreData.framework/CoreData
0x3240a000 - 0x3240cfff Marco armv7 <53203fa831ab34f894f3a3811bf3917c> /System/Library/PrivateFrameworks/Marco.framework/Marco
0x32440000 - 0x32443fff ArtworkCache armv7 <4863e321afee3ac5a3749e50cd926597> /System/Library/PrivateFrameworks/ArtworkCache.framework/ArtworkCache
0x32444000 - 0x32452fff OpenGLES armv7 <5a76beaeaa013f0cbf16e5cb154598ab> /System/Library/Frameworks/OpenGLES.framework/OpenGLES
0x32468000 - 0x32487fff Bom armv7 <b178e3efb4d733c694bd5a55e57a314f> /System/Library/PrivateFrameworks/Bom.framework/Bom
0x32488000 - 0x32a93fff WebCore armv7 <07941e59d0a33f94802c16c76238fddf> /System/Library/PrivateFrameworks/WebCore.framework/WebCore
0x32a98000 - 0x32a9afff IOMobileFramebuffer armv7 <683f321680763e519d61541170ba2133> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer
0x32a9b000 - 0x32adbfff CoreMedia armv7 <8e0570582ba535bfa74f1f00eef64376> /System/Library/Frameworks/CoreMedia.framework/CoreMedia
0x32ade000 - 0x32ae1fff MediaRemote armv7 <0804293b2774359189f3a67e2c81558d> /System/Library/PrivateFrameworks/MediaRemote.framework/MediaRemote
0x32ae3000 - 0x32ae8fff libnotify.dylib armv7 <9d7198e91de9386a9e5ea43608a66a57> /usr/lib/system/libnotify.dylib
0x32be5000 - 0x32ed2fff libLAPACK.dylib armv7 <b855d60dac01310495453bddfd004f0d> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libLAPACK.dylib
0x32f68000 - 0x32f69fff libremovefile.dylib armv7 <0fa08e1bb47a3d179072a933d1726597> /usr/lib/system/libremovefile.dylib
0x32f6a000 - 0x32fbffff libvDSP.dylib armv7 <0221caba81a235c5a896a835e2aac047> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib
0x32fc0000 - 0x33084fff libobjc.A.dylib armv7 <a89ef30f6d663254babb6329ce02ca3d> /usr/lib/libobjc.A.dylib
0x33085000 - 0x330b3fff MIME armv7 <60de1fe0bbb134d788c09f7c34b1caa4> /System/Library/PrivateFrameworks/MIME.framework/MIME
0x330bc000 - 0x3311bfff libBLAS.dylib armv7 <0b36b2272aa33a8c9aa22d99c89d7189> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/libBLAS.dylib
0x33120000 - 0x331cffff QuartzCore armv7 <ef9632c9781f3101916b65e9faae1579> /System/Library/Frameworks/QuartzCore.framework/QuartzCore
0x331d0000 - 0x331d2fff Camera armv7 <fd4d53b318ab35ce9bb89db3879120f0> /System/Library/PrivateFrameworks/Camera.framework/Camera
0x331fa000 - 0x331fdfff ApplePushService armv7 <015c68c15621348db9f6a012499170e1> /System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService
0x331fe000 - 0x3331dfff Foundation armv7 <09ff368178c5321c9715b9c8d491d53f> /System/Library/Frameworks/Foundation.framework/Foundation
0x3331e000 - 0x33361fff ManagedConfiguration armv7 <f790c26852cb3cf298abe56bc9a3940b> /System/Library/PrivateFrameworks/ManagedConfiguration.framework/ManagedConfiguration
0x33391000 - 0x33396fff libsystem_dnssd.dylib armv7 <f019bc513a6a37f4a79555b3ffb2a777> /usr/lib/system/libsystem_dnssd.dylib
0x33439000 - 0x33446fff libbsm.0.dylib armv7 <0a1e2bb78d5138419ecad8ba0fe42fdd> /usr/lib/libbsm.0.dylib
0x3346f000 - 0x34ebdfff TextInput armv7 <f242acc046073c1598195dd26fd8ad6f> /System/Library/PrivateFrameworks/TextInput.framework/TextInput
0x34f49000 - 0x34f4bfff CrashReporterSupport armv7 <9e7efa009730322f84bbc5d8bf1ded94> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport
0x34f4e000 - 0x34f54fff IAP armv7 <c0f4c99a1b493e489948f231ad9238e2> /System/Library/PrivateFrameworks/IAP.framework/IAP
0x34f99000 - 0x34fe7fff GMM armv7 <049361f664eb3f30b0d25cd56ffc1f0f> /System/Library/PrivateFrameworks/GMM.framework/GMM
0x34fe8000 - 0x35031fff IMCore armv7 <9c1e280e1fa33fa784cad479b9cbd941> /System/Library/PrivateFrameworks/IMCore.framework/IMCore
0x35032000 - 0x35077fff IMAVCore armv7 <a4dbb6f1203e3f569080707b3a388573> /System/Library/PrivateFrameworks/IMAVCore.framework/IMAVCore
0x3507a000 - 0x35086fff HomeSharing armv7 <2df6957cdfea31aea12eebf27ca1691c> /System/Library/PrivateFrameworks/HomeSharing.framework/HomeSharing
0x3509e000 - 0x3516ffff IMGSGX543GLDriver armv7 <406a4fa178c036e78cdc9537d5332c2e> /System/Library/Extensions/IMGSGX543GLDriver.bundle/IMGSGX543GLDriver
0x35170000 - 0x3526ffff PhotoLibrary armv7 <03a0336e443b3d958419dab3d432b147> /System/Library/PrivateFrameworks/PhotoLibrary.framework/PhotoLibrary
0x35270000 - 0x35276fff liblockdown.dylib armv7 <14c89b7346433c1f8675f454531f6ca3> /usr/lib/liblockdown.dylib
0x352b1000 - 0x352dbfff libtidy.A.dylib armv7 <68abd33352613e80a099a46d38704085> /usr/lib/libtidy.A.dylib
0x352ff000 - 0x35303fff AssetsLibraryServices armv7 <e1cbfe599c96369ca4bdb0dd99d3cd9f> /System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices
0x35304000 - 0x35346fff CoreAudio armv7 <c972fd5f8e89333ca680b9a33587f896> /System/Library/Frameworks/CoreAudio.framework/CoreAudio
0x35347000 - 0x35351fff ExternalAccessory armv7 <eebb4bdbbefb37419b884ffa011e1dc5> /System/Library/Frameworks/ExternalAccessory.framework/ExternalAccessory
0x35352000 - 0x3535cfff AccountSettings armv7 <d083fb384dc7311eb6766b9b2d2dd9c8> /System/Library/PrivateFrameworks/AccountSettings.framework/AccountSettings
0x3536e000 - 0x3538efff AppleAccount armv7 <4e0ac5cf93b338ab8c5f34ba3c5e2ee4> /System/Library/PrivateFrameworks/AppleAccount.framework/AppleAccount
0x3544b000 - 0x3544bfff libdnsinfo.dylib armv7 <21415179ffa03f949fa8cc851c6c31c7> /usr/lib/system/libdnsinfo.dylib
0x35645000 - 0x356eefff libxml2.2.dylib armv7 <5538d3f2c7d83b88b06168488fe6326b> /usr/lib/libxml2.2.dylib
0x356ef000 - 0x35809fff libicucore.A.dylib armv7 <bada0c2725bb31a483d5adf9aaf1f8df> /usr/lib/libicucore.A.dylib
0x35883000 - 0x3590dfff Message armv7 <2cce1aa95a493906bb0227197f9e4b96> /System/Library/PrivateFrameworks/Message.framework/Message
0x35911000 - 0x35a65fff AudioToolbox armv7 <6619c8c13f8d328e923e797fa8d0df23> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox
0x35a6e000 - 0x35a73fff MobileKeyBag armv7 <8c35c090bc373cb181fc26b961b8dba5> /System/Library/PrivateFrameworks/MobileKeyBag.framework/MobileKeyBag
0x35a77000 - 0x35ae6fff ProofReader armv7 <6d843c6aecdd37ae84baa40af8ad7e65> /System/Library/PrivateFrameworks/ProofReader.framework/ProofReader
0x35aec000 - 0x35b03fff libsystem_kernel.dylib armv7 <c4ebe7eb2e6c3a2d9bd3620a4d6dbc0e> /usr/lib/system/libsystem_kernel.dylib
0x35b04000 - 0x35c50fff MediaToolbox armv7 <482b13059e8a329fa5d832baede25103> /System/Library/PrivateFrameworks/MediaToolbox.framework/MediaToolbox
0x35c51000 - 0x35c51fff libsystem_sandbox.dylib armv7 <f47c01d627853b328e088b3fdd08e87d> /usr/lib/system/libsystem_sandbox.dylib
0x35cab000 - 0x35cf2fff MessageUI armv7 <35a81f5d4eb03467a1447db80337e570> /System/Library/Frameworks/MessageUI.framework/MessageUI
0x35d49000 - 0x35d72fff MobileCoreServices armv7 <57fef84bdc17301d8bf53ba0fb967fe6> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices
0x35d73000 - 0x35d8bfff iAd armv7 <7f6c5b4499ee383ea75f0cc8dcb5ca35> /System/Library/Frameworks/iAd.framework/iAd
0x35d8c000 - 0x35d9bfff Notes armv7 <d9c976ca976e3d029f69febd48f17601> /System/Library/PrivateFrameworks/Notes.framework/Notes
0x35d9d000 - 0x35db6fff libRIP.A.dylib armv7 <4825c3e392983aba947eca06555e4480> /System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib
0x35db7000 - 0x35ea3fff GLEngine armv7 <f216c91c5fdb38a9ae65dc6651ccbd02> /System/Library/Frameworks/OpenGLES.framework/GLEngine.bundle/GLEngine
0x35ebb000 - 0x35edbfff MobileSync armv7 <4df400c4559435889eccd88db77a110c> /System/Library/PrivateFrameworks/MobileSync.framework/MobileSync
0x35edc000 - 0x35eddfff libsystem_blocks.dylib armv7 <ccc041df3de73eafb7a59e74cdb1702b> /usr/lib/system/libsystem_blocks.dylib
0x35ede000 - 0x3626bfff UIKit armv7 <c271b78464d93cb7bf28c6e49df293ba> /System/Library/Frameworks/UIKit.framework/UIKit
0x3626c000 - 0x3657ffff GeoServices armv7 <88616f3deada3bb495fc15e3ba58dc83> /System/Library/PrivateFrameworks/GeoServices.framework/GeoServices
0x365bb000 - 0x365cbfff WebBookmarks armv7 <6956561235333e74b8ff316cb2edc93e> /System/Library/PrivateFrameworks/WebBookmarks.framework/WebBookmarks
0x365dc000 - 0x36622fff CoreLocation armv7 <249b8af3dc503d11bf3711f0407c66d8> /System/Library/Frameworks/CoreLocation.framework/CoreLocation
0x36629000 - 0x36629fff vecLib armv7 <0c60cd0a60f43d2791d36cb357d30e3c> /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib
0x3663f000 - 0x36640fff CoreSurface armv7 <7b83cd757da73e6e826693c29296d3fa> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface
0x36641000 - 0x366d6fff ImageIO armv7 <d520e3241d1130e8ac1375ee0f2c1095> /System/Library/Frameworks/ImageIO.framework/ImageIO
0x366d7000 - 0x3679dfff MusicLibrary armv7 <71a09022bd8b3b6a90a250199d190f10> /System/Library/PrivateFrameworks/MusicLibrary.framework/MusicLibrary
0x3679e000 - 0x36844fff Celestial armv7 <407badafc6403692bf099d542d28bf7f> /System/Library/PrivateFrameworks/Celestial.framework/Celestial
0x36847000 - 0x36849fff MobileInstallation armv7 <94b6d6c5d9883175af26764567528127> /System/Library/PrivateFrameworks/MobileInstallation.framework/MobileInstallation
0x3684e000 - 0x36850fff MailServices armv7 <74ae0145ef713c6d91fd8f68885b0a61> /System/Library/PrivateFrameworks/MailServices.framework/MailServices
0x36851000 - 0x368b7fff EventKitUI armv7 <b3b568df80863f2e9374054bab335bf3> /System/Library/Frameworks/EventKitUI.framework/EventKitUI
0x369e7000 - 0x36a98fff WebKit armv7 <eb9a0d69c64b3127b2bffd71641add3b> /System/Library/PrivateFrameworks/WebKit.framework/WebKit
0x36b4e000 - 0x36c7afff libmecabra.dylib armv7 <113de5f9858c32b8b158bfdc68042a97> /usr/lib/libmecabra.dylib
0x36c7c000 - 0x36c92fff EAP8021X armv7 <9fefc0ada30435fbb3b51818c74f6cb8> /System/Library/PrivateFrameworks/EAP8021X.framework/EAP8021X
0x36c93000 - 0x36c99fff ProtocolBuffer armv7 <f9277ee9b85b3722975ad319a323aca0> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer
0x36cda000 - 0x36cdefff libcache.dylib armv7 <362fdd2de66f3e189b5d139c9669a9e3> /usr/lib/system/libcache.dylib
0x36cdf000 - 0x36cf1fff PersistentConnection armv7 <659ea9d5b13d3fefb37acff09016a69c> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection
0x36d08000 - 0x36d11fff ITSync armv7 <ba8b48d061903e4096774344448776d0> /System/Library/PrivateFrameworks/ITSync.framework/ITSync
0x36d13000 - 0x36e17fff JavaScriptCore armv7 <61a94142e2d23dafa2964190dd46e9e3> /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore
0x36e1b000 - 0x36e24fff CoreVideo armv7 <ea847e6dba2d36b1826b255c73b39539> /System/Library/Frameworks/CoreVideo.framework/CoreVideo
0x36e25000 - 0x36e28fff libmacho.dylib armv7 <53908d448e9e32418652a4afee5bc578> /usr/lib/system/libmacho.dylib
0x36e29000 - 0x36e77fff CoreMotion armv7 <5e6b884d36d93789b40b7f3876130417> /System/Library/Frameworks/CoreMotion.framework/CoreMotion
0x36e7d000 - 0x36e7efff DataMigration armv7 <42e9e87a4e0735c3837e27d4f2adcf55> /System/Library/PrivateFrameworks/DataMigration.framework/DataMigration
0x36e7f000 - 0x36e85fff AssetsLibrary armv7 <124dd93095423fcf8029d3c7614dffd4> /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary
0x36ee6000 - 0x36ef9fff libmis.dylib armv7 <529ea6e3a87230ce9f6cf3285c22429c> /usr/lib/libmis.dylib
0x36f16000 - 0x36f17fff libsystem_network.dylib armv7 <3e0b7d6754cd33669c0680525f03ede1> /usr/lib/system/libsystem_network.dylib
0x36f18000 - 0x36f4bfff StoreServices armv7 <d526715648f435c3aac4c42953e76d20> /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices
0x36fa9000 - 0x3706afff RawCamera armv7 <0c52d8b1498c3dbb9aad95f3bcd8261d> /System/Library/CoreServices/RawCamera.bundle/RawCamera
0x370b2000 - 0x370ddfff IMFoundation armv7 <f1f21bedbf2e3ea38f692abef0005d76> /System/Library/PrivateFrameworks/IMCore.framework/Frameworks/IMFoundation.framework/IMFoundation
0x370e4000 - 0x370e5fff libdyld.dylib armv7 <7dd4acfe150831e0ae82296587e67e7f> /usr/lib/system/libdyld.dylib
0x370ec000 - 0x370fcfff DataAccessExpress armv7 <66d9047da79a31daa887e6d84c42ecb2> /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress
0x37144000 - 0x37147fff CertUI armv7 <9060fe03a4943ef295531feced9a17dd> /System/Library/PrivateFrameworks/CertUI.framework/CertUI
0x37148000 - 0x37154fff SpringBoardServices armv7 <c68262667ac8397a949ce4e92dfec7db> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices
Copy link to clipboard
Copied
I tried building your extension code last night. I got an immediate app crash on accessing the extension code, too. I can't help you with debugging C (or interpreting crash logs). Hopefully someone with such knowledge can step in.
Copy link to clipboard
Copied
So what you are saying is the problem is in the objective C code in the .a file? If this is true, it at least gives me someplace to start looking for potential problems.
The thing is, I tried to reproduce the above steps exactly using the iBattery and iNetworkInfo sample extensions and I get the exact same thing.
something else I did was changed the name of ipa file to.zip and open it up to see what was what... there are a TON of empty folders, but this is what the inside of the ipa looks like:
(Maybe you can tell me if something is missing or in the wrong spot?)
(Also note: I manually added the .swc, .a, and .ane to the build batch file so they would be included in the root of the app folder with the swf.
Volume in drive D is Data
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app
10/28/2011 03:18 PM <DIR> .
10/28/2011 03:18 PM <DIR> ..
10/28/2011 03:15 PM <DIR> cs.lproj
10/28/2011 03:15 PM <DIR> de.lproj
10/28/2011 03:15 PM <DIR> en.lproj
10/28/2011 03:15 PM <DIR> es.lproj
10/28/2011 03:15 PM <DIR> fr.lproj
10/28/2011 03:15 PM <DIR> it.lproj
10/28/2011 03:15 PM <DIR> ja.lproj
10/28/2011 03:15 PM <DIR> ko.lproj
10/28/2011 03:15 PM <DIR> META-INF
10/28/2011 03:15 PM <DIR> nl.lproj
10/28/2011 03:15 PM <DIR> pl.lproj
10/28/2011 03:15 PM <DIR> pt.lproj
10/28/2011 03:15 PM <DIR> ru.lproj
10/28/2011 03:15 PM <DIR> sv.lproj
10/28/2011 03:15 PM <DIR> tr.lproj
10/28/2011 03:15 PM <DIR> zh_Hans.lproj
10/28/2011 03:15 PM <DIR> zh_Hant.lproj
10/28/2011 03:15 PM <DIR> _CodeSignature
10/28/2011 03:15 PM 28 CodeResources
10/27/2011 11:17 AM 6,803 EchoExtension.ane
10/27/2011 11:16 AM 1,973 EchoExtension.swc
10/28/2011 03:15 PM 9,685,088 EchoExtensionTester
10/28/2011 03:14 PM 18,499 EchoExtensionTester.swf
10/24/2011 05:53 PM 7,686 embedded.mobileprovision
10/28/2011 03:15 PM 3,277 Info.plist
10/27/2011 11:10 AM 9,344 libEchoExtension.a
09/23/2011 11:11 PM 1,621 MainWindow-iPad.nib
09/23/2011 11:11 PM 1,620 MainWindow.nib
10/28/2011 03:15 PM 782 ResourceRules.plist
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF
10/28/2011 03:15 PM <DIR> AIR
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR
10/26/2011 02:43 PM <DIR> extensions
10/28/2011 03:15 PM 1,768 application.xml
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR\extensions
10/26/2011 02:43 PM <DIR> com.extensions.EchoExtension
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR\extensions\com.extensions.EchoExtension
10/26/2011 02:43 PM <DIR> META-INF
10/27/2011 11:17 AM 1,262 catalog.xml
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR\extensions\com.extensions.EchoExtension\META-INF
10/26/2011 02:43 PM <DIR> ANE
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR\extensions\com.extensions.EchoExtension\META-INF\ANE
10/27/2011 11:16 AM <DIR> iPhone-ARM
10/26/2011 02:43 PM 428 extension.xml
Directory of D:\EchoExtensionTester.ipa\EchoExtensionTester.app\META-INF\AIR\extensions\com.extensions.EchoExtension\META-INF\ANE\iPhone-ARM
10/27/2011 11:16 AM 1,296 library.swf
Copy link to clipboard
Copied
Hi Dave:
Thinking loudly
1. I could see that your native code says return argv[0] bet you dont seem to pass anything from AS side. on AS side call should be like _ext.call("echo","Hi There") so that "Hi there" is FREObject that you will get in argv[0]
2. When you use other extensions do you remove yours? or you try using multiple at once?
3. There is no use of manipulating .app folder. You can asume it is almost always correct. you cant use the .app folder once you modify it.
4. Please dont add .a .swc .ane as assets. That is incorrect.
Copy link to clipboard
Copied
Dave, I was able to use the iBattery extension (using the pre-built version, I didn't try building it myself).
Copy link to clipboard
Copied
Saumitra and Joe:
Thanks for your help so far, but I am still having problems.
Saumtira
1. the entire point is just for a function in the native c side to return whatever was passed into it. And looking back at it, your are right in the fact that I am not actually passing the prompt variable into the echo call. The thing is, the line of code to execute the echo call is never being reached as the program is crashing on the line var ext:EchoExtension = new EchoExtension();
I will fix that line of code on monday when I am back in to work and see if it makes any difference... I have a few other silly things I am going to try that probably won't make any difference, but it's not like I have any to lose from trying.
2. Yes, when I compiled and tested other sample extensions, I removed all traces of all others first... so when I build my app to put on the device, there was ever only just 1 extension packaged with it.
3. As for manipuating the .app folder - well, I was grasping at straws... I figured it was right as I compaired my files and folder structures to that of the iBattery sample and they are (as far as I can tell) the same in any respect that matters
4. again, was just grasping at straws... 99% of my tests didn't include the, but I thought I would try it just to see if it made a difference.... it didn't.
Joe:
When I try to install the iBattery ipa that was given with the sample code, I get a message on my phone saying: "iTunes Sync 'iBatteryExample' failed to install... I have had this error befor and it had to do with bad/incorrect provisioning profiles, so I suspect I woudl have to rebuild the app with my own, but it looks like a flex project (?) and I don't know how to compile those (yet...)
Copy link to clipboard
Copied
Hello,
I am also struggling with a native extension crashing upon load on iOS. I think I found out what is going wrong in my case, although I have no idea about how to fix it.
Before concluding we're having the same problem, however, I'd like to confirm a couple of things:
1) are you getting any errors/warnings in the output of "adt -package -target ipa-ad-hoc" ?
2) could you please try to build, install and run a non-AOT version of your application (i.e. -target ipa-test-interpreter or -target ipa-debug-interpreter)?
3) what kind of architecture are you building the iOS static library for? armv6, armv7 or both? (It's one of the first lines under the build settings of the library target in XCode).
Thanks,
Andrea
Copy link to clipboard
Copied
Hi Andrea
Here are the answers to your questions in regards to my project.
1. I am not getting any warnings or anykind of errors when building... but I am using the command line tool to build it, not flash... right now, it's set to -package -target ipa-ad-hoc
2. I ran the following tests with some very surprising results!
-target ipa-test-interpreter ---- IT WORKED! - however, I am not happy about it being an interpreter mode. The extension is even echoing what I send it... it looks like it is doing exactly what it's supposed to do!
-target ipa-debug-interpreter ---- also worked... but again... interpreter mode...
-target ipa-ad-hoc ---- Black screen. Can not even get to my ui.
-target ipa-app-store ---- Same as adhoc - Black screen.
-target ipa-debug ---- the application starts, but then is ejected and crashes.
-target ipa-debug -connect ---- prompted me for the ip address of my debugger (which flash was setup to be waiting for a connection)... once I entered the ip address, it connected to flash but then promptly crashed and terminated the flash debugger.
-target ipa-test ---- Same as ipa-debug... the app started and then crashed.
Here is the crash report for the ipa-debug and ipa-test modes:
Incident Identifier: 983D93E6-5AFF-482B-A0D7-A16DDD44354D
CrashReporter Key: 7a4dd56d46eb23a7701ad55245de2bca11c48b32
Hardware Model: iPad2,2
Process: EchoExtensionTester [13660]
Path: /var/mobile/Applications/43145E6B-4A0C-4D48-B36D-0F212539A386/EchoExtensionTester.app/EchoExtensionTester
Identifier: EchoExtensionTester
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2011-11-02 10:45:27.858 -0300
OS Version: iPhone OS 4.3.5 (8L1)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x00000008
Crashed Thread: 0
3. My static library architecture is set to "Standard (armv6 armv7)" and "valid architectures" is "armv6 armv7"
I don't know if it will make any difference, C Language Dialect is set to "C99 [-std=c99]" and Compiler for c/c++/objective c is set to "LLVM GCC 4.2"
So it appears that native extensions only work in interepted mode for test and debug - which is alot further along than I was... but is still not acceptable.
Copy link to clipboard
Copied
Can you be sure that you're not using any external AS3 at all?
The fact that you're set to ARMv6 and ARMv7 seems unusual, as AIR requires ARMv7.
Copy link to clipboard
Copied
Can you be sure that you're not using any external AS3 at all?
I don't think I am... I am not exactly sure what you mean by "external AS3"...
I am not loading any external files at runtime, and my main project class is in it's own .as file... but it's internal...
the only thing in the actionscript settings was the .ane file... which was set to RSL from the last series of tests I did last week... I changed it to merged into code and recompiled each of the target types. They all acted the the same way.
As for ARMv6 and ARMv7 - I didn't actually set or change those, it was set by default with xcode... should I change it to ARMv7 only? And if I do that, will I still be able to target iPad1 and iPhone3?
Copy link to clipboard
Copied
iPad will be ok. iPhone 3GS will too. iPhone 3G cannot work with AIR 3 at all.
Copy link to clipboard
Copied
In my experience ARMv6 works too in non-AOT builds, whether it's intended or not...
Dave, could you try setting the architecture to armv7 only and building the library with GCC 4.2 (NOT llvm-gcc)? It should be one of the compilers available in the iPhone SDK 4.3 that ships with XCode 4.1.
andrea