转换为 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 应用程序未启动的主要内容,如果未能解决你的问题,请参考以下文章