在App Purchase iOS中访问AppleId
有没有办法在购买完成后进行应用内购买(电子邮件或内部ID)时访问用户在身份validation对话框中输入的苹果ID?
在官方应用程序中,无法访问它,因为它会带来很大的安全漏洞(例如,可以轻松地将垃圾邮件发送到指定的电子邮件地址)。
但是,如果您使用的是越狱设备,则可以从钥匙串获取必要的信息。 相应的钥匙串项的svce
键设置为com.apple.itunesstored.token
,电子邮件地址对应于acct
键。 这些条目的安全性类是kSecClassGenericPassword
。 只需确保使用适当的权利对您的应用进行协同设置(您需要"keychain-access-groups" = "*"
)。
检索所需信息的实际示例如下:
#import #import #import 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
文件进行ldid -Sentitlemens.xml binary
):
keychain-access-groups *
- 从UIImageView中删除行
- 使用“自动布局”,如何使同一“行”上的两个标签在宽度上dynamic变化(根据每个标签的宽度进行调整)?
- NSHTTPCookies拒绝删除
- Segue – 索引0超出空数组的边界
- 核心数据:NSCocoaErrorDomain = 134040只发生在真正的手机,而不是模拟器
- 手动控制UIViewanimation的进度,而不是通过持续时间自动控制
- iPhone:如何拖放或移动UIImage / UIButton如下所示?
- 自定义UITabBarController和UINavigationController
- UICollectionView Objective C中的2个不同的单元大小