Can I publish to App store on back -level Corona SDK etc?

Hi,

I have an app that is running well on friends and family devices [iPads, iPhones } and they are testing for me.

The app uses tableviews extensively and I have stayed back level [2013.1202 (2013.8.28)] as I have found ways round little ‘hiccups’ in the widgets to get things to run smoothly.

I have not moved to the latest public release [Graphics 2.0 etc] yet as I read there are still issues with compatibilty mode and fixes are in the daily build but not yet released.

I also recall reading somewhere that we must get to a Corona release with Graphics 2 as Apple will reject apps not at that Graphics level. Can someone explian to me how will Apple know and why must we use Graphics 2 ?

I think the answer to my subject question will be no, but I thought I would just ask before I spend time making lots of updates to work on the latest public release.

Thanks

As I understand it you can still build using older versions, but you would be best served with the last pre G2.0 build (~1265?) I don’t think Apple is rejecting older builds but given the move to 7.1.1 and (presumably 8.0) soon for iOS I’m not sure iOS5 is a good target anymore.

You could try a G2.0 build with compatibility mode; it may be fine for your purposes, but there’s really no way to tell until you try it.

Thanks

I will try the compatability mode. I was monitoring the build forums and some were saying that in compatibility mode Treeviews not formatting correctly…

Anyway I will give it a go later next week, and feed back findings.

I am not an IOS aficionado, could you clarify your comment "given the move to 7.1.1 and (presumably 8.0) soon for iOS I’m not sure iOS5 is a good target anymore" ? The apps I am testing on the back-level build are running on IOS 7.1.1 with no problems.

There are two reasons why you need to upgrade and both have to do with Apple.

  1. They require apps be built against the iOS 7 SDK.  The 12xx builds are built against iOS 6.  The latest public build, 2189 will support iOS 7 - iOS 5 devices, since 2189, with daily builds, the minimum iOS supported is iOS 6.0.  Apple will reject apps not built with iOS 7 as the primary SDK. 

  2. Apple is rejecting apps that improperly use the IDFA (Indentifier for Advertisers).  In the 12xx builds, we included this as a library call for your use, so it’s compiled into the core.  Apple changed the rules.  We’ve removed it, but the Facebook APIs (facebook.*) uses this. So Facebook was pulled out into a plugin.  We are still trying to work out issues with the Facebook SDK and Apple.  By using a build greater than 2169, and if you don’t use Facebook, all should be good. 

Rob

Thanks Rob,

Point 2 Clearly explains the need to go forward due to the need to extricate  the IDFA which Apple object to, so hence I have no choice.

Point 1 Only for my edification…

Ignoring IDFA for the moment, when you say 12xx builds against IOS6, 2189 supports IOS7 [what is implied by your comment on IOS 5 devices ?]. You  refer to IOS 6.0 as minimum for daily builds yet Apple reject apps built for IOS 7 [Why or when  is IOS 6.0 relevant?]?

I thought IBM operating systems interface development was a real tangle, but here I am seeing things never really change in life, they just appear different.

Apple supports only the current (maximum) SDK which is 7.1   These builds run on OS’s 2 builds back, so with 7.1, you can install on iOS 6 and iOS 5.  Apple is rejecting any app submitted where the maximum SDK is iOS 6 or less.  You have to have the maximum SDK at 7.0 to submit.

Public build 1202 and several 2xxx builds are around iOS 6 as the maximum and Apple will reject them.  Special build 1262 will support iOS 7, but it’s the only 12xx build that will. 

Now, Corona has with a recent daily build (and it will impact the next public build) changed the minimum iOS to 6.0.  We did this to stop having to hack around a change Apple made with their view controllers for things like the camera, camera roll, etc.

Good news, and not so good news.Ref moving to  Graphics 2 Compatibility Mode =1

I have just tried Version 2014.2189 (2014.3.6) with just graphicsCompatibility = 1,  – Turn on V1 Compatibility Mode.

{Rob, should I just use your mention Special build 1262- I just downloaded the latest build on the web?}

NOTE: I am testing a fully working publishable app that runs as required and very acceptable on back level graphics 1.0, but cannot be submitted to the app store because I need graphics 2.0!

Good News

I was pleasantly surprised my app actually worked [sorry to having been so dubiousness, but after monitoring all the latest build forums I was very apprehensive that it would not even start and would require masses of code changes].

I am using storyboard extensively-every new screen is a new scene which creates a view with a widget.newTableView. Moving from screen to screen, internally destroys the scene and recreates another{holding onto a scene for later re- use has no performance benefits measurable for my app–memory use/leaks or response}. This still works-great!

Overlay scenes work , but now take about for ever…to display.

