我是macOS Development的新手,但我确实有iOS开发经验.我正在开发一个包的安装程序应用程序XYZ.pkg
我想用我自己的GUI而不是默认的macOS安装程序来安装这个包.该程序包在我的应用程序包中可用,当我尝试通过命令安装它时崩溃.
guard let pathOfResource = Bundle.main.path(forResource: "SomePackageName", ofType: ".pkg") else {
return
}
self.loadingView.alphaValue = 1
self.loadingView.layer?.isHidden = false
self.activityIndicator.startAnimation(sender)
let argumentString = "-pkg " + pathOfResource
let argumentString1 = "-target /"
let path = "/usr/sbin/installer "
let arguments = [argumentString,argumentString1]
let task = Process.launchedProcess(launchPath: path, arguments: arguments )
task.waitUntilExit()
self.activityIndicator.stopAnimation(sender)
self.loadingView.alphaValue = 0
Run Code Online (Sandbox Code Playgroud) 测试我的应用程序的Xcode 11(测试版)用于iOS的-13(测试版)的更新,我就当我试图从故事板实例的viewController越来越崩溃。
在以前的版本中,可以使用以下代码正常工作:
XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];
Run Code Online (Sandbox Code Playgroud)
现在,对于iOS 13,Apple引入了新方法,即
XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER" creator:^__Kindof UIViewController *__Nullable(NSCoder *_Nonnull coder){
return [XYZController alloc] initWithCoder:coder];
}];
Run Code Online (Sandbox Code Playgroud)
在iOS-13中执行这两种方法都会导致崩溃。当崩溃显示在其他地方时。
这是我的崩溃报告。
由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:''从-traitCollection返回nil,这是不允许的。