PDA

View Full Version : [FIXED] Native Packaging Issue



robcolburn
14 Oct 2011, 2:08 PM
Great work on the new Touch libs, they look great. I decided to attempt transitioning starting with the packager. My first of the Native Packager didn't go so smooth…

I stepped through the provided guide ( http://docs.sencha.com/touch/2-0/#!/guide/native_packaging ), with an existing Sencha Touch 1.0 project.

1. Complete iOS provisioning on Apple iOS provisioning portal for

I already have a provision profile set-up for this app, I'll just fill in the App Name and ID. Actually, I have two separate profiles:
Ad Hoc Distribution Profile for my company ("Wiley Coyote, Inc.")
App Name: "Acme App". App ID: "com.acme.appDev"

App Store Distribution Profile for my client company ("ACME Enterprises LLC")
App Name: "Acme App". App ID: "com.acme.app"



2. Install the Packager

Done.

3. Create a packaging configuration file to be use with the native packager.


{
"applicationName":"ACME App",
"applicationId":"com.acme.AcmeApp",
"iconName":"icon.png",
"versionString":"1.10",
"outputPath":"~/Documents/Sencha Projects/AcmeApp/build",
"webAppPath":"~/Documents/Sencha Projects/AcmeApp/www/",
"configuration":"Release",
"platform":"iOS",
"deviceType":"Universal",
"orientations": [
"portrait"
]
}


4. Run the packager to create the packaged application

$ sencha packagae config.json
iPhone Distribution: ambiguous (matches “iPhone Distribution: Wiley Coyote/, Inc.” and “iPhone Distribution: ACME Enterprises LLC //” in /User/wiley/Library/Keychains/login.keychain)

I'm assuming, I can use "certificateAlias" to solve some of this, but I'm not sure how.

Jamie Avins
15 Oct 2011, 8:33 AM
Will have someone take a look at it, thank you.

abe.elias
16 Oct 2011, 11:23 AM
Hi Rob,

I've posted a new stbuild that is contained in the SDK Tools Downloads. You should be able to install it by following the link below.

http://cl.ly/1Y1D0t070z0X1p2p2Q0d

certificateAlias must be in format:

"certificateAlias":"iPhone Developer: Abraham Elias" or for distribution should be something like this:

"certificateAlias":"iPhone Distribution: Sencha Inc."

Thanks.

kyr0
18 Oct 2011, 9:38 AM
Great! For me that works now too.
Also fixes the: "iPhone Distribution: no identity found" bug.

Just wanted to inform you that the "phoneStartupScreen" isn't working at all for me.
I'm using the source code of Sencha Touch 2 example "carousel" (I only replaced "Ext.setup" by "Ext.application" and "onReady" by "launch"):

Ext.application({
tabletStartupScreen: 'tablet_startup.png',
phoneStartupScreen: 'phone_startup.png',
icon: 'icon.png',
...

Files (like: tablet_startup.png) are contained in folder "app".
JSON-Config:

{
"applicationName":"Reader App",
"applicationId":"de.app.reader",
"iconName":"icon.png",
"versionString":"0.1",
"outputPath":"/Volumes/Source/ReaderApp/build",
"webAppPath":"/Volumes/Source/ReaderApp/app",
"configuration":"Release",
"platform":"iOS",
"deviceType":"Universal",
"certificateAlias": "iPhone Developer: ...",
"orientations": [
"portrait",
"landscapeLeft",
"landscapeRight",
"portraitUpsideDown"
]
}

The app startup is initially black (5 seconds, source loading time I guess), then afterwards 2 seconds additionally in white background (rendering time I guess).

Hmm, I'm using the sencha-touch-all-debug-w-comments.js currently.

Overall performance (also for animations) is likely poor, but OK for a Developer Preview I guess..
(and would be much better with a custom build I guess, but custom building will only affect the initial app load time of 5 seconds).

I'm using an iPhone 4.

Thanks and regards!

robcolburn
18 Oct 2011, 10:11 AM
Thanks Abe! I was able to compile just fine. I'll be testing run-time and such today. Sorry, for the rider question, but is there a way to build .IPA files? They're used for ad-hoc distribution, and most importantly TestFlight (a tool for distributing preview builds to key people).

@kyr0: When you experienced poor performance, were you comparing "Native Packager" vs. "XCode + PhoneGap", or with another framework?

abe.elias
19 Oct 2011, 1:07 AM
@kyr0 have you tried placing a Default.png in the root directory?

With the iPad you have more selection:



FilenameDimensions

Default-Portrait.png
768w x 1004h


Default-PortraitUpsideDown.png
768w x 1004h


Default-Landscape.png
1024w x 748h


Default-LandscapeLeft.png
1024w x 748h


Default-LandscapeRight.png
1024w x 748h



@rob Try to copy the .app folder into a folder called Payload. Compress the Payload dir and change the extension from XXX.zip to XXX.ipa.

kyr0
19 Oct 2011, 4:50 AM
Re,

@rob: Compared to Sencha Touch 1.0; Compared to PhoneGap and using jQuery Mobile, Sencha Touch 2.0 currently is a snake compared to a ferrari in terms of performance ;) (PhoneGap+jQuery is immediately started. No feel of non-native in any way.) But in terms of features and framework architecture jQuery Mobile is crap compared to Sencha Touch 2.0. We need to choose one type of death ;) And I hope the native performance of Touch 2.0 will increase the next releases as the performance enhancements of the Ext JS 4 dev branch will be merged with Touch 2.0...

@abe I've put the Default.png and Default-Portrait.png in the app folder so that it's packed in the "webapp" folder inside the .app in the end but that has no effect after a fresh new native build. There's still a blank black screen for 5 seconds and 3 seconds of white blank screen. Afterwards the blue carousel sample appears.

Btw: Maybe it would be a good idea to open up the git repo of Ext JS 4 (readonly) to a group of experts of the community to let the community help you sort out e.g. performance problems together with your dev team. I know a lot of commercial dev's with some "override.js" files that fix performance, API etc. problems. The community could then come up with up-to-date bugfix code's. Even the licensing problems could be sorted out by a CCLA. (Code Contribution License Agreement) I guess the Ext / Sencha users would be very pleased to hear community experts can participate on-track. Anyway.. :)

Thanks & regards!

kinetifex
23 Oct 2011, 3:25 PM
I've put the Default.png and Default-Portrait.png in the app folder so that it's packed in the "webapp" folder inside the .app in the end but that has no effect after a fresh new native build. There's still a blank black screen for 5 seconds and 3 seconds of white blank screen. Afterwards the blue carousel sample appears.


I'm trying to use the Sencha iOS Native Packager also and too am getting these same results on iPhone3GS with the blank startup screens.

I did figured out the icon issue: In your config file, the icon name is actually the path to the icon within the .app. Your www files get packaged up under webapp folder, so the iconName needs to be a path something like:
"iconName":"webapp/resources/images/icon.png"

This packager is on it's way to being very cool! We just need clearer instructions and more options for things like the splash screens, ability to hide the status bar, and other properties that should get set in the app's Info.plist.

abe.elias
6 Dec 2011, 10:34 AM
We'll be putting out another release shortly that addresses these issues. Thanks again for the feedback!

tmort
25 Feb 2012, 6:37 PM
I'm still getting an error when running:
sencha package run ios.json

Every time its run I get the following error:


sh: stbuild: command not found

Anyone having a similar issue?

abe.elias
25 Feb 2012, 11:01 PM
Are you using the new build tools?

http://www.sencha.com/blog/sencha-touch-2-rc-native-packaging/

tmort
26 Feb 2012, 5:05 AM
I am using the latest version (Beta 2.0.0). I've even uninstalled and reinstalled. I usually use ZSH for my command line, but I've even switched back to BASH, installed the package and attempted it in bash with no luck. Must be something wrong with my system though, if no one else is experiencing it.

I also get a message when I install the SDK, no matter what I do, that says "Unknown error running post-install step. Installation may not complete correctly". Possible reason why it isn't building?

32151

Appreciate the help.

abe.elias
26 Feb 2012, 12:49 PM
ok, this makes a little more sense now.

Behind the scene stuff... SDK Tools is trying to run another installer called stbuild.msi (on windows) and stbuild.pkg (on Mac). Depending on where it failed, it might still need to be installed.

I'm attaching the builder installer standalone.

http://cl.ly/1T2P0l2w1b2d2u0T153z (win)
http://cl.ly/0F1T1u3L3Z04270I3j2E (mac)

Once installed, you should have stbuild in your path and be able to build.

tmort
27 Feb 2012, 4:23 AM
I ran into a few more errors but I believe those were due to my .json build file having the wrong information (I was just running a test). Greatly appreciate it, very excited to test out the native packaging!

abe.elias
27 Feb 2012, 2:56 PM
Looks like you are on the path to packaging your app. Let me know how it works out.

kamalf
15 Mar 2012, 7:57 PM
As mentioned to the other posters, the iconName property is solved by appending webapp to it. The sencha command app generator should be updated to reflect this.

There is still no solution for setting the phoneStartupScreen.

kriskhaira
27 Mar 2012, 2:05 AM
The phoneStartupScreen doesn't work on the iPhone but I found a solution. Just put your launch images in the top-level directory and name it Default.png and Default@2x.png (for Retina).

kriskhaira
27 Mar 2012, 5:36 PM
The size for the launch image stated in the docs (http://docs.sencha.com/touch/2-0/#!/api/Ext.app.Application-cfg-phoneStartupScreen) might be wrong - "320px wide and 460px high". I just tried using the size specified in the iOS Human Interface Guidelines (http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/IconsImages/IconsImages.html#//apple_ref/doc/uid/TP40006556-CH14-SW5) which is 320 x 480px for Default.png and it works fine.

arandlett
5 Apr 2012, 9:48 AM
did you move Default.png to the resources directory or directory with app.js?

kriskhaira
9 Apr 2012, 6:59 AM
I put Default.png in the same folder as app.js, but I'm not sure if it works if it goes in the resources folder.