Retrieve Code from App on the APP Store - ios

I have had my Mac stolen but even worse they stole my Apple Time Machine. I have an App available on the App Store, is there anyway I can retireve the source code so that I can release updates/bug fixes ? I know I should have backued up in the cloud, lesson learned !

Unfortunately not. When you upload your app to the store, the code is compiled into a binary. There is no way to retrieve your code because it is not there.

Related

Xamarin IOS app, iCloud restore doesn't work once on App Store

My IOS app is now on the Apple App Store. I tested it like crazy before it was put on the App Store and I am sure Apple did as well, but now that it is on the App Store, when I install it from there, the restore function I wrote to restore the applications data from iCloud does not work. The backup function works, as I can see the iCloud usage on my phone for my app contains 78mb of data, but the restore does not work at all, it just goes back to the home page. I have no idea why as I get nothing reported on the crash.
2 questions
IS there a way to look at why it is crashing on my phone
Any idea why it would stop working once installed from the App Store when it must have worked for apple when they tested it and worked for me as well before on the App Store?
It turns out that I was mistaken about the restore failing. Well, it is failing, but the reason it is failing is because the backup is failing on each record, so nothing is created on iCloud to be read by the restore code. I have asked on a couple channels for help on what to do for writing to iCloud when the code is built in release mode, but have yet to receive any help. My code works perfectly in Debug, just not in release mode.

What does TestFlight do to my iOS executable?

I hash my iOS executable at launch to verify its integrity, and have had no problems doing so until TestFlight -- which appears to modify the executable as well as install it in some funky (undocumented?) way.
Even more concerning is I get multiple hash values, which appear to vary by device or iOS version or carrier or something. I don't own enough devices to be certain. But none of the hashes match the one I compute prior to uploading to TestFlight.
So I have two questions: (1) What is TestFlight doing to my executable, and is the process documented somewhere? And (2) Does the final app store release pull the same shennanigan, or something similar, or does it leave my executable unmodified from when I uploaded it?
That's what code signing is for.
Code signing your app assures users that it is from a known source and
the app hasn’t been modified since it was last signed.
Source: https://developer.apple.com/support/code-signing/
It seems like Apple encrypts your app. While this post is about App Store submission, could be the same for Test Flight (not sure about this).
See: https://stackoverflow.com/a/5784332/2019384
Also it's not recommended to verify your apps integrity by yourself, as you'll run in such issues. Besides iOS already does this for you:
Apple does not provide any supported way for you to check your app’s
integrity. iOS already does that by default.
Source: https://forums.developer.apple.com/thread/52801
In addition to d4rk's answer, if you're using Swift, Apple compiles in appropriate bits to optimize your app for each device.

Apple app rejected - two SQLite .db files are downloaded to /Library/Caches/file_0/

I am trying to publish my application to the Apple App Store, but it has since been rejected due to the following reason:
two SQLite .db files are downloaded to /Library/Caches/file_0/
The application is built in Cordova and uses SQLite. I cannot figure out why the app is getting rejected.
Is there anyone who has had a similar problem with an application?
If so, how did you get around this? Is there a way to stop the application from caching the db files like that, something in xcode perhaps?
Any help would be greatly appreciated.
EDIT:
The application downloads data from a server upon opening. The data is Javascript and html, there is some database management stuff with the code downloaded, but I have another app which does the same thing on the store already and that passed certification.
Apples Rejection Reply:
During review our team found this app downloads two SQLite files which dynamically alter the content and data of this binary. Please refer to the PLA, specficially 3.3.2.

iOS. Is it legal to store app bundle in Documents folder?

I want to dynamically update localization of my iOS application without submitting an app update on App Store.
I know that i can't modify main bundle of my app (that stores Localizable.strings) without submitting an update to App Store because it's read only.
But there is one thing i can try: my application can download another bundle (with updated Localizable.strings files) from some FTP server to Documents folder and get new localization from there.
So my question is:
Is it legal to download new app bundles from FTP servers and store them in Documents folder without submitting an App Store update?
By "Is it legal" i mean: wouldn't my application get rejected by iOS App Store?
This is not recommended and absolutely not supported. Please consider shipping localizations as part of an app update.
I don't think that your app will be rejected, because Apple will not be aware of what you are actually downloading. But this really sounds like a super overkill and a super bad solution. You could store your strings in a file or database on your server and load it when your app launch, and have some code to handle it in app.
Just do the exact same thing as every other developer in the world does and stop trying to be smarter than the system: push app updates when you update your app.
If you want to download your own special app using your own special app update mechanism to /Documents then expect at least:
users to post reviews thinking you're malware;
the application not to download half the time because the user hasn't given your app access permissions; and
the downloaded application not to launch because the user hasn't gone out of their way to give it Gatekeeper permissions.
Also make sure you've done a cost/benefit analysis on Apple somehow not spotting the Gatekeeper prompt when testing your application and somehow not spotting it later.

How to get crash logs of Testflight external testers on Xcode or iTunes connect?

Is there any ways to know what's wrong with someone's app. It is working on everyone else's device but this person.
The person tried removing the previous version and installing the new one, but it still does not work. I suspect that one of the files that I place in the documents folder might still be there... but the format of this file has changed since...
Apple has a technote about this named Debugging Deployed iOS Apps.
Also, if your tester syncs up their iPhone with a Macintosh or PC, iTunes also helpfully moves logs into predictable places where they can be retrieved from.
I am attempting to solve this logging of execution in TestFlight with the following simple approach...
In in-App Billing you really have to use TestFlight, so the problem is serious.
The "print("text") statements can be replaced in the code to calls to a func printTestFlight(text: String) which writes the strings to a database along with some identifier so you know the user.
This is quite simple and obvious, and to an extent it works.
If there are events which are logged by the os rather than teh user, then this approach misses those, notably the interesting ones around a crash. I'd be happy to hear from anyone who knows how to do thiso

Resources