56 lines
1.5 KiB
Objective-C
56 lines
1.5 KiB
Objective-C
//
|
|
// EnvironmentUtil.m
|
|
// RNDeviceInfo
|
|
//
|
|
// Created by Dima Portenko on 10.04.2021.
|
|
// Copyright © 2021 Learnium. All rights reserved.
|
|
//
|
|
|
|
#import "EnvironmentUtil.h"
|
|
|
|
@implementation EnvironmentUtil
|
|
|
|
+ (MSACEnvironment)currentAppEnvironment {
|
|
#if TARGET_OS_SIMULATOR || TARGET_OS_OSX || TARGET_OS_MACCATALYST
|
|
return MSACEnvironmentOther;
|
|
#else
|
|
|
|
// MobilePovision profiles are a clear indicator for Ad-Hoc distribution.
|
|
if ([self hasEmbeddedMobileProvision]) {
|
|
return MSACEnvironmentOther;
|
|
}
|
|
|
|
/**
|
|
* TestFlight is only supported from iOS 8 onwards and as our deployment target is iOS 8, we don't have to do any checks for
|
|
* floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1).
|
|
*/
|
|
if ([self isAppStoreReceiptSandbox]) {
|
|
return MSACEnvironmentTestFlight;
|
|
}
|
|
|
|
return MSACEnvironmentAppStore;
|
|
#endif
|
|
}
|
|
|
|
+ (BOOL)hasEmbeddedMobileProvision {
|
|
BOOL hasEmbeddedMobileProvision = !![[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];
|
|
return hasEmbeddedMobileProvision;
|
|
}
|
|
|
|
+ (BOOL)isAppStoreReceiptSandbox {
|
|
#if TARGET_OS_SIMULATOR
|
|
return NO;
|
|
#else
|
|
if (![NSBundle.mainBundle respondsToSelector:@selector(appStoreReceiptURL)]) {
|
|
return NO;
|
|
}
|
|
NSURL *appStoreReceiptURL = NSBundle.mainBundle.appStoreReceiptURL;
|
|
NSString *appStoreReceiptLastComponent = appStoreReceiptURL.lastPathComponent;
|
|
|
|
BOOL isSandboxReceipt = [appStoreReceiptLastComponent isEqualToString:@"sandboxReceipt"];
|
|
return isSandboxReceipt;
|
|
#endif
|
|
}
|
|
|
|
@end
|