美文网首页
iOS18 适配

iOS18 适配

作者: HF_K | 来源:发表于2024-09-24 19:23 被阅读0次

    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上崩溃

    相关文章

      网友评论

          本文标题:iOS18 适配

          本文链接:https://www.haomeiwen.com/subject/mvvqrjtx.html