To overcome the various ‘hiccups’ on back level,  I use loads of object:seReferencePoint() and extensive use of object:setFillColor() and object:setStrokeColor() so far during tests these also work as intended on this latest version.

Not so good news

The application now is very very sluggish! and many ‘bugs’/problems with table view positioning

NOTE I have done no research or intense debugging yet ,so this is just feedback and a request for any suggestion, that are obvious,  from the latest build user, i.e are the following concerns fixed, or do are start hacking my code to try to get around these in-hibitors to getting my app published. In it’s current condition it would be almost unusable and would destroy it’s marketing image.

  1. A new screen came up is a blink of an eye-milliseconds, on the back level. Now it can take 1.5 seconds! OUCH Serious advise needed here?

  2. Tableviews come up at top left corner as designed-but any scrolling is dramatically clunky and re-positions left middle of the screen. Smooth speed scroll has gone! It would seem compatibility only works on first painting of the table, after that all reference is as Graphics 2-i.e. compatibility is not consistent through the life of the app. Removing line list:scrollToIndex( actualScrollto,450 ) helps , but not in all cases…

3.My main table view [called dashboard] which has entries larger that the screen will not scroll up and show  lower entries- while other views of tables in  different scenes do allow lower level rows to be scrolled up, but in clunky painting and very jumpy and unpleasing fashion [must be some differences in my code helping cause this miss-function].

  1. Tapping on the ‘dashboard’ can take over 4 to 10 seconds to highlight the tapped entry, kill the scene, create the next scene, create the table view  and paint the display-in back level graphics 1.0 this was all done correctly in just milli-seconds.

  2. Scene overlay- This is where I first scan the contents of the Table View by scrolling to the end and add numbers in RowRender routine and then display the stats in an overlay scene{sounds messy but actually worked and looked OK and usable. Now it can take 12 seconds with a blank screen{ presumably firing rowrender events} another 3 seconds flashes the table contents scrolled up, then another 4-seconds the overlay scene is displayed. Taping the overlay takes 3 seconds to dissapear and the return to the tableview positioned at mid left, not top left as required in compatibility mode.

Run time messages

Speed varies in all tests, some times many many seconds, then later just a few. Looking at memory needs of the app which are kept at a minimum these show

Memory used 1111.22   TEXTURE Used 0.77407073974609

Memory used 1024.31   TEXTURE Used 0.71668243408203

 

Ther are masses of warning messages, masses and masses - can I stop these as thes undoubtably are slowing the system?

WARNING: object:setReferencePoint() was given a ‘nil’ value. The behavior is not defined.

 

Ok that’s enough to think on for now…

 

So I guess it is back  to more testing and reading and hacking the code if I wish to publish a Corona Business app using widgets…

I guess one response will be move to the daily builds by buying the Basic license- Yes, a possible route but who can assure this will improve my case. I would love to submit my back0level as it is really cool and friend love its speed and functionality. 

Should I mark up more of my findings, here, on Tableview problems in the Public Version 2014.2189 (2014.3.6)?

Or, should I assume they are addressed in the daily builds and wait for the next public release[When]?

Just out of an example. I found that a Table view does not show, by scrolling all the entries, but if I do a scrollto the last entry it/they are shown. Manually scrolling back to the top,  I can no longer scroll to the limit any more-it is locked at the screen view content list.

This was ok on the back-level but not working on public release…

UPDATE- Found one bug in my code that was using a nil value setreferencepoint. Hence the masses of warning messages using graphics 2.0

These messages do not occur on the back level- and code function ok there.

Code now a lot faster on graphics 2.0 , but still some problems–watch this space if any more valuable [to graphics 2.0 migration findings are thought to be of interest…]

Welcome back! Great to hear that you have completed your app and sorry to hear that now you have to make it work in the current release levels. 

Since 2189 there has been some widget fixes released in the Daily builds but I don’t know if these would have resolved the issues you are seeing with graphics version 1 compatibility set to on. I think your best bet is to remain on 2189 and move your app to G2 style calls so you can do away with the compatibility mode. I think that change will greatly enhance performance and reduce the bugs that you are encountering. I am sorry to give you the bitter pill but thats how I see it coming your way. 

Fret not, there are some great libraries published by our fellow devs to support the old style position references and old style color calls in the new G2 world. Just look at the code exchange and you will see these. Using some 3rd party libs like this you can actually keep the changes in your code to a minimum and give 2189 with G2 mode a go. 

Hope this helps. Best of luck! 

  1. It’s really hard to say if a daily build would fix your problems or not. The best thing to do would be to try making a smaller test project, build a table view, and see if performance/functionality differs. There may be other, undetected problems in your code and that’s the safest way to check. (Or as ksan says, try porting to G2.0)

  2. All of the setReferencePoint warnings should theoretically go away if you have compatibility mode on, I’d assume - they are deprecated but should be ok in compatibility mode. (Haven’t tested if that happens though)

  3. Your memory counts look fine. I mean, 1MB memory, less than 1MB texture memory is incredibly small…

See the following thread : 

http://forums.coronalabs.com/topic/45794-tableview-positions-itself-wrong-in-10-compatibility-mode/#entry245356

I think this is confirmation that the issues you encountered in 2189 are still there in the most recent dailies. 

Thanks ksan & richard9, yes this is what I had suspected, move off compatibility mode. Not sure that the daily builds will help fully yet.

As the kids on the back sit may say “are we there yet?”

I did find a bug in my code that caused most of the response time problem from all the warning messages, messages I did not get in back level and now the speed is much more acceptable.  Setreference with a nil object… 

I still have problems in scrolling and deletAll, this is changing the position of the first entry. After the deletall the insert first row shows up  in the middle of the table. I have seen this comment in the forum somewhere. I will search back through what you guys have been feeding back.

Thanks again

Yes, your right again ksan, your link identifies the problem I am seeing with the Tableview

your ref http://forums.coronalabs.com/topic/45794-tableview-positions-itself-wrong-in-10-compatibility-mode/#entry245356

So this really says I drop compatibility mode and re-code what ever is needed, but will also use your recommended code-exchange libraries for setcolour and setreference initially to speed up the migration-change; later, if memory too large re-code those.

Ref Memory richard9… I spent a lot of time studying the usage and hints and tips to ensure I removed any memory variable/table/scenes whenever they are not in use. Even I was pleasantly surprised as there must be about 60 variations of screen that can be created. This stems back to my early days when the largest memory size on system controlled PCs was less than 256k, not megs, kilobytes …

:slight_smile:

Just a grumble here to Corona guys… This is just 12 months I have been trying to  use widgets and most of that debug time has been debugging Corona implementation. If the widget code had worked the app would have been in the store 9 months ago!! :angry:

As I understand it you can still build using older versions, but you would be best served with the last pre G2.0 build (~1265?) I don’t think Apple is rejecting older builds but given the move to 7.1.1 and (presumably 8.0) soon for iOS I’m not sure iOS5 is a good target anymore.

You could try a G2.0 build with compatibility mode; it may be fine for your purposes, but there’s really no way to tell until you try it.

Thanks

I will try the compatability mode. I was monitoring the build forums and some were saying that in compatibility mode Treeviews not formatting correctly…

Anyway I will give it a go later next week, and feed back findings.

I am not an IOS aficionado, could you clarify your comment "given the move to 7.1.1 and (presumably 8.0) soon for iOS I’m not sure iOS5 is a good target anymore" ? The apps I am testing on the back-level build are running on IOS 7.1.1 with no problems.

There are two reasons why you need to upgrade and both have to do with Apple.

  1. They require apps be built against the iOS 7 SDK.  The 12xx builds are built against iOS 6.  The latest public build, 2189 will support iOS 7 - iOS 5 devices, since 2189, with daily builds, the minimum iOS supported is iOS 6.0.  Apple will reject apps not built with iOS 7 as the primary SDK. 

  2. Apple is rejecting apps that improperly use the IDFA (Indentifier for Advertisers).  In the 12xx builds, we included this as a library call for your use, so it’s compiled into the core.  Apple changed the rules.  We’ve removed it, but the Facebook APIs (facebook.*) uses this. So Facebook was pulled out into a plugin.  We are still trying to work out issues with the Facebook SDK and Apple.  By using a build greater than 2169, and if you don’t use Facebook, all should be good. 

Rob

Thanks Rob,

Point 2 Clearly explains the need to go forward due to the need to extricate  the IDFA which Apple object to, so hence I have no choice.

Point 1 Only for my edification…

Ignoring IDFA for the moment, when you say 12xx builds against IOS6, 2189 supports IOS7 [what is implied by your comment on IOS 5 devices ?]. You  refer to IOS 6.0 as minimum for daily builds yet Apple reject apps built for IOS 7 [Why or when  is IOS 6.0 relevant?]?

I thought IBM operating systems interface development was a real tangle, but here I am seeing things never really change in life, they just appear different.

Apple supports only the current (maximum) SDK which is 7.1   These builds run on OS’s 2 builds back, so with 7.1, you can install on iOS 6 and iOS 5.  Apple is rejecting any app submitted where the maximum SDK is iOS 6 or less.  You have to have the maximum SDK at 7.0 to submit.

Public build 1202 and several 2xxx builds are around iOS 6 as the maximum and Apple will reject them.  Special build 1262 will support iOS 7, but it’s the only 12xx build that will. 

Now, Corona has with a recent daily build (and it will impact the next public build) changed the minimum iOS to 6.0.  We did this to stop having to hack around a change Apple made with their view controllers for things like the camera, camera roll, etc.

Good news, and not so good news.Ref moving to  Graphics 2 Compatibility Mode =1

I have just tried Version 2014.2189 (2014.3.6) with just graphicsCompatibility = 1,  – Turn on V1 Compatibility Mode.

{Rob, should I just use your mention Special build 1262- I just downloaded the latest build on the web?}

NOTE: I am testing a fully working publishable app that runs as required and very acceptable on back level graphics 1.0, but cannot be submitted to the app store because I need graphics 2.0!

Good News

I was pleasantly surprised my app actually worked [sorry to having been so dubiousness, but after monitoring all the latest build forums I was very apprehensive that it would not even start and would require masses of code changes].

I am using storyboard extensively-every new screen is a new scene which creates a view with a widget.newTableView. Moving from screen to screen, internally destroys the scene and recreates another{holding onto a scene for later re- use has no performance benefits measurable for my app–memory use/leaks or response}. This still works-great!

Overlay scenes work , but now take about for ever…to display.

To overcome the various ‘hiccups’ on back level,  I use loads of object:seReferencePoint() and extensive use of object:setFillColor() and object:setStrokeColor() so far during tests these also work as intended on this latest version.

Not so good news

The application now is very very sluggish! and many ‘bugs’/problems with table view positioning

NOTE I have done no research or intense debugging yet ,so this is just feedback and a request for any suggestion, that are obvious,  from the latest build user, i.e are the following concerns fixed, or do are start hacking my code to try to get around these in-hibitors to getting my app published. In it’s current condition it would be almost unusable and would destroy it’s marketing image.

  1. A new screen came up is a blink of an eye-milliseconds, on the back level. Now it can take 1.5 seconds! OUCH Serious advise needed here?

  2. Tableviews come up at top left corner as designed-but any scrolling is dramatically clunky and re-positions left middle of the screen. Smooth speed scroll has gone! It would seem compatibility only works on first painting of the table, after that all reference is as Graphics 2-i.e. compatibility is not consistent through the life of the app. Removing line list:scrollToIndex( actualScrollto,450 ) helps , but not in all cases…

3.My main table view [called dashboard] which has entries larger that the screen will not scroll up and show  lower entries- while other views of tables in  different scenes do allow lower level rows to be scrolled up, but in clunky painting and very jumpy and unpleasing fashion [must be some differences in my code helping cause this miss-function].

  1. Tapping on the ‘dashboard’ can take over 4 to 10 seconds to highlight the tapped entry, kill the scene, create the next scene, create the table view  and paint the display-in back level graphics 1.0 this was all done correctly in just milli-seconds.

  2. Scene overlay- This is where I first scan the contents of the Table View by scrolling to the end and add numbers in RowRender routine and then display the stats in an overlay scene{sounds messy but actually worked and looked OK and usable. Now it can take 12 seconds with a blank screen{ presumably firing rowrender events} another 3 seconds flashes the table contents scrolled up, then another 4-seconds the overlay scene is displayed. Taping the overlay takes 3 seconds to dissapear and the return to the tableview positioned at mid left, not top left as required in compatibility mode.

Run time messages

Speed varies in all tests, some times many many seconds, then later just a few. Looking at memory needs of the app which are kept at a minimum these show

Memory used 1111.22   TEXTURE Used 0.77407073974609

Memory used 1024.31   TEXTURE Used 0.71668243408203

 

Ther are masses of warning messages, masses and masses - can I stop these as thes undoubtably are slowing the system?

WARNING: object:setReferencePoint() was given a ‘nil’ value. The behavior is not defined.

 

Ok that’s enough to think on for now…

 

So I guess it is back  to more testing and reading and hacking the code if I wish to publish a Corona Business app using widgets…

I guess one response will be move to the daily builds by buying the Basic license- Yes, a possible route but who can assure this will improve my case. I would love to submit my back0level as it is really cool and friend love its speed and functionality. 

Should I mark up more of my findings, here, on Tableview problems in the Public Version 2014.2189 (2014.3.6)?

Or, should I assume they are addressed in the daily builds and wait for the next public release[When]?

Just out of an example. I found that a Table view does not show, by scrolling all the entries, but if I do a scrollto the last entry it/they are shown. Manually scrolling back to the top,  I can no longer scroll to the limit any more-it is locked at the screen view content list.

This was ok on the back-level but not working on public release…

UPDATE- Found one bug in my code that was using a nil value setreferencepoint. Hence the masses of warning messages using graphics 2.0

These messages do not occur on the back level- and code function ok there.

Code now a lot faster on graphics 2.0 , but still some problems–watch this space if any more valuable [to graphics 2.0 migration findings are thought to be of interest…]