lpw
2023-06-03 aca600212ff84587e15aad341babd5eb2faf69a5
commit | author | age
aca600 1 /*
L 2  * Copyright 2017 Google
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #import <Foundation/Foundation.h>
18
19 NS_ASSUME_NONNULL_BEGIN
20
21 @interface GULAppEnvironmentUtil : NSObject
22
23 /// Indicates whether the app is from Apple Store or not. Returns NO if the app is on simulator,
24 /// development environment or sideloaded.
25 + (BOOL)isFromAppStore;
26
27 /// Indicates whether the app is a Testflight app. Returns YES if the app has sandbox receipt.
28 /// Returns NO otherwise.
29 + (BOOL)isAppStoreReceiptSandbox;
30
31 /// Indicates whether the app is on simulator or not at runtime depending on the device
32 /// architecture.
33 + (BOOL)isSimulator;
34
35 /// The current device model. Returns an empty string if device model cannot be retrieved.
36 + (nullable NSString *)deviceModel;
37
38 /// The current device model, with simulator-specific values. Returns an empty string if device
39 /// model cannot be retrieved.
40 + (nullable NSString *)deviceSimulatorModel;
41
42 /// The current operating system version. Returns an empty string if the system version cannot be
43 /// retrieved.
44 + (NSString *)systemVersion;
45
46 /// Indicates whether it is running inside an extension or an app.
47 + (BOOL)isAppExtension;
48
49 /// @return Returns @YES when is run on iOS version greater or equal to 7.0
50 + (BOOL)isIOS7OrHigher DEPRECATED_MSG_ATTRIBUTE(
51     "Always `YES` because only iOS 8 and higher supported. The method will be removed.");
52
53 /// @return YES if Swift runtime detected in the app.
54 + (BOOL)hasSwiftRuntime __deprecated;
55
56 /// @return An Apple platform. Possible values "ios", "tvos", "macos", "watchos", "maccatalyst".
57 + (NSString *)applePlatform;
58
59 /// @return An Apple Device platform. Same possible values as `applePlatform`, with the addition of
60 /// "ipados".
61 + (NSString *)appleDevicePlatform;
62
63 /// @return The way the library was added to the app, e.g. "swiftpm", "cocoapods", etc.
64 + (NSString *)deploymentType;
65
66 @end
67
68 NS_ASSUME_NONNULL_END