The file “xxxxx” couldn’t be opened because you don’t have permission to view it.
造成的原因:
info文件中的字段Executable file 与 build settings栏中的Packaging中的Product Name 不一致就会导致上述截图的问题
将
info.plist
的文件中的Executable.file
中的文件修改为:$(PRODUCT_NAME)
报错"init(coder:) has not been implemented"
通过
nib
、storyboard
创建的View
,系统会先调用init?(coder aDecoder: NSCoder)
,在调用awakeFromNib()
。所以我们在使用nib的时候,只用awakeFromNib()
来初始化,就不会报这个错误
Nil is incompatible with return type
swift中不能直接将
nil
做为 返回值或者参数,返回值或者参数的类型必须是对应的,当想让 nil 做为参数的时候 需要用到optional types
可选类型
如 会报错
func dosome(name:String) {
print(name)
}
self. dosome(nil)
正确写法
func dosome(name:String?) {
if let aname = name {
print(aname)
}else {
print("没有值")
}
}
self.dosome(nil)
xxx has conflicting provisioning settings.
错误描述:
虽然勾选了自动管理证书和描述文件,但实际上描述文件被指定为特定文件,导致冲突。
Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 11.2' 这个应该是因为第一个错误产生的,可以不管,把第一个错误fix即可。
解决办法
右键
显示包内容
将
PROVISIONING_PROFILE
属性整行删除,保存就正常了。
use of unresolved identifier“某类”
类存在真机运行却报错,提示找不到该类。
第二个其实是单元测试工程,独立于项目本身,一般情况下,默认都是会在第一个打钩,意思是 这个文件属于这个打钩的工程。
ps:membership:成员的意思
解决方法
去掉xxxtest
的勾就不会报错
Address of property expression requested
OC 对象不能直接获取地址
& object->_param
ITMS-90683
如果将没有新字段的包提交审核,将会收到包含 ITMS-90683 的邮件,并提示审核不通过。
按邮件内容,查看提到哪些关键字段,补充到info.plist 中。
UINavigationBar 图片异常
3x 图片高度不满 UINavigationBar ,导致图片平铺。可以调用 UIImage 拉伸接口来优化。
// 1. 直接传入保护的范围,没有设置图拉伸的模式,默认为UIImageResizingModeTile(瓦片式)就是将图片以原来的大小就行平铺显示
[image resizableImageWithCapInsets:UIEdgeInsetsMake(<#CGFloat top#>, <#CGFloat left#>, <#CGFloat bottom#>, <#CGFloat right#>)];
// 2. 设置图片拉伸的模式
// UIImageResizingModeTile平铺 UIImageResizingModeStretch拉伸
[image resizableImageWithCapInsets:UIEdgeInsetsMake(imageheight * 0.5, imagewidth * 0.5, imageheight * 0.5 -1, imagewidth * 0.5 - 1) resizingMode:UIImageResizingModeTile];
比如:UIEdgeInsetsMake(42, 0, 0, 0)
指的是拉伸区,详细点解释就是,从顶部一直到y=42
部分是保护区,从y=42一直到底部
是拉伸区
ERROR ITMS-90189
苹果默认是不允许在同一个版本号下构建同一个构建版本的。
更改version号 或者 更改 build号
Guideline 2.5.1 - Performance - Software Requirements
Your app uses the "prefs:root=" non-public URL scheme, which is a private entity. The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.
Specifically, your app uses the following non-public URL scheme:
app-prefs:root=bluetooth
// iOS系统版本 >= iOS10,支持跳转到自己应用设置,不支持跳转到系统设置
// OC
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplicationsharedApplication]openURL:url options:@{}completionHandler:^(BOOL success) { }];
// swift
let url = URL(string: UIApplication.openSettingsURLString)
UIApplication.shared.open(url, options: [:], completionHandler: nil)
Guideline 5.0 - Legal
Recently, the Chinese Ministry of Industry and Information Technology (MIIT) requested that CallKit functionality be deactivated in all apps available on the China App Store.
During our review, we found that your app currently includes CallKit functionality and has China listed as an available territory in App Store Connect.
中国工业和信息化部要求在中国应用商店中提供的所有应用中停用CallKit
功能。
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access their location and Bluetooth but does not clarify the use of the location and Bluetooth in the applicable purpose string.
For additional information and instructions on requesting permission, please review the Requesting Permission section of the iOS Human Interface Guidelines and the Information Property List Key Reference. You may also want to review the Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection page for details on how to provide a usage description for permission request alerts.
可以参考,把描述语言改比较形象生动
QQ:
获取麦克风权限: 请点击”好”以允许访问.若不允许,你将无法使用视频通话、发送语音消息或录制视频等功能.
获取相机权限: 请点击”好”以允许访问.若不允许,你将无法使用拍照、录制视频、扫一扫等功能.
获取定位权限: 若不允许,你将无法使用位置发送、附近的人、群与活动、空间挂件、吃喝玩乐等功能.
获取相册权限: 若不允许,你将无法给好友发送或在空间上传本地相册图片及视频内容.
获取通讯录权限: 请点击”好”以允许访问.若不允许,你将无法使用通讯录联系人、添加手机联系人等功能.
获取Siri权限: 您的部分”QQ”数据将发给Apple以处理您的请求.如果不允许,你将无法使用Siri唤起QQ
获取活动与体能训练记录权限: 请点击”好”以允许访问.若不允许,你将无法同步运动健康数据至QQ运动.
微信:
获取麦克风权限: 如果不允许,你将无法在微信中发送语音消息,或进行音频通话.
获取相机权限: 如果不允许,你将无法再微信中拍摄照片和视频,也无法使用视频通话、扫一扫等功能
获取相册权限: 如果不允许,你将无法发送系统相册里的照片给朋友.
获取定位权限: 如果不允许,你将无法在聊天中共享你的位置,也无法使用”摇一摇”和”附近的人”等基于位置的服务.微信还会使用这些信息提供关联搜索结果,并在你的注册或登录微信时保障你的账户安全
获取通讯录权限: 如果不允许,微信将无法推荐通讯录中的朋友给你.微信仅使用特征码用于匹配识别,不会保存你的通讯录内容
获取Siri权限: 您的部分”微信”数据将发给Apple以处理您的请求.如果不允许,您将无法通过Siri发送微信消息
获取活动与体能训练记录权限: 如果不允许,你将无法参与微信运动排行榜.
上传通讯录提示: 微信将上传手机通讯录至微信服务器以匹配及推荐朋友.(上传通讯录仅用于匹配,不会保存资料,亦不会用作它用)
淘宝:
获取定位权限: “手机淘宝”想访问您的位置,为了提供附近的商品、店铺及优惠资讯
获取相机权限: “手机淘宝”想访问您的相机,为了帮您扫描二维码或者商品和互动等功能
获取麦克风权限: “手机淘宝”想访问您的麦克风,为了帮您用语音搜索卖家商品等功能
获取相册权限: “手机淘宝”想访问您的照片,为了帮您实现晒买家秀等上传照片的功能
支付宝:
获取定位权限: 若不允许,你将无法在支付宝中使用商家服务、本都生活、发送地理位置等定位相关功能
获取通讯录权限: 支付宝讲上传通讯录至服务器以匹配及推荐朋友,给朋友转账更方便(未经您同意,通讯录信息不会用于其他用途).
获取相册权限: 若不允许,你将无法在支付宝中发送及保存照片
获取相机权限: 若不允许,你将无法在支付宝中使用扫码、刷脸、拍照及拍摄小视频等功能.
获取麦克风权限:若不允许,你将无法在支付宝使用语音消息、小视频及语音搜索等功能.
高德地图:
获取定位权限: 高德地图会在搜索、路线查询和导航等服务中使用您的位置信息.
获取麦克风权限: 点击允许,立即开始使用语音功能
获取相册权限: 点击允许,选择照片上传到高德地图
获取相机权限: 点击允许,使用高德地图拍摄照片
Guideline 4.8 - Design - Sign in with Apple
We noticed that your app uses a third-party login service but does not offer Sign in with Apple.
To resolve this issue, please revise your app to offer Sign in with Apple as an equivalent login option.
使用第三方登录,如:微信登录。需要加入苹果的 Sign in with Apple
可以参考
苹果登录 Sign in with Apple
Sign in with Apple ID 苹果登录 ios13+
Guideline 2.5.4 - Performance - Software Requirements
Your app declares support for location in the UIBackgroundModes key in your Info.plist file but does not have any features that require persistent location. Apps that declare support for location in the UIBackgroundModes key in your Info.plist file must have features that require persistent location.
location updates
(后台定位更新):如果我们想要在后台获取位置, 必须勾选后台模式,会出现蓝条解决方法:
location updates
去掉勾。
Guideline 2.1 - Information Needed
Next Steps
To help us proceed with the review of your app, please provide detailed information to the following questions. The more information you can provide upfront, the sooner we can complete your review.
-What purpose does access audio background mode serve?
需要给苹果粑粑解释 What purpose does access audio background mode serve?
可以拍视频、发邮箱解释
ITMS-90809: Deprecated API Usage - Apple will stop accepting API Usage - Apple will stop accepting submissions of apps that use UlWebView APls.
公司老项目用了UIWebView
,苹果审核不通过,只要把UIWebView
的相关代码替换成WKWebView
就行了。