4

I recently updated an app that was previously published to iOS 7.

The app works fine in every case, except when it is downloaded from the App Store. Even when published to TestFlight and installed from there.

The code block where it is not working is at a point where it retrieves a file from a remote HTTP server.

I have tried to sniff the network by having it connect to WiFi through my Mac and running a packet sniffer, but it doesn't even seem to make the HTTP GET request.

Obviously this is very hard to debug because it has to go through the store process.

Is there a way to take the binary package that I would upload to the store, and sideload it onto a device for debugging?

TwoRedCells
  • 106
  • 6

1 Answers1

4

Start with comparing your build settings for "Release" and "AppStore". There might be a difference.

Another source of error might be that you have something on your device in (in NSUserSettings for example) that does not exist on devices where you deploy the app store build to.

Third option I can think of is an #if somewhere in your code, like

#if RELEASE || DEBUG
SuperImportantCallToMakeItWork();
#endif

You need to have exact same test conditions for the release and the app store build. The same device, if necessary a fresh reinstall.

The store processing does not change your binary. It is just a release version (if you configured everything correctly).

Krumelur
  • 32,180
  • 27
  • 124
  • 263
  • I have tried on several devices, with and without deleting the app first. Are there any crumbs outside of the app's sandbox that could affect new installations? I'll check the build settings carefully. Is there a way to install an app store package without the app store? – TwoRedCells Feb 14 '14 at 20:08
  • It seems so simple, yet it has taken so long. You are absolutely right. The AppStore config had the added line `Full` which enables full linker optimization, which broke the app because the app uses reflection. You made my day. – TwoRedCells Feb 14 '14 at 20:51