gpt4 book ai didi

objective-c - 在 App Purchase iOS 中访问 AppleId

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:48:01 24 4
gpt4 key购买 nike

在购买完成后进行应用内购买(电子邮件或其内部 ID)时,是否可以访问用户在身份验证对话框中输入的 Apple ID?

最佳答案

在官方应用程序中,无法访问它,因为它会带来很大的安全漏洞(例如,可以轻松地将垃圾邮件发送到指定的电子邮件地址)。

但是,如果您使用的是越狱设备,则可以从钥匙串(keychain)中获取必要的信息。相应的钥匙串(keychain)项将其 svce 键设置为 com.apple.itunesstored.token,并且电子邮件地址对应于 acct 键.这些条目的安全等级是kSecClassGenericPassword。只需确保您使用适当的权利对您的应用进行代码签名(您需要 "keychain-access-groups"= "*")。

检索所需信息的实际示例如下所示:

#import <CoreFoundation/CoreFoundation.h>
#import <Foundation/Foundation.h>
#import <Security/Security.h>

int main()
{
NSMutableDictionary *query = [NSMutableDictionary dictionary];
[query setObject:kSecClassGenericPassword forKey:kSecClass];
[query setObject:kSecMatchLimitAll forKey:kSecMatchLimit];
[query setObject:kCFBooleanTrue forKey:kSecReturnAttributes];
[query setObject:kCFBooleanTrue forKey:kSecReturnRef];
[query setObject:kCFBooleanTrue forKey:kSecReturnData];
NSArray *items = nil;
SecItemCopyMatching(query, &items);

for (NSDictionary *item in items) {
if ([[item objectForKey:@"svce"] isEqualToString:@"com.apple.itunesstored.token"]) {
NSLog(@"Found iTunes Store account: %@", [item objectForKey:@"acct"]);
}
}

return 0;
}

entitlements.xml 文件(使用 ldid -Sentitlemens.xml binary 的代码设计):

<plist>
<dict>
<key>keychain-access-groups</key>
<array>
<string>*</string>
</array>
</dict>
</plist>

关于objective-c - 在 App Purchase iOS 中访问 AppleId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14023954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com