Xcode 12.3 编译提示Building for iOS Simulator, but the linked and embedded framework '****.framework'...
Buil Settings - Build Options - Validate Workspace 改为Yes,编译通过改回No也可以通过了。
减少SVP提示的时间
_minimumDismissTimeInterval = 5.0;
导入三方库文件
一定要在searchPath里添加路径
github仓库提示最多100MB
网上的方法都试过了,没用,备份一份在本地,删除远程和本地的代码,重新上传。(当时花了四个小时。。。)
XCode13以后创建的库项目都没有product项目文件夹??
在project.pbxproj配置文件中搜索mainGroup,复制这个值给productRefGroup,保存即可。
库文件存在冲突类?
网上说的是通过删除重复类和合并,但是仔细想一下,删除的前提是两个类必须完全相同,不然删除了必然导致另一个类错误,而且还需要重新引用把,不然怎么识别?所以删除合并并不能解决当前方法,我目前有了其中一份编译的源码,我尝试了删除这个类,果然还是报错了,我重命名了这个类,也依然报相同元素错误,仔细一想,是不是这两个类有重复同名方法呢?但是一想不管是类方法还对象方法重复并没有问题啊,仔细一看,是static关键字修饰的静态方法!更改所有同名的静态方法重新编译,通过了。
从一个正常的控制器视图跳转到带有tabbar控制器的视图,导航栏高度异常?
通过颜色打印确认是在跳转的时候又一次创建了三个根视图控制器和对应的导航栏,两个导航栏重叠导致,只需要在跳转的时候隐藏当前控制器的导航栏即可。
FMDB插入不进数据
除了网上说的插入数据nil的情况,确保数据有值的情况下,要进入Exu方法里查看具体插入失败的原因,我是因为找不到这个数据里的表名。
静态库编译的framework不支持真机
一定要这样修改,这样在真机中就使用打包出来的release版本就不会包含arm64,而模拟器中是包含了模拟器所含的架构,两边合并就不会冲突。
静态库合并的问题
首先合并的是文件而不是文件下,所以lipo -create 后面的两个目录必须是到文件的,而不是文件夹,其次合好的文件格式要注意和之前的格式相同,然后放到原先的文件夹(.framework)下面,在放到工程中就没有问题了。最重要的是要保证文件结构目录相同,合并只是在文件中对文件做了修改,相当于加了一层if-else判断。
0警告强迫
多数的问题来自于pod导致的,除了在头部加上inhibit_all_warnings!,我试了加在尾部没有效果。。。
# The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 7.0, but the range。。这个问题只要在post_install do |installer|的target.build_configurations.each do |config|里面最后加上统一的config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'配置即可。
关于# object file was built for newer iOS version (9.0) than being linked (7.0)的问题,只要在Build Settings -> other lingker Flags中加入-w即可
使用归档方式存储数据
从ios12开始archivedDataWithRootObject方法被替换为rchivedDataWithRootObject:requiringSecureCoding: error:,相应的解档方式也变了,除了要在对应的类里面遵循NSSecureCoding协议并且添加方法supportsSecureCoding方法,设置成yes,碰到的问题是我自己创建的model放到数组中,存入没有问题,data打印有数据,但是取出的时候解档始终是nil,unarchivedObjectOfClasses要设置解档的类作为参数,一开始只是把相应的类作为参数设置,但是看不出问题,这个时候需要打印error信息,系统会告诉你出错的原因,网上并没有找到,除了要添加相应的NSArray以外,还要添加NSMutableString,既然字符串可变,那么字符串也要作为参数一起放到集合中。
在运行的时候,在控制台可能会报警告**-[NSKeyedUnarchiver validateAllowedClass:forKey:] allowed unarchiving safe plist type ''NSXXX'**,就是说这个类的class没有加入到集合中,尽管你还没有使用它,ios15以后加入了新的安全校验把应该是,所以必须要在任何解档的地方把这里缺失的类的集合添加进去。
完美解决重命名项目的问题
以前找过一些都不是很全很有用,这个试了一下还行,初步估计是大多项目配置文件没有改--工程名修改。