Xcode 8或9开始显示运行时问题.您会在窗口顶部看到一个紫色图标,并在Issue Navigator中看到一个列表,旁边是构建时间问题,如编译警告和错误.
我见过的运行时问题是由系统库创建的.有没有办法让我自己的应用程序代码生成这些?
我知道在Xcode9的早期Beta版本中缺少代码折叠,并且可以通过CMD点击折叠整个方法.
但是在Xcode 8中我能够通过编辑器>>代码折叠>>折叠来折叠块中的代码(即单个if语句),但是在Xcode 9中,这折叠了整个方法.
是否有修复/设置我可以更改以恢复Xcode 8功能?
我在我的应用程序中有一个自定义相机,它工作正常,但在新的更新后,我收到此错误:
'jpegPhotoDataRepresentation(forJPEGSampleBuffer:previewPhotoSampleBuffer :)'在iOS 11.0中已弃用:请改用 - [AVCapturePhoto fileDataRepresentation].
这是我收到错误的行:
guard let imageData =
AVCapturePhotoOutput.jpegPhotoDataRepresentation(forJPEGSampleBuffer: photoSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer) else {
return
}
Run Code Online (Sandbox Code Playgroud)
这是我的全部功能(如果需要):
//Take pic function
func photoOutput(_ captureOutput: AVCapturePhotoOutput,
didFinishProcessingPhoto photoSampleBuffer: CMSampleBuffer?,
previewPhoto previewPhotoSampleBuffer: CMSampleBuffer?,
resolvedSettings: AVCaptureResolvedPhotoSettings,
bracketSettings: AVCaptureBracketedStillImageSettings?,
error: Error?) {
// Make sure we get some photo sample buffer
guard error == nil,
let photoSampleBuffer = photoSampleBuffer else {
print("Error capturing photo: \(String(describing: error))")
return
}
// Convert photo same buffer to a jpeg image data by using // …Run Code Online (Sandbox Code Playgroud) 自从我升级到Xcode 9后,我的粉丝在我使用Xcode时发疯了.当我使用Storyboards和Interface Builder时,尤其会发生这种情况.
Xcode有时占用CPU的100%,名为"Interface Builder Cocoa Touch Tool"的过程也非常贪婪.
我在这里和那里读到其他人有类似的问题,但我想知道是否有人找到了解决方案,因为它很可能是一个Xcode错误.
我试过的事情:
有没有人找到这个问题的解决方案?
Mac配置:
Xcode版本: 9.0(9A235)
我的Xcode现在自动更新我收到此错误:
"Apple开发者计划许可协议"已更新.要访问某些成员资源,您必须接受最新的许可协议.
我觉得很蠢.我在哪里接受这个?
Objective-C 在XCode 9+/LLVM 5+中有一个@available表达式,它允许您将代码块保护到至少某个操作系统版本,这样如果您使用仅在该范围内可用的API,它就不会发出无人看守的可用性警告操作系统版本
问题在于,这种可用性保护是它只有在它是条件的唯一表达时才有效if.如果您在任何其他上下文中使用它,您会收到警告:
@available does not guard availability here; use if (@available) instead
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果您尝试将可用性检查与以下其他条件进行对比,则它不起作用if:
if (@available(iOS 11.0, *) && some_condition) {
// code to run when on iOS 11+ and some_condition is true
} else {
// code to run when on older iOS or some_condition is false
}
Run Code Online (Sandbox Code Playgroud)
任何在if块内或在块内使用iOS 11 API的代码some_condition都会产生无人看守的可用性警告,即使可以保证只有在iOS 11+上才能访问这些代码.
我可以把它变成两个嵌套if的,但是else代码必须重复,这很糟糕(特别是如果它有很多代码):
if (@available(iOS 11.0, *)) {
if (some_condition) {
// …Run Code Online (Sandbox Code Playgroud) Xcode 9.1 Simulator 10.0 OSX 10.12.6
我想将我的贴纸包的新版本上传到iTunes Connect.但产品>存档显示为灰色.所以我运行模拟器并且"无法为(名称)设置插件占位符."
全世界任何地方只有一个答案 - 删除派生数据文件夹.我做了并得到了同样的错误信息.
BTW在Xcode的General下,版本为1.构建版本为1.4.是否必须在其他地方更改内部版本号?
在调试/发布版本(iOS 11 GM/beta和iOS 10)中,在控制台中观察到带有警告的xcode 9的项目:
CoreData: annotation: Failed to load optimized model at path "/Users/xyz.abc/Library/Developer/CoreSimulator/Devices/A-GUID/data/Containers/Bundle/Application/B-GUID/app-name.app/Frameworks/framework-name/mystorename.momd/mystorename 6.omo"
Run Code Online (Sandbox Code Playgroud)
使用CD的任何自定义框架(例如GoogleMaps等)也会导致此警告和潜在的崩溃.
请添加建议.这个警告的潜在影响是什么?
更新到iOS 11后,在iPhone中运行应用程序后,我在Xcode控制台中收到此消息:
SibDiet[924:111682] refreshPreferences: HangTracerEnabled: 0
SibDiet[924:111682] refreshPreferences: HangTracerDuration: 500
SibDiet[924:111682] refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0
Run Code Online (Sandbox Code Playgroud)
现在我在每个模拟器和应用程序中收到此消息.
我怎么解决这个问题?
xcode9 ×10
ios ×6
xcode ×6
swift ×4
objective-c ×2
availability ×1
camera ×1
cocoapods ×1
code-folding ×1
code-signing ×1
core-data ×1
cpu ×1
ios11 ×1
performance ×1
swift4 ×1
testing ×1
xcode10 ×1