首页 Xcode11 的工程如何修改成老工程
文章
取消

Xcode11 的工程如何修改成老工程

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.hSceneDelegate.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 文件中自己手动添加相关的生命周期函数即可.

结束

到此就算搞完了, 你的项目就可以正常跑起来了.

本文由作者按照 CC BY 4.0 进行授权