在开发Android应用程序时,我已经读过,建议使用DialogFragment而不是直接使用AlertDialog来显示警报和确认.
例如,在DialogFragment的文档中完成此操作:http://developer.android.com/reference/android/app/DialogFragment.html
人们还说他们更喜欢这个: Android DialogFragment vs Dialog
我想知道这种方法的优点,因为代码变得更加复杂.
谢谢
android android-alertdialog android-dialogfragment dialogfragment
我正在尝试向AppStore提交iOS应用,我遇到以下错误:
错误ITMS-9000:"签名丢失或无效.捆绑路径'Payload/My_app_name.app/GooglePlus.bundle'中的捆绑'com.google.GPPSignIn3PResources'未使用Apple提交证书签名."
在我从未遇到过这个问题之前,我已经提交了这个应用程序.有人知道最近有什么变化吗?
更新: 我可以在出现此错误前约6小时提交应用程序.然后,我的应用被拒绝了这条消息:
此捆绑包无效 - 提交到App Store的新应用和应用更新必须使用Xcode 5.1.1或更高版本的公共(GM)版本和iOS 7 SDK构建.不要提交使用测试版软件构建的应用.
在此之后,无法再提交.
UPDATE2:
谷歌宣布了这一消息:
http://googledevelopers.blogspot.com.br/2014/09/an-important-announcement-for-ios.html
发布了一个新版本,解决了这个问题.
我试图NSURLCredential通过使用该+credentialWithIdentity:certificates:persistence:方法创建一个.然而,它返回零.
我已经完成了以下步骤.首先,我创建一个私钥和公钥,然后生成一个证书并将其添加到我的钥匙串.第一个问题,当我这样做时:
static const uint8_t certificateIdentifier[] = "test.certificate";
NSData * certificateTag = [NSData dataWithBytes:certificateIdentifier length:sizeof(certificateIdentifier)];
SecCertificateRef cert = SecCertificateCreateWithData(NULL, (__bridge CFDataRef) certificadoData);
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setObject:(__bridge id)kSecClassCertificate forKey:(__bridge id)kSecClass];
[dictionary setObject:certificateTag forKey:(__bridge id)kSecAttrApplicationTag];
[dictionary setObject:(__bridge id)(cert) forKey:(__bridge id<NSCopying>)(kSecValueRef)];
OSStatus status = SecItemAdd((__bridge CFDictionaryRef)dictionary, NULL);
Run Code Online (Sandbox Code Playgroud)
状态告诉我,我certificateTag的论点无效.如果我没有放这个标签,我可以将证书放在我的钥匙串上,然后在方法内
(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
Run Code Online (Sandbox Code Playgroud)
我放
SecIdentityRef myIdentity;
SecCertificateRef myCertificate;
NSMutableDictionary * queryCertificate = [[NSMutableDictionary alloc] init];
[queryCertificate setObject:(__bridge id)kSecClassIdentity forKey:(__bridge id)kSecClass];
[queryCertificate setObject:[NSNumber numberWithBool:YES] forKey:(__bridge …Run Code Online (Sandbox Code Playgroud)