小编Ras*_*ick的帖子

无法以.p12格式导出Apple生产推送SSL证书

我在我的应用程序中使用Urban飞艇进行推送通知.因此,我需要从Apple开发人员门户网站下载推送SSL证书.下载后,我在钥匙串访问中添加了它.但是没有为证书创建私钥.当我尝试右键单击并导出证书时,我无法将其导出为.p12文件,因为在保存时禁用了.p12文件扩展名.由于声誉较低,我无法在此处附上屏幕截图.

有人请告诉我这里的问题在哪里.我该怎么办?

ios

154
推荐指数
8
解决办法
7万
查看次数

如何在iOS 8中强制查看控制器方向?

在iOS 8之前,我们将下面的代码与supportedInterfaceOrientationsshouldAutoRotate委托方法结合使用,以强制应用程序方向指向任何特定方向.我使用下面的代码段以编程方式将应用程序旋转到所需的方向.首先,我正在改变状态栏方向.然后只显示并立即关闭模态视图会将视图旋转到所需的方向.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:YES];
UIViewController *c = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];
[self dismissViewControllerAnimated:NO completion:nil];
Run Code Online (Sandbox Code Playgroud)

但这在iOS 8中失败了.而且,我已经看到堆栈溢出的一些答案,人们建议我们应该始终从iOS 8开始避免这种方法.

更具体地说,我的应用程序是一种通用类型的应用程序.总共有三个控制器.

  1. First View控制器 - 它应该支持iPad中的所有方向,并且只支持iPhone中的纵向(主页按钮).

  2. 第二视图控制器 - 它应该只支持所有条件下的横向

  3. 第三视图控制器 - 它应该只支持所有条件下的风景

我们使用导航控制器进行页面导航.从第一个视图控制器,在按钮单击操作上,我们在堆栈上推送第二个.因此,当第二个视图控制器到达时,无论设备方向如何,应用程序都应仅锁定横向.

下面是我shouldAutorotatesupportedInterfaceOrientations第二和第三视图控制器中的方法.

-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskLandscapeRight;
}

