Unable to install application on BlackBerry due to Error 907 - blackberry

I am presently developing a PhoneGap application ( targeting BlackBerry OS 6/7 ).The application runs fine on the Ripple Emulator, and builds OK on the PhoneGap Build Service.
When I try to install over-the-air from PhoneGap build on a physical test device ( a BlackBerry Curve 9300 ), I constantly get variations of the "907 error" - invalid Jar / Invalid cod etc. I have also tried to install from my own server, with a JAD that I created and verified, and with MIME types correctly set - with the same result.
When I attempt the installation via BlackBerry Desktop software, I get "silent failures" ie BB Desktop simply loops back to the application list, without installing the software.
I have searched through the BlackBerry forums and knowledge bases, and tried to apply the recommendations contained there. For example:
BlackBerry Forum Entry on the 907 Error
Knowledge Base Article
The physical test device has BlackBerry service ( push email, BlackBerry App World etc are working ). This problem has so far defined my attempts to resolve it ( although I am not giving up yet ). Any pointers in what I should consider?

I found the cause of this 907.
My compiled application had more than 127 sibling CODs. On "traditional" BlackBerry ( up to Blackberry 7; I am not sure this behavior extends to BB10 and PlayBook ), an application cannot have more than 127 sibling CODs.
There are also absolute size limits, related to the fact that each COD has a size limit of 128kB ( 64kB Data / 64kB code ). The practical absolute size limit is therefore dependent on what fraction of your app is code and what fraction is data ( there is a strict separation ).
My current headache is on how to embed my content in the app, in spite of this limit. I have posted that as an independent question:
I need to embed a > 4MB Content File in a BlackBerry Webworks Application ( fror BlackBerry 6/7 ). What are my options?

Related

IOS 64bit IPA file size compression

when deploying my IOS app to my mac the IPA file size is 87.3mb - After I publish the app to the iStore, Apple sends me a warning telling me that after they do some stuff it will be larger than 100mb and will only allow users to download it over wi-fi. It's quite imperative for me that my app stays below 100mb so that users can download it via mobile connection
Now - I've done some things that in my mind that should have decreased the app size but to no real avail
Compressed all the images I use in the app (combined size of all the images is less than 3MB - including splash screens and launcher icons)
Removed all unnecessary references to units (cleaned up the "using" sections)
Removed all design time components that can be instantiated in code
I'm not using livebindings
I am using Firedac with SQLite (the database is less than 1MB)
The APK file size is 43 mb which is well below the 50mb max google wants it
Any help or advice in getting the Apple IOS IPA file smaller would be great
edit
Upon further inspection as suggested by #Robotic Cat in the comments I find that the Unix Executable is the culprit... this is then definitely something to do with how delphi builds and links the package
end edit

Where would localForage data be stored for an iPad app?

I understand how localForage works in unison with a browser, but am less certain how it would interact as a part of a hybrid iPad app. There is no browser, per se, to store data in so I'm wondering if using localForage will still allow my data to be available offline.
So are you familiar with what a 'Hybrid app' is?
Not to be an a-hole about but a hybrid app, by definition is a 'web view' in a wrapper. Cordova, trigger.io etc are all basically doing the same thing. Taking the native browser ( IOS and Android ) and wrapping it in the context of an 'app'
thats the short version, you can read a lot more about it online, anyhow to answer you question about localforage..
LocalForage is a 'shim' meaning its uses what ever the platform will support, so for IOS below 9 ( I think ) it will use SQLLite and over IOS 9 and above it will use indexDB. With Android and crosswalk it will use indexDB ( unless otherwise selected )
Now for devices that do not support one of the other it will fallback to localstorage but that is limited due to the total size of storage

Does BlackBerry support demo/beta releases for its app developers?

