iOS18 适配

2024-09-24  本文已影响0人  HF_K

presentViewController不全屏问题

之前iOS13处理过,结果iOS18又出现了

解决办法:

- (void)custompresentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion{
    if (@available(iOS 13.0, *)) {
        // iOS13以后style默认UIModalPresentationAutomatic,以前版本xcode没有这个枚举,所以只能写-2
        if (viewControllerToPresent.modalPresentationStyle == -2 || viewControllerToPresent.modalPresentationStyle == UIModalPresentationPageSheet || viewControllerToPresent.modalPresentationStyle == UIModalPresentationFormSheet ) {
            viewControllerToPresent.modalPresentationStyle = UIModalPresentationOverFullScreen;
        }
    }
    [self custompresentViewController:viewControllerToPresent animated:flag completion:completion];
}

上传ipa包时报错(Asset validation failed (90482))

Asset validation failed (90482)
Invalid Executable. The executable 'xxxx.app/Frameworks/NIMSDK.framework/NIMSDK' contains bitcode. (ID: 812059a0-5027-49c1-b45a-70331f017719)

在构建之前剥离位码作为解决方法并更新依赖项作为最终解决方案。看来 Xcode 16 对位码验证实施了更严格的规则。

解决办法:在Podfile 末尾添加了以下几行作为解决方法

post_install do |installer|
  installer.generated_projects.each do |project|
    project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['CODE_SIGN_IDENTITY'] = ''
        config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
        #config.build_settings['GENERATE_INFOPLIST_FILE'] = "NO"
        if target.name == 'NIMSDK_LITE'
          `xcrun -sdk iphoneos bitcode_strip -r Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/NIMSDK -o Pods/NIMSDK_LITE/NIMSDK/NIMSDK.framework/NIMSDK`
        end
      end
    end
  end
end

具体路径可以通过查看想要Pods的实际路径,通过showInFinder进行查看

UITabBarController变化

UITabBarController 新增了一个类型为 UITabBarController.Mode 的属性,用于设置UITabBar显示效果,值有automatictabBartabSidebar,其中最后一种在 iPadOS 显示时,可以在 siderBartabBar 之间进行切换。

UITabBarController 新增了一种新的标签类型UITab,可以设置title(标题)、subtitle(副标题)、image(图片)、badgeValue(角标值)等。

UITabBarControllerDelegate 增加了多个与UITab相关的代理方法。

注意⚠️:iPadOS上系统UITabBarController会移动到顶部。

UIViewController

UIViewController 新增了类型为UIViewController.Transition的属性,可以实现特殊的转场效果,分别为zoom、coverVertical、flipHorizontal、crossDissolve与partialCurl。

自定义视图不能命名为maskView(跟系统的冲突了)容易造成崩溃

创建view时将其命名为maskview,然后addSubview时就会在iOS18上崩溃

上一篇下一篇

猜你喜欢

热点阅读