-(BOOL)shouldAutorotate {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

对于这种或任何更好的方法来锁定iOS 8的特定方向的视图控制器是否有任何解决方案.请帮忙!!

objective-c uinavigationcontroller autorotate ios ios8

144
推荐指数
10
解决办法
14万
查看次数

iOS:应用程序在安装应用程序时不会询问用户的权限.每次都得到kCLAuthorizationStatusNotDetermined - Objective-c&Swift

我正在尝试在我的iOS应用中获取用户位置.我首先在我的项目中包含了重置框架.然后在按钮上单击我调用核心位置api,如下所示.当我尝试在设备中安装它时,核心位置永远不会询问用户权限.当我尝试在按钮单击时获取位置时,我将获得kCLAuthorizationStatusNotDetermined作为authorisationStatus.请帮帮我.我不知道发生了什么.

- (IBAction)fetchLessAccurateLocation:(id)sender {
    [self.txtLocation setText:@""];

    locationManager = [[CLLocationManager alloc] init];
    locationManager.delegate = self;
    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
    locationManager.distanceFilter = 1000;

    if ([self shouldFetchUserLocation]) {
        [locationManager startUpdatingLocation];
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的shouldFetchUserLocation方法:

-(BOOL)shouldFetchUserLocation{

    BOOL shouldFetchLocation= NO;

    if ([CLLocationManager locationServicesEnabled]) {
        switch ([CLLocationManager authorizationStatus]) {
            case kCLAuthorizationStatusAuthorized:
                shouldFetchLocation= YES;
                break;
            case kCLAuthorizationStatusDenied:
            {
                UIAlertView *alert= [[UIAlertView alloc]initWithTitle:@"Error" message:@"App level settings has been denied" delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles: nil];
                [alert show];
                alert= nil;
            }
                break;
            case kCLAuthorizationStatusNotDetermined:
            {
                UIAlertView *alert= [[UIAlertView alloc]initWithTitle:@"Error" message:@"The user is yet …
Run Code Online (Sandbox Code Playgroud)

gps core-location cllocationmanager ios

70
推荐指数
6
解决办法
9万
查看次数

UIImagePickerController的cameraViewTransform忽略了iOS 10 beta上的"缩放"和"翻译"

我一直在使用下面的代码来扩展我的UIImagePickerController的实时预览以填充整个屏幕.到目前为止,这完美地运作 在几天之前,我在iPhone 5上安装了iOS 10 beta 7,它不再扩展.我可以在UIImagePickerController的视图底部看到黑色补丁.似乎cameraViewTransform是在忽略CGAffineTransformMakeScaleCGAffineTransformMakeTranslation调用.

这就是我启动相机控制器的方式.我已将"allowsEditing"和"showsCameraControls"都设置为"NO",以便提供我自己的自定义叠加视图.

objImagePickerController =[[UIImagePickerController alloc] init];

objImagePickerController.delegate = self;
objImagePickerController.sourceType =UIImagePickerControllerSourceTypeCamera;
objImagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
objImagePickerController.allowsEditing = NO;
objImagePickerController.showsCameraControls= NO;
Run Code Online (Sandbox Code Playgroud)

这是我用来缩放相机实时预览的内容.

CGSize screenSize = [[UIScreen mainScreen] bounds].size;
float screenHeight= MAX(screenSize.height, screenSize.width);
float screenWidth= MIN(screenSize.height, screenSize.width);

float cameraAspectRatio = 4.0 / 3.0;
float imageWidth = floorf(screenWidth * cameraAspectRatio);
float scale = ceilf((screenHeight / imageWidth) * 10.0) / 10.0;

objImagePickerController.cameraViewTransform= CGAffineTransformMakeScale(scale, scale);
Run Code Online (Sandbox Code Playgroud)

这就是我将摄像机视图添加为子视图而不是传统的模态演示方法的方法,以满足我自己的要求.

 [[[UIApplication sharedApplication] keyWindow]addSubview:objImagePickerController.view];
Run Code Online (Sandbox Code Playgroud)

来自iOS 5 beta 8上运行的iPhone 5s的屏幕截图

在此输入图像描述

来自iOS …

objective-c uiimagepickercontroller ios ios10 xcode8-beta6

11
推荐指数
3
解决办法
4015
查看次数

Xcode-如何为不同的构建配置设置不同的包标识符?

我为iOS Xcode项目设置了3种不同的构建配置. 在此输入图像描述

我想为不同的配置提供不同的包标识符,以便更好地进行代码签名管理.以下是我的常规身份设置,信息选项卡设置和构建设置下的捆绑标识符设置.

在此输入图像描述

INFO部分 -

在此输入图像描述

建筑设置 -

在此输入图像描述

当我直接更新通用部分中的包标识符时,将覆盖所有构建配置的构建设置 - >产品包标识符中的值.

请建议我一个更好的方法来管理这个!!

xcode objective-c ios xcode7

9
推荐指数
2
解决办法
8359
查看次数

在Cordova 3.5.0 iOS应用程序中,staging文件夹的需求是什么?

我们正在开发一个混合iOS应用程序.以前我们使用的是Cordova 3.2.0版本.最近我们正在将Cordova版本升级到3.5.0.在使用Cordova 3.5.0创建一个新项目并使用Xcode 5.1.1打开它之后,我们可以在Xcode项目结构中看到一个名为"Staging"的新文件夹(对我们来说这很奇怪).

在项目的根文件夹中,找不到暂存文件夹.以下是截图.

在此输入图像描述

但在使用Xcode打开它之后,"www"文件夹和"config.xml"将进入临时目录而不是根目录.另外,我可以看到两组www文件夹和config.xml文件.根文件夹下的www文件夹和config.xml文件显示为红色(这可能是因为我只使用了my_cordova_project - > platform - > ios目录并将其复制到其他地方.我打算提交只有我的版本控制工具的ios文件夹).我只是删除了这两个引用.

在此输入图像描述 在此输入图像描述

如果这是一个问题,有人可以解释一下.我可以使用Cordova 3.5.0获得旧的Xcode项目结构吗?如有任何澄清,请通知我.

ios cordova-3 xcode5.1

6
推荐指数
2
解决办法
5228
查看次数

xcodebuild exportArcive- 从命令行导出时如何自定义默认 IPA 文件名?

我正在使用xcodebuild命令行工具为我的 iOS 项目创建一个存档,然后导出为 IPA 文件。

默认情况下,在使用 时xcodebuild -exportArchive,它会创建 IPA 文件,该文件scheme选定的用于构建的标签具有相同的标签

xcodebuild -exportArchive从命令行使用时是否可以更改输出 IPA 文件名?

任何帮助将不胜感激。谢谢。

xcodebuild ios xcode7.3

6
推荐指数
1
解决办法
6549
查看次数

iOS cordova插件:如何将ios插件的插件结果发送到后台线程中的javascript

我有一个扩展CDVPlugin的插件类.此插件将从HTML侧的按钮单击调用.之后我使用UIImagePickerController拍摄两张照片.然后我尝试使用pluginresult将这些图像发送到javascript回调函数.

在这里,当我试图一次发送两个图像时,UI被卡住了一段时间.所以,我想在后台线程中发送结果.而且我应该从javascript回调函数接收它.

有人曾经这样做过吗?有没有办法实现这一点,以便UI导航将更顺畅....

ios cordova

5
推荐指数
1
解决办法
3261
查看次数

我应该在“架构”部分的 Xcode 构建设置中包含什么

我们之前的通用 iOS 应用程序支持 iOS 6 和 7(这意味着我们同时支持 iPhone 和 iPad)。现在,随着 iOS 8 的发布,我们必须支持 iOS 6、iOS 7 和 iOS 8。此外,我们必须扩展我们的目标设备列表以支持 iPhone 6 和 iPhone 6 Plus。

此外,我们计划很快升级到 Xcode 6。因为 Apple 可能随时要求使用 Xcode 6 才能将应用程序提交到应用程序商店。

牢记上述所有要点,我很困惑 Xcode 构建设置中的架构设置应该是什么。主要在Xcode Architectures设置下有3个重要项目。请看下面的截图。

在此处输入图片说明

我强调了 3 个重要参数。我想知道我应该为这些参数分配什么值以支持上述所有内容。任何帮助将不胜感激。我对此有点困惑。

另外,我想知道是否需要更改其他任何内容才能迁移到 Xcode 6 和 iOS 8。

ios6 ios7 xcode5.1 xcode6 ios8

5
推荐指数
1
解决办法
2万
查看次数

我们是否应该在应用程序启动期间每次注册iOS推送通知?

我们在iOS应用程序中使用远程通知,我们正在注册应用程序内的APNS服务器:didFinishLaunching: delegate方法.这意味着每次应用程序刚刚启动时,它都将在APNS服务器上注册.以下是代码段.

[[UIApplication sharedApplication] registerForRemoteNotifications]
Run Code Online (Sandbox Code Playgroud)

我们注意到设备令牌(由APNS服务器交付给我们)每次都是相同的.因此,我们认为我们可以在NSUserDefaults中保存令牌并在以后使用它.在application:didFinishLaunching:方法中,我们可以检查NSUserDefaults中是否存在设备令牌.如果它可用,我们可以使用相同而不是注册到APNS.否则,我们可以选择向APNS注册.

但是,从Apple文档中可以看出," 他们鼓励我们在每次新推出应用程序时注册远程通知 ".以下是文档的截图.

在此输入图像描述

设备令牌值何时实际更改?我是否能够将设备令牌存储在NSUserDefaults中并在以后使用它而不是每次都注册?请帮忙!!提前致谢!!

xcode ios

4
推荐指数
1
解决办法
1463
查看次数