Skip to content

Commit ff93dcb

Browse files
committed
Adds ALTApplication.supportedDeviceTypes
1 parent 70a9594 commit ff93dcb

2 files changed

Lines changed: 35 additions & 0 deletions

File tree

AltSign/Model/ALTApplication.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#endif
1414

1515
#import "ALTCapabilities.h"
16+
#import "ALTDevice.h"
1617

1718
@class ALTProvisioningProfile;
1819

@@ -32,6 +33,7 @@ NS_ASSUME_NONNULL_BEGIN
3233
@property (nonatomic, readonly) NSSet<ALTApplication *> *appExtensions;
3334

3435
@property (nonatomic, readonly) NSOperatingSystemVersion minimumiOSVersion;
36+
@property (nonatomic, readonly) ALTDeviceType supportedDeviceTypes;
3537

3638
@property (nonatomic, copy, readonly) NSDictionary<ALTEntitlement, id> *entitlements;
3739
@property (nonatomic, copy, readonly) NSString *entitlementsString;

AltSign/Model/ALTApplication.mm

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,17 @@
1111

1212
#include "alt_ldid.hpp"
1313

14+
ALTDeviceType ALTDeviceTypeFromUIDeviceFamily(NSInteger deviceFamily)
15+
{
16+
switch (deviceFamily)
17+
{
18+
case 1: return ALTDeviceTypeiPhone;
19+
case 2: return ALTDeviceTypeiPad;
20+
case 3: return ALTDeviceTypeAppleTV;
21+
default: return ALTDeviceTypeNone;
22+
}
23+
}
24+
1425
@interface ALTApplication ()
1526

1627
@property (nonatomic, copy, nullable, readonly) NSString *iconName;
@@ -64,6 +75,27 @@ - (instancetype)initWithFileURL:(NSURL *)fileURL
6475
minimumVersion.minorVersion = minorVersion;
6576
minimumVersion.patchVersion = patchVersion;
6677

78+
NSArray<NSNumber *> *deviceFamilies = infoDictionary[@"UIDeviceFamily"];
79+
ALTDeviceType supportedDeviceTypes = ALTDeviceTypeNone;
80+
81+
if ([deviceFamilies isKindOfClass:[NSNumber class]])
82+
{
83+
NSInteger rawDeviceFamily = [(NSNumber *)deviceFamilies integerValue];
84+
supportedDeviceTypes = ALTDeviceTypeFromUIDeviceFamily(rawDeviceFamily);
85+
}
86+
else if ([deviceFamilies isKindOfClass:[NSArray class]] && deviceFamilies.count > 0)
87+
{
88+
for (NSNumber *deviceFamily in deviceFamilies)
89+
{
90+
NSInteger rawDeviceFamily = [deviceFamily integerValue];
91+
supportedDeviceTypes |= ALTDeviceTypeFromUIDeviceFamily(rawDeviceFamily);
92+
}
93+
}
94+
else
95+
{
96+
supportedDeviceTypes = ALTDeviceTypeiPhone;
97+
}
98+
6799
NSDictionary *icons = infoDictionary[@"CFBundleIcons"];
68100
NSDictionary *primaryIcon = icons[@"CFBundlePrimaryIcon"];
69101

@@ -84,6 +116,7 @@ - (instancetype)initWithFileURL:(NSURL *)fileURL
84116
_bundleIdentifier = [bundleIdentifier copy];
85117
_version = [version copy];
86118
_minimumiOSVersion = minimumVersion;
119+
_supportedDeviceTypes = supportedDeviceTypes;
87120
_iconName = [iconName copy];
88121
}
89122

0 commit comments

Comments
 (0)