Adobe Air native extension - drawable resources are packaged into APK but values resources are not - air

I have a multiplatform Adobe Air Native Extension (ANE) that I have created. The Android portion of the ANE includes resources (i.e. res/drawable, res/drawable-hdpi, res/layout, res/values).
When I create the ANE, the resources are included in the ANE properly.
(I have determined this by pulling apart the ANE and I see all my resources in the proper directories)
However, when I create the APK, it includes all my resources EXCEPT the res/values directory.
That whole directory and it's resources are not included.
(I have determined this by pulling apart the APK and looking at the res directory)
Does anyone know if there is something special in Adobe packaging of APK's that prevents res/values folder from ANE's being included in the final APK?

What is happening in this situation is that the resources are being compiled into a binary format (in the resources.arsc file) so the original source files are not packaged into the APK.
If you dump the resources in the apk using aapt you can see that the resources are there:
aapt dump --values resources your_app.apk

Related

Get Version from binary inside app directory

I have a helper tool in my bundle that resides in Contents/Library/PriviledgedHelperTools inside my .app. Can I somehow read the version of the info.plist of this program?
The Helper Tool itself is NOT a .app bundle, it is a binary that is embedded in my .app bundle residing in Contents/Library/PriviledgedHelperTools which has its Info.plist embedded inside of the __TEXT section of the binary using the linker flags
-sectcreate __TEXT __info_plist path/to/info.plist
Please note: I am currently not running this program, I just want to check if the currently installed helper tool is older than the one in my bundle and need to check if I have to update the helper tool (e.g. if its comming from a previous version of my program).
Just list all files inside the app dir. There are "version.plist" and "Info.plist" files that you can parse with simple script. If the app has another app inside then its structure is similar to parent.

Symbols doesn't been uploaded to Crashlytics

I try to upload an iOS dSYM.zip file to crashytics manually through the web site.
After I choose file the site immediatly shows me warning "Zip up the dSYM folder and try again". Warning is showed so quickly that it is unpossible extracts archive or uploads its to the server. My file has a zip extensions and contains dSYM folder. What does it mean?
UPD:
Zip contains two files:
appname.app.dSYM/Contents/Resources/DWARF/appname
appname.app.dSYM/Contents/Info.plist
Mike from Fabric here, it sounds like the zip contains more then just the dSYMs of your app. I'd remove anything that's not a dSYM and try to upload it.

Require locally packaged assets in remotely downloaded js bundle

I used this solution to download js bundle each time my app starts because I want an easy way to deploy minor changes during development stage.
The downloaded file is the one I exract from built apk. However, no images required in js (like require('../grapic/pic.png')) show up when application is run in this mode.
I save the js file like this:
File jsCodeDir = getApplicationContext().getDir("assets", Context.MODE_PRIVATE);
File f = new File(jsCodeDir, "remote.android.jsbundle");
// ... download file and put it into f
It seems that the problem is with paths: js isn't able to require images when it is stored in assets/ folder of internal storage, as opposed to when it is run from default assets/ folder from within apk.
So the question: is there a way to make a bundle such that it is able to use locally packaged resources (images from within apk just like locally packaged js does).

Creating bundles in Cocoa

What is the best way to create an empty bundle in Cocoa? I bundle in OS X is really nothing but a folder, the only difference being that you have to right-click and do "Show Package Contents" to see the contents, right?
Well, I want a bundle in that sense. After that I will put some files of my choice into it, such as a bunch of plist files. The reason I want to do this is so that my file structure (in, say, the AppSupport folder) will look nicer at the root level.
Related question: How do I tell OS X that a folder ending with ".myappFoo" should be treated as a bundle?
The starting place for information is the Apple developer's doc Bundle Programming Guide.
The Finder considers a directory to be
a package if any of the following
conditions are true:
The directory has a known filename
extension: .app, .bundle, .framework,
.plugin, .kext, and so on.
The directory has an extension that
some other application claims
represents a package type; see
“Document Packages.”
The directory has its package bit set.
The .myAppfoo showing as a bundle is done as a Document Package

PackageMaker Troubles

My PackageMaker project was generating a .mpkg file, but then, all of the sudden, when I go to build, it only generates .pkg files. The .mpkg files are actually directories into which I place my custom installer bundle along with an InstallerSections.plist file to specify the order in which my custom view should display. The .pkg files are not directories and I have no way to add my custom installer bundle to it.
Anyhow, something is awry as PackageMaker no longer lets me generate a .mpkg file. Any idea why that might be? Is there some other way I should be approaching this?
Thanks.
p.s. If you are thinking of suggesting I ought to check out this tutorial, please don't bother. It's way out of date. Thanks.
Your pmdoc is a distribution project, and you've set the pmdoc's minimum system version to 10.5. PackageMaker always generates flat packages in this case.
There are three solutions:
Choose “Install Properties…” from the Project menu, and set the pmdoc's minimum system version to 10.4. This is the go-back-to-.mpkg solution.
Use the Flat Package Editor (hidden inside the PackageMaker bundle) to add the custom installer bundle. The contents of a .pkg file are the same as, and lain out similarly to, those of a .mpkg bundle.
Since flat packages are xar archives, use xar to extract the contents of the .pkg file to a temporary directory, add the custom installer bundle in that directory, then use xar to re-assemble the .pkg file from the temporary directory.