Okay!, so first some history.. was working with Webworks 1.x to get my game Baka – The World’s Hungriest Frog packaged for Blackberry 10.x platform.
Ran into quite some problems … not finding debug tokens to missing author.p12 files were just some of them.
To much dismay, suddenly all the docs links I was referring to on the developer url on blackberry site changed to Webworks 2.0 (Yay! RIM released BB Webworks 2.0 based on Apache cordova)
Wasn’t much “yay!” for me as I spent over a week figuring out why my debug token wasnt generating or why I couldn’t package a simple bar file… all in between making trips to hospital for I was under treatment for typhoid (still under medicine as we speak).
Anyway, I was super pissed… shot couple of mails and tweets and thankfully Erik (@WaterlooErik) mailed back quick…. and with quite a sensible reply. Very kind of him :)
3 lines from his email got me the root of the problem
When testing with the new WebWorks 2.0 SDK, you should actually only have to run the following command when your device is connected:
This will automatically generate a debug token for you if need be, upload it to the device, and then deploy your project in debug mode to the device.
Have you registered your BBID code signing keys and generated a new author.p12 file already? (If you are using your old CSJ code signing keys, that may be where the issue is coming from.)
1. What he mentioned as “automatically generate a debug token for you” wasn’t happening.
2. So, I was trying everything manually to create those debug tokens… using csj files with the old webworks debugtokenrequest commands and csk with new debugtokenrequest… wait.. in short I had both stuff installed in a big mess.
3. I was using Webworks setup inside a Windows VM running on a Linux host.. so the device was connected via host to guest.. and somehow that pretty much doesnt work. “No Blackberry device found” :)
I definitely didn’t want to dual boot my laptop with windows for this (although I could have used my desktop .. I wanted to have this on the move)
Then I found this https://github.com/badtoyz/BB10-WebWorks-SDK-188.8.131.52-Beta
Decided to do a clean install on my laptop/Ubuntu host … so here I take you through how it was done along with some pitfalls.
INSTALLING WebWorks 2.0 BETA on Ubuntu Linux:
\\ Install Git, ia32-libs, Java Runtime Environment
krish@shenron:~$ sudo apt-get install git ia32-libs openjdk-6-jre
\\ Update Repo and install python stuff and build tools
krish@shenron: ~$ sudo apt-get update
krish@shenron: ~$ sudo apt-get install python-software-properties python g++ make
\\ Get Nodejs from Chris’s ppa – there is a nice updated build for lucid lynx, so didn’t have to compile from source
krish@shenron: ~$ sudo add-apt-repository ppa:chris-lea/node.js
\\Accept the freaking ppa adding warning :)
krish@shenron: ~$ sudo apt-get update; sudo apt-get install nodejs
\\Install Cordova via npm
\\ Note: I didn’t have to install npm via my package manager. Infact it apt-cache policy npm shows its not installed. Probably comes packaged with nodejs
krish@shenron: ~$ sudo npm install -g cordova
- WebWorks 2.0 Beta
\\ Get from Mike’s (@badtoyz) repo
krish@shenron:/opt$ git clone https://github.com/badtoyz/BB10-WebWorks-SDK-184.108.40.206-Beta.git
krish@shenron:/opt$ mv BB10-WebWorks-SDK-220.127.116.11-Beta BadToyz-BB10WebWorks
- Start UI and Try to create a Test Project
Open a tab on your browser to http://localhost:3123, this should give you WebWorks 2.0 UI
Try creating a project and Build it.
For me, it didnt :) .. It got stuck at a dialog called “Creating…” or something and hung there.
So did a little debug via command line, found where the problem step was, reported it on an issue
I thought I might now have to wait another week for this, but Mike was kind enough to fix this fast (as you can see from the replies on that issue)
- Pull in latest from Repo + Couple of more changes I figured was necessary
\\ Stop the UI by Ctrl+C on that term you were running it on.
\\ Pulled in Mike’s fixes. You may not have to do this because you will get latest fix from HEAD
krish@shenron:/opt/BadToyz-BB10WebWorks$ git pull origin master
\\ Install npmlog, graceful-fs and clean .cordova
krish@shenron: ~$ sudo npm install npmlog
krish@shenron: ~$ sudo npm install graceful-fs
krish@shenron: ~$ rm -rf .cordova
\\ Extend PATH variable .bashrc to add /opt/BadToyz-BB10WebWorks
\\ and /opt/BadToyz-BB10WebWorks/cordova-blackberry/bin/dependencies/bb-tools/bin
\\ Now startui again and try to create test project
krish@shenron: ~$ cd /opt/BadToyz-BB10WebWork
Go to that localhost:3123 again, and try… it worked this time :)
Was able to create the project.
- CONNECT Your Blackberry on LINUX
I was using z10 dev alpha B.. you might have a z30.
Well, this doesnt work so seamlessly as it does on Windows, aka.. it doesnt connect via usb as a recognizable device.. this is the reason I couldn’t forward the usbdevice into my VirtualMachine windows.
Anyway here’s the work around
1. Enable Dev Mode
– Go to Settings -> Security and Privacy -> Development Mode
– Give a password, remember it. This is your DEVICEPASSWORD
– Set an IP. Default is 169.254.0.1 (I used 169.254.1.5)
2. Connecting via USB on Linux
– Got to Settings -> Storage and Access
– Set USB Connections to “Connect to Windows” or “Connect to Mac” instead of the default “Auto detect”
Now you’ll see the device will be available as a network connection on your network-manager
Note: I renamed it to BBz10 to remember so.
3. Test the connection
– You should be able to ping your z10 via its dev mode IP (169.254.0.1 or whatever you set it to)
- Try to BUILD test WebWorks Project
Tried to build and install the project via UI
– FAILED :(
What the!!! Same old error. Now I dont want to use that blackberry-debugtokenrequest script again?
Oh wait, Remember Erik said, “When testing with the new WebWorks 2.0 SDK, you should actually only have to run the following command when your device is connected: webworks run”
Let’s try that
- Creating a DEBUG TOKEN
\\ Go to a project directory
krish@shenron:/opt/BadToyz-BB10WebWorks$ cd ~/WebWorks Projects/test1
\\ Run webworks run.
\\ This will ask you for your DEVICEPASSWORD (which you entered when switching on debug mode)
\\ And your KEYSTOREPASSWORD (which you set while generating bbidtoken.csk)
\\ If you did not generate bbidtoken.csk, please do it via
krish@shenron:~/WebWorks Projects/test1$ webworks run
[ERROR] The Specified CSK password is not valid.
Pretty sure that I had my csk password correct.
Let’s try verbose mode
\\ Trying Verbose on webworks run
krish@shenron:~/WebWorks Projects/test1$ webworks –verbose run –devicepass DEVICEPASSWORD –keystorepass KEYSTOREPASSWORD
Generating config.xml from defaults for platform “Blackberry10″
[INFO] Target Z10-MYDEVICEPIN selected
[INFO] Generating debug token
[ERROR] The specified CSK password is not valid.
An error has occured.
At this point I could see fumes out of my head. This was back to square one. :X
Atleast, it shows MYDEVICEPIN correctly, so unlike earlier, it is able to connect to my device this time :)
Did I mention I was making trips to hospital the whole last week? and then working late nights (probably half drowsy) on this with Webworks 1.x
So I thought, what the hell.. lets just try to ensure we have all files correct
- Files you need under ~/.rim or your /home/user/.rim
You’ll need the bbidtoken.csk and author.p12
I backed up my author.p12 from the windows VM from “%HOMEPATH%\AppData\Local\Research In Motion”
and put in under “~/.rim”
I’m pretty sure I had to generate that author.p12 on Windows. Just can’t remember at the moment.
As for bbidtoken.csk, I generated a new one by going to http://developer.blackberry.com/codesigning and requesting a new token for SDK 10.2 for WebWorks 2.0 Beta
AND remember the KEYSTOREPASSWORD you set here :)
- Try to CREATE Debug Token Again
Yippie! Finally… webwork run also deploys if the app is connected.
Also it created debug keys and pushed it to the device. I could see that on the “Settings -> Security and Privacy -> Development Mode” screen.
But wait, I want to see this working via UI too.
\\ So fire up the ui again
krish@shenron: ~$ cd /opt/BadToyz-BB10WebWork
\\Try to Build and Install the project via the UI
You’ll see your the app fire up on your phone screen and also an app icon installed :D
Hope this helps someone :)
You can tweet a thanks to @WaterlooErik , @badtoyz and may be me if you want to let me know that this worked for you! :)
Or if it didn’t, feel free to either tweet to me @srikrishnadas and/or leave your error in comments :D
Thanks to ダニエル for his nice write up on prereqs for the old Webworks. It did help :) I wish I knew his twitter id to include in the above thank list :D
An hour past midnight now.. time for BattleField ;)