热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

苹果手机适配Xcode13打包及IOS15系统

篇首语:本文由编程笔记#小编为大家整理,主要介绍了苹果手机适配Xcode13打包及IOS15系统相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了苹果手机适配Xcode13打包及IOS15系统相关的知识,希望对你有一定的参考价值。








苹果手机适配Xcode13打包及ios15系统


  • 1. 问题统计
  • 2. 适配问题
  • 3. iOS15.2系统相册权限卡死Bug影响分析




2021年9月苹果发布xcode13及iOS15,苹果每年都有要求限制开发者提交市场App的xcode版本,手机证券App为提前应对限制,做好充分时间准备。
目前公司的项目提前在做适配工作, 所以再次记录。



1. 问题统计

Showing All Messages
: The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Workspace Settings.
Xcode-〉file-〉Workspace Settings 选择新的模式(项目以前都是使用旧的编译模式)
Showing All Messages
/Users/xia/EssenceMobile_ios/project/axsc/tztMobileApp_axsc.xcodeproj Building for iOS, but the linked and embedded framework 'alivcffmpeg.framework' was built for iOS + iOS Simulator.
Xcode-〉Build Setting-〉VALIDATE_WORKSPACE = YES;
Showing All Messages
Multiple commands produce '/Users/xia/Library/Developer/Xcode/DerivedData/tztMobileApp_axsc-bacmqduyvlscwtgrianwrtoxrvsm/Build/Products/Debug-iphonesimulator/tztMobileApp_axsc.app/MJRefresh.bundle':
1) That command depends on command in Target 'tztMobileApp_axsc' (project 'tztMobileApp_axsc'): script phase “Run Script”
2) That command depends on command in Target 'tztMobileApp_axsc' (project 'tztMobileApp_axsc'): script phase “[CP] Copy Pods Resources”
Podfile
install! 'cocoapods', :disable_input_output_paths => true
/Users/xia/EssenceMobile_ios/Frameworks/TIFASDK/TIFASDK.xcodeproj The linked framework 'AxsThirdVendors.framework' is missing one or more architectures required by this target: i386.
'AxsThirdVendors.framework' 缺少i386的架构【模拟器编译】
TIFACustomButton
_font;- >ax_font;

  • 编译模式的调整


  • Podfile文件的改变


  • build setting 修改变量


2. 适配问题
式配点现象方案
UITableView从 iOS 15 开始,TableView 增加sectionHeaderTopPadding属性,默认情况sectionHeaderTopPadding会有22个像素的高度,及默认情况,TableView section header增加22像素的高度self.tableView.sectionHeaderTopPadding = 0
保存相册UIImageWriteToSavedPhotosAlbum存储图片之后的回调不再返回图片了,会返回nil,如果在回调方法里面操作image有可能会直接Crash目前的解决办法声明一个全局image去记录,后面再去操作

3. iOS15.2系统相册权限卡死Bug影响分析

12 月 15 日,苹果发布了 iOS 15.2 的正式版。不幸的是这次升级,获取相册权限在特定情况下会卡死:
在还未向用户申请相册权限时,即
[phphotoLibrary authorizationStatus] != PHAuthorizationStatusAuthorized 时,
如果调用 [[PHPhotoLibrary sharedPhotoLibrary] registerChangeObserver:xxx]; 添加监听,则会卡死。苹果开发者论坛也有反馈(https://developer.apple.com/forums/thread/696131),目前苹果还未有回应,可以看到这个问题在 15.2 beta 版中就存在了,需观察苹果后续会如何处理。
临时方案可以在注册前进行判断,如果没有权限,则不注册观察者。


IOS11之后,系统访问相册即使是第一次访问相册,系统也没有弹出需要用户授权的弹框,对于一些审核比较严格的app这一点我们需要注意


  • 后续在适配的过程中,持续更新,直至适配完






推荐阅读
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Flutter 2.* 路由管理详解
    本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本项目通过Python编程实现了一个简单的汇率转换器v1.02。主要内容包括:1. Python的基本语法元素:(1)缩进:用于表示代码的层次结构,是Python中定义程序框架的唯一方式;(2)注释:提供开发者说明信息,不参与实际运行,通常每个代码块添加一个注释;(3)常量和变量:用于存储和操作数据,是程序执行过程中的重要组成部分。此外,项目还涉及了函数定义、用户输入处理和异常捕获等高级特性,以确保程序的健壮性和易用性。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 本文探讨了在任务完成后将其转换为最终状态时的异常处理机制。通过分析 `TaskCompletionSource` 的使用场景,详细阐述了其在异步编程中的重要作用,并提供了具体的实现方法和注意事项,帮助开发者更好地理解和应用这一技术。 ... [详细]
  • 短信验证码安全性堪忧,多因素认证或成未来主流
    短信验证码安全性堪忧,多因素认证或成未来主流 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • DRF框架中Serializer反序列化验证机制详解:深入探讨Validators的应用与优化
    在DRF框架的反序列化验证机制中,除了基本的字段类型和长度校验外,还常常需要进行更为复杂的条件限制校验。通过引入`validators`模块,可以实现自定义校验逻辑,如唯一字段校验等。本文将详细探讨`validators`的使用方法及其优化策略,帮助开发者更好地理解和应用这一重要功能。 ... [详细]
author-avatar
老男孩标兄_164
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有