Skip to content

[iOS] in TestFlight IsInstalledFromStore() returns false #9

Open

Description

@gsgou

In TestFlight IsInstalledFromStore() returns false.
In Android closed track where i could test returns true (or null) as expected.

To be more precise i use following code snippet:

bool isRootOrJailbreak = CrossBreachDetector.Current.IsRooted() == true;
bool notFromStore = CrossBreachDetector.Current.InstalledFromStore() == false;
bool isVirtualDevice = CrossBreachDetector.Current.IsRunningOnVirtualDevice() == true;
if (isRootOrJailbreak || notFromStore || isVirtualDevice)
{
}

both two iOS testers i have confirm the phones are not jailbroken.

Activity

  1. mina5500 commented on Sep 29, 2020

    @mina5500

    isrooted returns always true from any android emulator if Google Play Store is unchecked in Emulator Properties .. is that normal ?
    image

  2. nmilcoff commented on Sep 29, 2020

    @nmilcoff
    Owner

    Hi @mina5500, that is correct. All emulators are rooted 🙂

  3. mina5500 commented on Sep 29, 2020

    @mina5500

    once i check on Google Play Store in Emulator Properties in previous image ... it shows isrooted() false

    Hi @mina5500, that is correct. All emulators are rooted 🙂

    @nmilcoff

  4. thomasgalliker commented on Jul 21, 2022

    @thomasgalliker

    What is a 'good practice' regarding TestFlight? We use BreachDetector's IsInstalledFromStore also in apps which are distributed for testing via Apple's official test app "TestFlight". Would you flag such TestFlight-builds in order to not annoy any test users by showing them security warnings?

    Interesting article on Stackoverflow:
    https://stackoverflow.com/questions/26081543/how-to-tell-at-runtime-whether-an-ios-app-is-running-through-a-testflight-beta-i

    Update: I added following method to my code in order to exclude TestFlight builds from tracking as 'insecure devices':

    public bool IsTestFlightBuild()
    {
        var appStoreReceiptUrl = NSBundle.MainBundle.AppStoreReceiptUrl;
        return appStoreReceiptUrl?.LastPathComponent.Contains("sandboxReceipt") == true;
    }
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions