Xcode 11
也发布了一段时间了, 老项目跑起来都没问题, 但是 Xcode 11
新建的工程导入以前老的库却会出现一些小问题.
因此可能把工程改成 Xcode 10
时候的工程会更好一些.
正文
修改为原来的工程分为 5
步:
第一步: 修改 Info.plist
干掉关于 SceneDelegate
的配置信息. 直接在 Info.plist
中删除该字段即可.
第二步: 修改 AppDelegate
新版本的工程中, AppDelegate.h
是这样的
1
2
3
4
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@end
给他加上 window
属性:
1
2
3
4
5
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (nonatomic, strong) UIWindow *window;
@end
提醒 缺少这一步的话, 启动之后就是黑屏, 会报如下错误:
[Application] The app delegate must implement the window property if it wants to use a main storyboard file.
第三步: 删除多余文件
干掉 SceneDelegate.h
和 SceneDelegate.m
文件. 因为对你已经无用了.
第四步: 删除无用的方法
AppDelegate.m
中有 2
个新的以前没见过的方法:
1
2
3
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options;
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions;
以上 2
个方法是 UISceneSession
生命周期函数, 直接删掉就好了.
提示 如果不删除掉, 跑起来也依旧是黑屏. 并且没有任何报错信息.
第五步: 添加相关生命周期的方法
AppDelegate.m
文件中自己手动添加相关的生命周期函数即可.
结束
到此就算搞完了, 你的项目就可以正常跑起来了.