转换为 Swift 3 后,iOS 应用程序未启动

Posted

技术标签:

【中文标题】转换为 Swift 3 后,iOS 应用程序未启动【英文标题】:iOS app is not launching after converting to Swift 3 【发布时间】:2016-09-19 12:42:08 【问题描述】:

我已将现有应用程序转换为 Swift 3,但当我尝试从 Xcode 启动它时,没有任何反应。

确切地说,应用程序已成功安装、打开,但只显示白屏。没有构建时或运行时错误。

我在private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 中设置了断点,但它没有到达那里。

在模拟器中启动会在控制台中打印以下内容:

2016-09-19 14:52:47.881377 ProjectName[63797:9522206] bundleid: com.company.ProjectName, enable_level: 0, persist_level: 0, propagate_with_activity: 0

2016-09-19 14:52:47.897791 ProjectName[63797:9522206] subsystem: com.apple.siri, category: Intents, enable_level: 1, persist_level: 1, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0

2016-09-19 14:52:47.933007 ProjectName[63797:9525057] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0

2016-09-19 14:52:47.936713 ProjectName[63797:9525057] subsystem: com.apple.UIKit, category: HIDEventIncoming, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0

2016-09-19 14:52:48.006885 ProjectName[63797:9525049] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0

2016-09-19 14:52:48.039142 ProjectName[63797:9522206] subsystem: com.apple.UIKit, category: StatusBar, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0

2016-09-19 14:52:48.142475 ProjectName[63797:9522206] subsystem: com.apple.BackBoardServices.fence, category: App, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0

设备:iPhone SE ios 9.3.5

模拟器:6 和 SE,均为 iOS 10.0

帮助?任何人?请。

【问题讨论】:

你有没有在这个项目中添加任何外部框架? 是的,实际上。你认为这是问题所在? 是的,我可能不确定,但应用此答案可能会有所帮助。 清理构建文件夹之类的基本例程不起作用? @Elena 在下面试试我的回答,希望对您有所帮助。 【参考方案1】:

产品 -> 方案 -> 编辑方案 然后在左侧的运行部分,选择参数选项卡 -> 环境变量:

OS_ACTIVITY_MODE 值:禁用。

从 Cocoapods 中移除框架,通过复制项目中的 SDK 手动安装。

【讨论】:

我从项目中完全删除了框架,并将OS_ACTIVITY_MODE 设置为禁用。没有结果=(【参考方案2】:

尝试替换

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 

到这里:

func applicationDidFinishLaunching(_ application: UIApplication) 

【讨论】:

天啊,你救了我!这就是问题所在:主应用程序方法的签名错误。实际上我现在使用了这个:func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?),因为我稍后需要启动选项。 哦,是的,这个函数也更新了——不返回任何东西。不客气。

以上是关于转换为 Swift 3 后,iOS 应用程序未启动的主要内容,如果未能解决你的问题,请参考以下文章

图像未正确加载

动画委托未转换为 Swift 3.0

iOS 应用在导航期间迁移到 swift3 后崩溃

在 swift 3 上的按钮单击应用程序是与故事板绑定的崩溃

后台任务未在 Swift 中重新启动

转换为 base 64 字符串后,iOS 图像方向发生了变化