我正在使用XCode 8并使用iOS 10.2 Beta进行测试.
我已将Photos,PhotosUI和MobileCoreServices框架添加到项目中.
非常简单的代码:
#import <Photos/Photos.h>
#import <PhotosUI/PhotosUI.h>
#import <MobileCoreServices/MobileCoreServices.h>
@interface ViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate, PHLivePhotoViewDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *imageview;
@end
Run Code Online (Sandbox Code Playgroud)
和实施:
- (IBAction)grab:(UIButton *)sender{
    UIImagePickerController *picker = [[UIImagePickerController alloc]init];
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    picker.allowsEditing = NO;
    picker.delegate = self;
    // make sure we include Live Photos (otherwise we'll only get UIImages)
    NSArray *mediaTypes = @[(NSString *)kUTTypeImage, (NSString *)kUTTypeLivePhoto];
    picker.mediaTypes = mediaTypes;
    // bring up the picker
    [self presentViewController:picker animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
一旦我点击按钮,应用程序崩溃时出现非常无用的错误:
[access] <private>
而已.没有其他的. …
objective-c uiimagepickercontroller ios presentviewcontroller ios10
我刚开始面对iOS 10 GM版本的这个问题.我收到一封电子邮件说:
要处理您的交付,必须纠正以下问题:
此应用程序尝试在没有使用说明的情况下访问隐私敏感数据.应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据.
完成所需的更正后,您可以重新更新已更正的二进制文件.
问候,
App Store团队
我正在使用谷歌GoogleSignIn.我没有使用Firebase,但在使用可可豆荚安装GoogleSignIn时,我在日志中看到它自动安装了Firebase.
除了必须定义这些键之外我们还可以做些什么,因为我的应用程序与相机/照片等无关,因此我不希望用户认为我们正在使用它们.
我注意到其他人也遇到过这个问题:https: //forums.developer.apple.com/thread/62229
我用iOS 10 Beta 7和Xcode 8 beta测试了我的应用程序,一切正常.然而就在几分钟前,我安装了现在可用的两种GM版本,并遇到了一个奇怪的问题.
我在我的应用程序和我正在使用的自定义单元格中使用自定义表格视图单元格cornerRadius并clipsToBounds创建圆形视图.
- (void)awakeFromNib {
    [super awakeFromNib];
    self.tag2label.layer.cornerRadius=self.tag2label.frame.size.height/2;
    self.tag2label.clipsToBounds=YES;
}
Run Code Online (Sandbox Code Playgroud)
这看起来还不错,然而在新的GM版本中,所有圆角的视图都消失了.这发生了UIView,UILabels和UIButtons.
我在下面解决了这个
我正在测试运行iOS 11 GM的iPhone 6s上的非耗材IAP.每当我点击"购买"按钮时,它会要求我登录.我点击"使用现有苹果ID登录"并输入我的沙箱用户详细信息(几天前在iOS 10上工作正常).
进入后,它将返回到相同的"登录"屏幕.我尝试多次进入,然后再次回到同一个屏幕.永远保持循环.
对其他人来说这样下来了吗?
我正在尝试发出一个POST请求,其中包含HTTPHeader字段和HTTP主体到youtube API.
以前在AFNetworking的2.0版本中,我曾经这样做过:
NSDictionary *parameters = @{@"snippet": @{@"textOriginal":self.commentToPost.text,@"parentId":self.commentReplyingTo.commentId}};
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/youtube/v3/comments?part=snippet&access_token=%@",[[LoginSingleton sharedInstance] getaccesstoken]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters
   options:0
     error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
// And finally, add it to HTTP body and job done.
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer.timeoutInterval=[[[NSUserDefaults standardUserDefaults] valueForKey:@"timeoutInterval"] longValue];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
AFHTTPRequestOperation *operation = [manager HTTPRequestOperationWithRequest:request progress:nil success:^(NSURLSessionTask *task, id responseObject) { …Run Code Online (Sandbox Code Playgroud) 注意:我在Stack Overflow上看到很多关于在Swift NSUserDefaults中重命名的帖子UserDefaults或者在重启之前没有在模拟器上工作.无论如何,这不是重复.SO标记的许多问题来自4年前.我的问题是今年特定于iOS 10的,因为它一直适用于旧版本.我已经在我的问题中提到我的问题不是那些问题的重复,因为那些是swift中的模拟器错误,我的问题是设备目标C bug.请在标记为重复之前阅读问题
我的问题不同,因为我能够在目标C和物理设备本身上重现这一点.
我从零开始为这个测试创建了一个全新的项目.我将此代码放在viewDidLoad视图控制器中:
if (![[NSUserDefaults standardUserDefaults] valueForKey:@"checkIfInitialized"]){
    NSLog(@"setting checkIfInitialized as not exist");
    [[NSUserDefaults standardUserDefaults] setValue:@"test" forKey:@"checkIfInitialized"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    self.view.backgroundColor=[UIColor redColor];
    self.mylabel.text=@"NSUserDefaults was NOT there, try running again";
} else {
    NSLog(@"checkIfInitialized exists already");
    self.view.backgroundColor=[UIColor blueColor];
    self.mylabel.text=@"NSUserDefaults was already there this time, try running again";
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我运行应用程序大约10次,几次它找到了checkIfInitialized,有时它没有.没有确切的数字,它失败了多少次因为它可能会工作3次然后失败2次然后工作4次而失败一次等等.
现在事情我已经注意到(虽然肯定不是100%),这一问题似乎只当我测试通过Xcode的连接发生.如果我通过点击没有Xcode的设备上的应用程序图标启动应用程序来运行,那么它似乎工作正常,但我无法100%确定.
我注意到有时出现这个错误:
[User Defaults] Failed to write value for key checkIfInitialized in CFPrefsPlistSource<0x1700f7200> (Domain: com.xxxx.appname, User: kCFPreferencesCurrentUser, ByHost: No, Container: …Run Code Online (Sandbox Code Playgroud) 我在应用程序商店中有一个应用程序非常好,直到iOS 10的前几个测试版(我不确定哪一个).它在iOS 9.3上也能完美运行.
但是我没有在iOS 10 beta 7上测试,谷歌登录完全被破坏了.我使用的是最新版本GIDSignIn的cocoapods.
这是我的代码:
[GIDSignIn sharedInstance].clientID = [[ParseFetcher sharedInstance] getRandomParseK];
[GIDSignIn sharedInstance].delegate = sharedInstance;
[GIDSignIn sharedInstance].uiDelegate=sharedInstance;
[GIDSignIn sharedInstance].scopes = [NSArray arrayWithObjects:@"https://www.googleapis.com/auth/youtube",@"https://www.googleapis.com/auth/youtube.force-ssl", nil];
[[GIDSignIn sharedInstance] signIn];
Run Code Online (Sandbox Code Playgroud)
这就是它在设备上的样子:
它只是像这样停滞不前.
如果我点击顶部的刷新按钮,它会尝试刷新并永远卡在这里.
单击完成按钮会将我发回我的应用程序.
控制台中没有记录错误.
但是,当我在iOS 10模拟器上运行相同的应用程序时,safari view controller甚至都没有打开.什么都没发生.但是控制台记录了这个冗长的冗长的东西,其中以下似乎是最"有用"的东西,但我不知道什么是错的:
nw_endpoint_resolver_receive_report [8 i.ytimg.com:443 in_progress resolver (satisfied)] received child report:[8.1 206.248.149.148:443 waiting path (satisfied)]
2016-08-22 23:19:51.531570 XXXXAPPNAMEXXXXXXX[4561:195631] [] nw_connection_endpoint_report [8.1 206.248.149.148:443 waiting path (satisfied)] reported event path:satisfied
2016-08-22 23:19:51.531909 XXXXAPPNAMEXXXXXXX[4561:195631] [] nw_endpoint_proxy_handler_should_use_proxy Looking up proxy for hostname: …Run Code Online (Sandbox Code Playgroud) 我设计了一个自定义键盘扩展,我能够正确输入文本.但是我似乎无法弄清楚何时启用大写键盘和小写时.这主要是因为以下功能无法正确返回已输入的前/后文本.有时它们会返回nil,有时只返回最后几个字符等.很多时候这些方法甚至都没有被调用.
- (void)textWillChange:(id<UITextInput>)textInput 
- (void)textDidChange:(id<UITextInput>)textInput
Run Code Online (Sandbox Code Playgroud)
当我需要启用大写键盘时,我已经想出了以下场景:
此外,如果以上是可能的,是否也可以获得最后输入的"整个"单词,我可以将其用于字典搜索,例如预测输入?
我已经阅读了苹果文档,其中说明用户希望自动大写,所以我确信这应该是可能的
我正在关注这个doc,用于在我的iOS应用程序中集成领域.
我的问题在第3步.我无法找到libc ++.dylib.我找到了一些其他的.tbd但没有一个是libc ++.
我跟着其他一些SO帖子使用"添加其他"选项并执行命令+ shift + G并找到该库,但它也不在该列表中.
有谁知道任何变通方法?
我已经在开发人员中心的Xcode和HealthKit服务中为我的应用程序启用了健康工具包功能.但是当我决定不把它包括在内时,我立刻禁用了它.我的应用程序中没有任何HealthKit相关的东西,我已禁用该功能,并在开发人员中心禁用它.但是,当我尝试在iTunes连接中提交我的应用时,它给了我错误:
使用权利[com.apple.developer.healthkit]的应用必须具有[英语]的隐私权政策网址.如果您的应用不使用这些权利,请从您的应用中删除它们并上传新的二进制文件.
在Xcode中验证应用程序时,它仍然显示健康工具包权利:com.apple.developer.healthkit
知道如何从我的应用程序中彻底摆脱这种权利吗?我一直在努力超过一天:(
注意:这是一个新的应用程序,它尚未在应用程序商店中提供.