How to detect the installation package is not modified? - ios

How to detect the installation package is not modified.
For example, someone changed my app,how could i know the app had something different ,and shut down the pirate app, or alert for user:The package is damaged, please download it again.

If you're distributing your app via AppStore, then there will be no chance of your app gets pirated or feeling seek. AppStore is providing highly secure ways to distribute your app. So there's no chance that your app was pirated. However, you can add some checksum which can be possible to check on star-up. If its changed then the binary was changed.

Related

App Build is not appearing on App Store Connect submission Dashboard

I have a Flutter developed App that I want to upload for App Store Review.
The App has been successfully uploaded through Xcode as you can see here— https://prntscr.com/26m7w94

Sadly, the Build doesn’t appear in my App Connect Build section as you can see here— https://prnt.sc/26no755

When I try to re-upload, it let’s me know that the Build is already uploaded to App Store Connect as you can see here— https://prnt.sc/26no84v

I have written to Apple and I don’t understand the answers they are giving me. They are just talking off-point.
Now I have waited for 8 days for this build to appear, but this uploaded build is not appearing.
Without this Build appearing, I cannot Submit to App Store Review.
Everything in the App Store Connect Form has been completely filled. Only Build remains to be added as you can see here— https://prntscr.com/26no94s
I can’t figure out what to do next, and this is 8(eight) wasted days gone by, with me not knowing what next to do.
Has anyone here faced this kind of problem before? How did you solve it?
Regards
Check in the TestFlight section. There might be a yellow triangle next to your build. You may need to answer some additional questions such as encryption usage etc. Just click on the triangle to answer and your build should be available afterwards.
Sometimes the answer to this issue is that there is actually a problem with App Store Connect (like right now).
You can check for issues on the Apple Developer System Status page.
For me changing the version from X.X.X to X.X.X+1 (2.2.2 -> 2.2.3) fixed the issue.
Sometimes it happens and I have also faced this problem .I successfully uploaded my bundle from Xcode but not found in connect.
I waited 30 minutes and refreshed .Then my bundle came in App Store connect.
Solution 1 : wait for some time & Refresh ,
Solution 2 : Create another Bundle and push to connect using Transporter (You can download transporter from appStore)
If the build doesn't show up on App Store Connect. You may want to check your email (the one you used as your Apple Id when uploading the build).
In my case Apple sent me an automatic email telling me that my build had some issues. Xcode didn't complain about anything and neither App Store Connect.
UPDATE: This might have boiled down to timing. After changing the version number to 1.0.0, that build showed up immediately. Half an hour later, the 0.0.1 build appeared out of the blue as well.
If you've set your version number to 0.0.1+X because you thought that makes sense while the app is still under development, change that back to 1.0.0+X. The upload will succeed, but app store connect won't list the build without a leading "1." in the version number.
Make sure no webviews are used in your app. It will not show builds in App Store Connect and neither XCode nor Apple will say that anything is wrong.

Why iTunes Connect reject my app?

I got the following error message from iTunes Connect.
Performance - 2.3.10
We noticed that your app or its metadata includes irrelevant third-party platform information.
Specifically, your app icon still contains imagery of an Android device.
Referencing third-party platforms in your app or its metadata is not permitted on the App Store unless there is specific interactive functionality.
We've attached screenshot(s) for your reference.
Next Steps
Please remove all instances of this information from your app and its metadata, including the app description, What's New info, previews, and screenshots.
Since your iTunes Connect status is Rejected, a new binary will be required. Make the desired metadata changes when you upload the new binary.
NOTE: Please be sure to make any metadata changes to all app localizations by selecting each specific localization and making appropriate changes.
But I didn't modify anything since previous version.
So, I have no idea what is wrong of my app. I can't believe icons have problems.
Please let me know how can I fix the problem?
Apple keeps improving review rules, so its not necessary that if review passed last time it should also pass this time.
It seems there are 2 problems.
1)Problem with app icon
2)Reference to third party library.

Run any app in iOS 10+ from command line without jailbreaking

Is there a way to run any app in iOS 10+ from command line/Mac without jailbreaking?
Re-signing and none of the existing tools seem to work (ios-deploy, Instruments) nor have I been able to find a way via iTunes or other programs.
Yes it is possible for any App you have the source code for.
No it is not possible for any App you acquired from the App store or direct download.
Not quite sure I fully understand your emphasis on any app, but here is what I understand:
1) If you mean you want to run any app from the app store that can currently be downloaded, and you have a .ipa file, you can definitely install it manually to another device using this method (iTunes drag and drop)
2) If, however, you're trying to run an .ipa on a Simulator, that's not possible, as described by this answer.
3) Lastly, if you have source, which I'm confused about since you mention re-signing, then you can easily build that source into an executable for either Simulator or device using either Xcode, or since you asked about command line, you could also use xcodebuild, info found here
I hope one of these 3 options is what you're looking for, as it's hard to tell from the wording of the question. If it's not, expanding on exactly what use case you're trying to resolve would be very helpful.
From the comments in #BHendricks answer, it seems you want to use the command line on your computer to start apps that are installed on an iOS 10+ device.
This is not possible without jailbreaking the phone!
On a jailbroken phone it might be possible to write something that connects over ssh and starts apps, but on vanilla iOS this is disabled for security. You could search for an app that you can send commands, but I highly doubt iOS apps have access to system features like starting other apps, as this is also a large security risk.
If you have the ipa, you can install the app via iTunes. This is what we used to ask QAs to test apps on devices and it works fine. Please refer to this [SO] for detail Install IPA with iTunes 12.
Use Cydia Impactor (cydiaimpactor.com) to sign the app. 99% chance it will work

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.

iOS 8 enterprise apps are stuck in limbo inside the device

In trying to release a new update to one of my enterprise iOS apps, I'm finding that the OTA download is failing. It will give me the "Would you like to install 'xxx'" alert, and tapping 'Install' is about as far as it will go. There's no indication that anything is happening. This occurs on my iPhone 6 and iPad both running the most recent release of iOS 8.
Running the devices on the iPhone Configuration Utility, it shows the list of installed apps, and the one app that is refusing to install has an "Install" button where all the others have "Uninstall." In the screen cap below you'll see the renamed bundle and the original bundle.
When I click the "Install" button, the iPhone Configuration Utility crashes.
I managed to get it to work using a workaround that I found elsewhere on StackOverflow, which requires renaming the app's Bundle Identifier, but it still seems like a pi$$-poor way to do it.
It seems clear that the app is somehow stuck in limbo, showing up on the app list but not showing up on the iPhone screen, and also is refusing to be overwritten. My question is, is there a way to purge the old app from the iPhone's memory, and possibly reload it using the original Bundle Identifier?
Apple still hasn't fixed this correctly in even the latest versions. There are several manifestations: the app does download, but the device doesn't quit the calling app, so you don't know if the app downloads or not. If the app was never on your device before, it usually downloads. If it was there before, and was deleted, it doesn't download. If the downloaded app is already running in the background, or you're doing in-app downloading, it often doesn't download because it doesn't want to replace a running app. I usually start the download, then switch immediately to the springboard to watch it download. If I see the clock dial on the app icon, then I know it's downloading. Changing the bundle is not a good thing, not to mention not giving any user feedback when you tap "Install."
As far as updating the app from the in app prompt.
It's a problem with apple/ios8. They aren't exiting the app after the install. If you quickly tap the home button after you hit install. Occasionally you will get a successful download.
For future use you could find out a way to use exit which will kill the app but apple warns against using exit due to poor user experience. But if apple isn't providing a good user experience in the first place for this process I think this warrants the use imho.

Resources