Appstore refuses my app updates because it running slow

Hi there.
After opening a ticket with appsore support, I post a question here too.
As said appstore refuses my update (submitted and tested 4 times) because “the progress indicator cursor spins for 10 to 15 seconds for many actions”.
So I’ve tested my app compiled and signed logging in with beta tester apple id, in a new user account on my mac, and my app works nice as ever without “the progress indicator cursor spins for 10 to 15 seconds for many actions”.
Anyone has suggestions on other test can I do?
Thanks a lot!!!

Which App is it please? What does it do? Are Networking Paths or Tasks part of your App?

Mi app, called Gest-L, available for Italian market only, works only locally, no network connection needed :frowning:

Do you compile 64-bit?

The spinner should only be a spinner if processing time is below 7 seconds. Otherwise it should be a progressbar.

Maybe the App Store People can tell you when your App hangs exactly? If you ask kindly, i found them always to be very willing to help.

If it works fine for Sergio, but not for Apple… I doubt 64bit will “fix” it

Appstore refuses an update, compiled for 64bit only. So no people except testers can use it

Appstore tester said to open a developer ticket and no detail is given…

This sounds like the nice way to describe “beachballing.” Are there things that should be threaded that aren’t?
If you share a demo build, volunteers can look and make suggestions.

did you try your app on a fresh macos install, AND on a mechanical disk ?
because on your dev unit, you may have an ssd drive, it can be 10x faster than a base imac …

I found, downloaded, and played with the demo. It does hang. A lot:

  1. When first launched, an attempt to connect to cube.system-i.it hangs the app until a response is received
  2. Every Activate for main window.
  3. Every Deactivate for the main window
  4. Switching to the “Assistenza” item on the main window. Several seconds before another window opens.

I don’t know Italian, so I can’t explore much more, but the app store reviewer is not mistaken. This app hangs a lot, and right when you wouldn’t want it to. Testing for the purpose of writing this post would be described as “incredibly painful” if I wasn’t aware that slowdown is what I was testing.

By the way, on a first, fresh launch I got an error message “no such table: agenti”
It then quit after a delay.

[quote=427904:@Tim Parnell]I found, downloaded, and played with the demo. It does hang. A lot:

  1. When first launched, an attempt to connect to cube.system-i.it hangs the app until a response is received
  2. Every Activate for main window.
  3. Every Deactivate for the main window
  4. Switching to the “Assistenza” item on the main window. Several seconds before another window opens.

I don’t know Italian, so I can’t explore much more, but the app store reviewer is not mistaken. This app hangs a lot, and right when you wouldn’t want it to. Testing for the purpose of writing this post would be described as “incredibly painful” if I wasn’t aware that slowdown is what I was testing.

By the way, on a first, fresh launch I got an error message “no such table: agenti”
It then quit after a delay.[/quote]
You’re right, cube is our support ticket system, and my app check if there are open tickets… I can correct that. The “no such table” error is what I fixed in the new version, but Apple…
In any case, your comment is helpful. Thanks!

[quote=427900:@Jean-Yves Pochez]did you try your app on a fresh macos install, AND on a mechanical disk ?
because on your dev unit, you may have an ssd drive, it can be 10x faster than a base imac …[/quote]
OMG! Do I have a bad mac to check? Personally I think it’s terrible that Apple sells Macs with HDD in 2019!
The problem is previews version was accepted. I’ll take a look as suggested above from Tim. Thanks anyway

Loops are great friends of the beachball. Especially when they last a bit.

In all my new apps, I systematically replace long loops by timers, using a structure not unlike C loops :

Static LoopCount as Integer Dim Max as Integer = 100 // Whatever needed max value If LoopCount < Max then // Do stuff LoopCount = LoopCount + 1 else LoopCount = 0 self.Mode = Timer.ModeOff end if

Nice idea.

I can see that this might make ‘wait until the job is finished’ code slightly trickier, as other areas of the app would have to disable themselves until Loopcount reached Max, and that might also require those values to be outside of the timer code

That’s going to be one slow loop.

Threads anyone?

I replace them with Threads. Threads which do the heavy load and single time timers (fired from within Threads) which do small UI updates while the Thread do it’s work. Even if i need to “block” the UI for the User while the Task is running. Because it’s better to show a “Please wait…”, instead of an App which freezes.

@Sergio Tamborini — As I posted here recently, you can simulate a slow HDD on macOS.

See this post