I am interested in developing an app for BlackBerry devices, and was wondering if they support the concept of demo or beta releases for their app developers? By this, I mean the ability to deploy a beta or demo version of my app to a limited/restricted audience, such as business partners, customers, external beta testers, etc. Nothing in their Testing and Deployment documentation indicates either way. Thanks in advance!
There isn't a built in beta process in App World for BlackBerry 10, but you can share the debug version of your app with your beta participants. When you create a debug token, you specify which PINs you want it to be valid for. The debug token will only install on a device with one of those PINs, and your app will only install on a device with your debug token on it. The token will only be valid for 30 days. You would have to deploy it with the command line tools and not App World.
This link on the BlackBerry Developer blog explains how to do it: http://devblog.blackberry.com/2012/04/debug-token/
It's for PlayBook, but the same process applies for BlackBerry 10 as well.
I actually don't know if RIM themselves have anything formal, but since I've always released BlackBerry apps on more than just the official App World store, I've used a beta testing system that is independent of RIM. Luckily, the legacy BlackBerry Java platform gives you the freedom to do this, free of charge. (Note that this answer is not about the upcoming BB10 platform!)
Over-the-Air (OTA) Installation
You can have your beta testers install your beta versions, Over-The-Air (OTA). Unlike iOS, for example, you aren't limited to a certain number of test devices, and you don't have to tell RIM what the unique identifiers of all the test devices are.
So, what I do is just put beta versions of my apps on a webserver, and send links to beta testers that allows them to download them. So, you are in control of who gets access. If you need security to limit the beta version to nobody except the official beta testers, then you are certainly free to add password protected logins to your webserver. That works the same way it would for any other secure web content.
If you do this (OTA), here are a few references:
http://www.blackberryinsight.com/2008/07/08/howto-setup-an-apache-webserver-to-deliver-blackberry-ota-applications/
Blackberry over the air installation
https://stackoverflow.com/a/10307074/119114
There are a couple steps to be aware of:
You normally just upload a .cod file to BlackBerry App World. If you want to deploy an app to your own webserver, you also need the .jad file. A JAD file is basically just a descriptor of the app, that can redirect a BlackBerry browser to the .cod file for installation. Your build process is already probably generating the .jad file for you, in the same output directory where it generates your .cod files.
You may need to configure your webserver to properly setup MIME types for files with a .jad extension. If you use Apache, then this is what you would put in your httpd.conf file:
AddType text/vnd.sun.j2me.app-descriptor jad
you may also need to add a MIME type definition for the .cod type, too
AddType application/vnd.rim.cod .cod
If you don't have access to the web server's httpd.conf file, but can place the JAD and COD in your own user directory, then you can configure the MIME types in a local .htaccess file.
Depending on your web server configuration, there may be a couple more steps necessary. Check the OTA links I provided above.
Desktop Installation
Another option is to simply email your beta versions to beta testers, and have them install on their devices using BlackBerry Desktop Software. I don't do this, but it is another way to accomplish the same thing. For this, you use the .cod file, and also the .alx file, which is also generated by the normal BlackBerry build process.
Note that some of the project properties that get put into the .alx or .jad files are things that you don't need to worry about if you only deploy the .cod file directly to BlackBerry App World. If you use one of the options (ALX for Desktop installation, or JAD for OTA), then I would recommend opening up the .alx or .jad file and just inspecting the values for correctness. They're normal text files, and most of the values should be self-explanatory. I believe all settings can be configured from inside your IDE. If you use the BlackBerry Eclipse plugin, right click on your project, select Properties and look around there.
Here are the official RIM docs on all your installation options
its not possible. When you publish your app in app world, it will be available to all users. So you cant set any special conditions like- available only to some people. Else make it in un published mode. Then only users with sandbox id can access your app.
Check the below link for BB 10 Cascades beta 3 release(Preferrable way of development in BB 10)
https://developer.blackberry.com/cascades/
For BB 10,they are plenty of ways for developing the applications ,check the below link
https://developer.blackberry.com/platforms/

IPA file size Flash Builder export

i'm going to build an IOS app for the IPad, and i made a quick test.api. My issue is that the size of the file is already 13 MB big. i added a video and a sound for testing (together like 9 MB) so i was wondering is there a minimum file size when making a ipa in Flash Builder?
Maybe around 4 MB?
13MB - 9MB = 4 MB?
and then 4MB is the standard ipa size.
Flex/AS3 mobile apps must include the SDK in the output in order to run. It is referred to as "Captive Runtime" and is an option on Android, but mandatory on iOS. Essentially, they are native apps that run as virtual machines that allow you to display your AS3/Flex apps on the device without a hint of Objective-C or Java. Those SDKs are far from small. If you look in %FlashBuilder Install Directory%/sdks/, you'll see that those SDKs can be close to 1GB in size. Obviously, that doesn't all get included, but from my experience, the smallest IPA I have ever created was around 8MB.
I don't have a solid answer for what the absolute minimum size of those SDKs are, and Google turned up nothing, but my guess would be somewhere between 4-8MB, depending on if you used Flex or not.

Blackberry WebWorks + Ripple, whats the easiest way to distribute app?

Currently I use Ripple "Package and Sign" option, and then use Blackberry Desktop Manager (with my blackberry connected to PC via USB) to import then apply the app. What annoys me is the whole process takes min 10mins sometimes 30mins all up.
I try to skip the "Sign" option, ie use "Package" only but when running the app from the device it gives me this error: "Error starting X: Module 'X' attempts to access a secure API".
Questions:
How are you installing the app on blackberry during Dev/Test?
How are you distributing the app for PROD release?
I have heard we can distribute via Wi-Fi or just sending someone a link to download the app, but cant really find much info on it. Any help?
You have to sign Webworks apps that you intend to use on the phone. Test as much as you can in the simulator, since it has the fastest turn around time between compiling and running the application.
Appworld is probably going to be your easiest distribution method if you intend on having users buy your app.
If you want to use the internet/WiFi option, you'll need to have a webserver/site you can upload all the *.cod and *.jad files that are built when you package the app. Then point the people downloading the app to the .jad file and their phone will try to install it for them.

Resources