2018-01-10 15:24:56 iosWorker 阅读数 745

直接上代码+截图
(http://img.blog.csdn.net/20180110151849217?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaW9zV29ya2Vy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
相机+相册权限 及其描述

iOS11之后:默认开启访问相册权限(读权限),无需用户授权,无需添加NSPhotoLibraryUsageDescription,适配iOS11之前的还是需要加的。 添加图片到相册(写权限),需要用户授权,需要添加 NSPhotoLibraryAddUsageDescription。

NSPhotoLibraryAddUsageDescription 是否允许此APP保存图片到相册?

2018-03-05 09:59:00 weixin_30725315 阅读数 4

手机升到iOS 11后  发现之前正常的图片保存功能无法正常使用  会闪退

经测试发现应该是权限没有开启的原因  但是NSPhotoLibraryUsageDescription已经写入plist  且在iOS 11之前的手机系统上是正常的

通过查阅资料得知

OS11之后:默认开启访问相册权限(读权限),无需用户授权,无需添加NSPhotoLibraryUsageDescription,适配iOS11之前的还是需要加的。 添加图片到相册(写权限),需要用户授权,需要添加NSPhotoLibraryAddUsageDescription
 
<key>NSPhotoLibraryUsageDescription</key>

<string>是否允许此APP使用相册?</string>


<key>NSPhotoLibraryAddUsageDescription</key>

<string>是否允许此APP保存图片到相册?</string>

 

转载于:https://www.cnblogs.com/gaoxiaoniu/p/8507476.html

2017-10-20 11:34:00 weixin_30905133 阅读数 37

http://www.jianshu.com/p/c03a87e4ca87

 

大家都知道访问相册需要申请用户权限。 相册权限需要在info.plist—Property List文件中添加NSPhotoLibraryUsageDescription键值对,描述文字不能为空。 iOS11之前:访问相册和存储照片到相册(读写权限),需要用户授权,需要添加NSPhotoLibraryUsageDescription。
iOS11之后:默认开启访问相册权限(读权限),无需用户授权,无需添加NSPhotoLibraryUsageDescription,适配iOS11之前的还是需要加的。 添加图片到相册(写权限),需要用户授权,需要添加NSPhotoLibraryAddUsageDescription

总结:iOS11之后如果需要写入权限需要添加
NSPhotoLibraryAddUsageDescription字段。  
   NSPhotoLibraryUsageDescription:
Property List:
   Privacy - Photo Library Usage Description
Source Code:
  NSPhotoLibraryUsageDescription
是否允许此APP使用相册?
   NSPhotoLibraryAddUsageDescription :
Property List:
   Privacy - Photo Library Additions Usage Description
Source Code:
   NSPhotoLibraryAddUsageDescription
是否允许此APP保存图片到相册?

苹果官方文档说明:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW73

NSPhotoLibraryAddUsageDescription

NSPhotoLibraryAddUsageDescription (String - iOS) This key lets you describe the reason your app seeks write-only access to the user’s photo library. When the system prompts the user to allow access, this string is displayed as part of the alert.

Important: To protect user privacy, an iOS app linked on or after iOS 10.0, and that accesses the user’s photo library, must statically declare the intent to do so. Include the NSPhotoLibraryAddUsageDescription key (in apps that link on or after iOS 11) or NSPhotoLibraryUsageDescription key in your app’s Info.plist file and provide a purpose string for the key. If your app attempts to access the user’s photo library without a corresponding purpose string, your app exits.

 

This key is supported in iOS 11.0 and later.

NSPhotoLibraryUsageDescription

NSPhotoLibraryUsageDescription (String - iOS) This key lets you describe the reason your app accesses the user’s photo library. When the system prompts the user to allow access, this string is displayed as part of the alert.

Although this keys governs read and write access to the user’s photo library, it’s best to use NSPhotoLibraryAddUsageDescription if your app needs only to add assets to the library and does not need to read any assets.

Important: To protect user privacy, an iOS app linked on or after iOS 10.0, and that accesses the user’s photo library, must statically declare the intent to do so. Include the NSPhotoLibraryUsageDescription key in your app’s Info.plist file and provide a purpose string for this key. If your app attempts to access the user’s photo library without a corresponding purpose string, your app exits.

 

This key is supported in iOS 6.0 and later.

 



作者:小孩仔
链接:http://www.jianshu.com/p/c03a87e4ca87
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/huangzizhu/p/7698648.html

2017-10-24 22:15:06 jiadabin 阅读数 551

还没有开始适配之前,就已经听身边的程序猿伙伴在为iPhone X的刘海和HomeBar的存在而纷纷吐槽了。说的我都有些怕怕,胆子小,哈哈哈。下面针对在整理过程中发现的适配注意点进行简单总结。


一、iOS11


1、iOS11新增版本判断API


2、MJRefresh上拉刷新死循环


3、访问相册权限变更


4、UITableView相关适配


二、iPhone X


1、iPhone X尺寸


2、iPhone X上下显示黑条问题


3、导航栏适配


4、安全区域问题


5、上传警告问题


1.1、iOS11新增版本判断API


iOS11版本现在有了简单的API,OC也开始支持swfit的@available语法,就可以不用再手写判断iOS版本了。


if (@available(iOS 11.0, *)) {


// 版本适配


}


1.2、MJRefresh上拉刷新死循环


self.tableView.estimatedRowHeight=150.0f;


150这个数值是你cell的平均高度,如果estimatedRowHeight设置非常小,MJRefresh的KVO会监听错误的contentoffset,造成不停进行上拉加载操作。


1.3、访问相册权限变更


www.jianshu.com/p/cd0f814a7ce9


1.4、UITableView相关适配


www.jianshu.com/p/73394f7518c8


2.1、iPhone X尺寸




2.2、iPhone X上下显示黑条问题


运行Xcode9.0的iPhoneX模拟器, APP在iPhoneX屏幕没填充满,上下有黑色区域,这是因为app之前未用LaunchScreen.Storyboard作为启动页面,可以使用LaunchScreen来当做入场页面,这样APP才会自动适配为iPhoneX的大小。我的项目中是用Assets中的LaunchImage, 这样就可以修改Assets中的LaunchImage,添加iPhoneX的Launch图(1125*2436)


适配启动页入口


2.3、导航栏适配


导航栏新增了一种大标题样式,默认设置是不开启,所以不需要修改。


iOS 11以前,导航栏的高度是64,其中状态栏statusBar的高度是20,底部tabbar的高度是49。


iOS 11之后,iPhoneX的导航栏的高度是88,其中状态栏的statusBar的高度变成了44, 底部的tabbar变成了83。


iPhoneX的底部增加了虚拟Home区,由于安全区域的原因默认tabBar的高度由49变为83,增高了34,所以自定义的底部TabBar也需要需改其适配方案。


目前我们项目没有自定义底部TabBar, 则先不考虑吧, 先来考虑关于navi 在 iPhone X 上是88的问题.


目前没发现有iPhoneX的机型判断API,建议使用size来做代替判断。


#definekStatusBarHeight[[UIApplicationsharedApplication] statusBarFrame].size.height


#define kNavBarHeight 44.0


#define kTabBarHeight ([[UIApplication sharedApplication] statusBarFrame].size.height>20?83:49)//tabBar高


#define kTopHeight(kStatusBarHeight + kNavBarHeight)//导航栏高


//判断iPhoneX


#define isiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)


#defineiPhoneX[[UIScreenmainScreen] bounds].size.width >= 375.0f && [[UIScreen mainScreen] bounds].size.height >= 812.0f && isiPhone


2.4、安全区域问题


iOS 11之前, 

automaticallyAdjustsScrollViewInsets经常被设置成NO,由开发者去控制处理留白和坐标问题, 但是11+automaticallyAdjustsScrollViewInsets = NO这句代码失效。


iOS 11后,

把这个automaticallyAdjustsScrollViewInsets废弃,新增了contentInsetAdjustmentBehavior,这个属性是个枚举类型值,我们只需要把其设置成never就行了


解决tableView偏移88的问题,  我们可以对对 tableView 进行如下设置:


if (@available(iOS 11.0, *)) {


self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;


} else {


self.automaticallyAdjustsScrollViewInsets = NO;


}


2.5、上传警告问题


打好ipa包之后,收到苹果方的邮件是下面这个样子的。




更新适配版本时 iPhone X 的启动图适配加上了, 千万别忘了也要传 Icon. 否则就会有上传版本时会有提示警告滴~




9月份上传的时候, 没有1024*1024的营销图标只是有警告, 现在上传的时候也是有警告的, 只不过现在提交审核的时候直接不能提交审核!

2017-10-26 11:09:22 huxinguang_ios 阅读数 5516

问题描述:

我们公司ios开发者账号(company类型)是由之前的主管弄的,他不是搞ios的,所以用的是他私人的apple id来加入开发者计划的,而不是一个用公司的公共邮箱注册的Apple id来加入的,所以就会出现一个问题,每次apple 发送邮件都是发到他的私人邮箱里。这样他每次就需要将邮件转发给开发者,很不方便。

解决方案:

company类型的开发者账号,有一个“Transfer Team Agent Role”的功能,最开始用谁的apple id加入的开发者计划(company 类型),那么该Apple ID就是开发者计划的Team Agent,后期我们要换开发者计划的持有人只需要更换其Team Agent,每个开发者计划(company 类型)只有一个Team Agent,并拥有最高权限。

必备条件:
准备一个apple id(例如xxx@xxx.com) ,普通的就行,没有缴纳99$的那种,注意,该apple id不能是其他开发者计划的Team Agent。

第一步:

将你准备的apple id 邀请到当前开发者计划的team中:

这里写图片描述

这里写图片描述

点击 Invite 后,xxx@xxx.com会收到这样的邮件

这里写图片描述

点击View invitation,注意,点击之前要在当前浏览器先退出当前apple id,并登录被邀请的apple id,不然在点击View invitation跳转浏览器时,浏览器捕捉到的session登录信息是当前的Apple ID而不是被邀请的apple id的登录信息,那收到邀请的不对了(成了自己邀请自己了)。

这里写图片描述

点击Accept,然后你会发现被邀请的Apple ID的界面就变成了这样的

这里写图片描述

而发出邀请的Apple id的界面里多了一个admin,

这里写图片描述

第二步:

登录之前发出邀请的Apple id

这里写图片描述

点击Transfer Team Agent Role,在弹窗中选择之前邀请的Apple id后,Continue

这里写图片描述

Continue之后会有一些同意条款之类的,选择同意,完成之后,该开发者计划的Team Agent变成了那个被邀请的Apple id了,而之前的Apple ID的角色就变成了Team Member,大功告成。

没有更多推荐了,返回首页