首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS12、iOS11、iOS10、iOS9常见适配

一、iOS12(Xcode10) 1.1、升级Xcode10后项目报错 不允许多个info.plist Xcode10是默认选中的最新的New Build System(Default),在这个编译系统的环境下...如果自己开发使用,也尽快考虑迁移的事宜吧。...如果要支持老版本,即 iOS 11 以下系统版本,那么建议在 info.plist 配置所有的 Key(即使 NSLocationAlwaysUsageDescription 在 iOS 11及以上版本不再使用...iOS 10相对之前的通知来说更加好用易于管理,并且进行了大规模优化,对于开发者来说是一件好事。 iOS 10开始对于权限问题进行了优化,申请权限就比较简单了(本地与远程通知集成在一个方法)。...四、iOS9(Xcode7) 4.1、Bitcode Xcode7 默认启用 Bitcode,但是如果我们用到的第三方库编译时还没启用 Bitcode,主工程就会编译不过。

2K31

iOS各种环境“坑”解决办法

我们的工程从 Xcode9.4.1更新到 Xcode10之后,就出现了编译错误,原因是在新的 SDK (/Applications/Xcode.app/Contents/Developer/Platforms...后经过反复测试发现,这个问题的原因是由于在 Xcode里编译缓存,必须手工将缓存清除掉,让Xcode重新生成缓存才行,真是坑爹呀!...升级到 10后,编译出的包在 iOS11 甚至更老的系统中会Crash....解决办法是将 Xcode10 降回到 Xcode 9。 具体做法如下: 到 Apple上使用自己的开发者帐号登陆。...无法安装问题 在iOS开发过程无法安装的问题很多,我这里遇到了一种,提示信息如下: ? 其原因是,之前在这台手机上安装的软件使用的签名信息与现在要装的签名信息不一致导致的。

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Xcode10不再支持libstdc++说起

各大编译器厂商为了自身的需要会对规范进行一些定制化处理(这些语法的标准以及厂商的定制化称为方言Dialect)。...其实在一些语言中为了使用上的简化往往会将一些能力提炼成为一个特殊的关键字,这样在使用这些能力时往往不再需要编写任何的代码,只要借助对应的关键字就可以简化这些功能的实现。...下面将简单的介绍一下libc++abi.dylib中都有那些功能: 在C++是通过new/delete运算符来实现堆内存的分配和销毁的,因此当在源代码中使用new/delete关键字来分配和销毁对象时...那既然在Xcode10报链接错误,又怎么解决这种问题呢?方法两个: 一个是将你所导入的静态库重新编译,将静态库所依赖的标准库升级为libc++.dylib。...总之为了彻底的解决这些问题,还是要求将你的静态库的代码在Xcode10重新编译是最好的解决方案。

2K30

那些防不胜防的坑儿

最终排查出问题出现的条件是:iOS12系统&输入法的后台应用刷新关闭&输入法无后台定位权限&输入法安装包使用Xcode10进行的打包&使用了后台音频权限。以上条件少任何一个条件都无用户反馈的问题。...Xcode10是苹果与iOS12系统一起推出的一个新版本。 针对情景中提到的后台权限问题,大家了解多少呢?你所在的项目是否也正在使用此权限呢?下面就给大家普及下相关知识。...而当该类应用退到后台后,iOS 系统的状态栏会变成红色,并在状态栏显示正在使用麦克风的应用的名称,如下图所示。iOS第三方输入法的语音功能都是使用此权限使用在键盘上使用语音功能。 ?...iOS 12系统上对应用的后台任务执行进行了限制。...解决方案 1.使用Xcode9.4.1版本进行打包,但是苹果要求从2019年3月1日后提交的版本必须使用Xcode10进行打包; 2.当使用Xcode10进行打包&无后台定位权限时&关闭后台刷新开关时

1.3K30

iOS组件化(二)

接上一篇iOS组件化(一)博客 我们已经初步制作了一个简单的SDK,并且加入了资源图片,公开了管理类。 如果有去实践的朋友,你应该会发现Build这个SDK是一件相当麻烦的事情。...不仅仅要手动选择bundle、framework进行真机和模拟器的打包。更加重要的是,如果这个包提供给别人用,你要提供两份?一份真机一份模拟器?这也太费劲了吧! 那么有没有合二为一的办法呢?...Just for convenience 注意:修改代码的MYResource.bundle这个名称。换成你的资源包的名字。 如果使用的是Xcode10以后版本。需要做以下设置。 ?...虽然我们现在很费事,但是以后我们修改了内容直接编译这个脚本就可以了。有错的话安装上面截图解决。是否一劳永逸了? 怎么知道你真的合包了? 我们来查下这个Framework的信息 ?...别慌~如果你细心,你会发现,我们一直选择的这个Generic iOS Device编译的,从来没有使用模拟器编译过。 ? image.png 那么来一次吧!

63330

iOS 优化 - 瘦身

如今,App 下载大小超出 200 MB 时 ,会出现两种情况: iOS 13 以下的用户,无法通过蜂窝数据下载 App; iOS 13 及以上的用户,需要手动设置才可以使用蜂窝网络下载 App。...因为这类工具的原理都是在相关文件(.m、.swift 等等)利用正则表达式检测是否图片名称的字符,所以存在以下问题。...如果想将 car 文件的 png 提取出来,可以使用Asset Catalog Tinkerer[13]。...;个人觉得有两种解决方案: 考虑到 Extension 程序相对宿主程序来说功能较小,尽量使用原生功能,不接入三方库; 如果想要接入同一份库,可将该库以动态库的方式引入,最终两个可执行文件会动态链接同一份库...编码素质 代码复用,禁止无脑拷贝代码,共用代码下沉为底层组件; 重复功能的框架使用一套; 不要因为一个很小的功能就引入一个框架,或者类似轻量级框架时转而选择一个功能强大但重量级框架; ...

2.4K20

正经分析iOS包大小优化

包括宏定义中使用try{}、@finally{}之类的,比如@strongify等,如果关闭了最后打包的时候也会报错。...设置了之后,就是Release下把armv7的指令集排除在外。选中target会发现默认设置了 Any iOS Simulator SDK -> arm64,意思是模拟器的时候排除arm64指令集。...具体的规范流程读者可以针对自己公司的实际情况来,可以思考一下,之前开发是否出现了类似的问题,出现了之后是否改变,怎么能避免再次出现同样的问题?...已废弃业务,代码还在 需要梳理业务流程,结合线上业务数据点击量,同产品和业务确认对应功能是否下线,从而决定是否移除对应的业务模块代码。...json文件的压缩,如果不是打开APP时马上要用到的数据,采取把对应资源放到服务端,下载后使用。 音频文件的压缩,则是在可接受的范围之内,选择系统支持的压缩比率高的格式。

5.3K61

iOS Class Guard github用法、工作原理和安装详解及使用经验总结

注意 iOS-Class-Guard不混淆system symbol,所有如果在自定义类的某些属性和方法与system symbol相同的名字,则不会被混淆。...否则,再次生成symbol后,APP在启动时会crash,不能从串行化数据读取该类。...from: objc-class-ref in GRAppDelegate.o 解决方法,复制n9z并在symbols.h查找,n9z很可能是个类,就要把它从混淆中排除使用-F '!...Ipa Guard是一款功能强大的ipa混淆工具,不需要ios app源码,直接对ipa文件进行混淆加密。可对IOS ipa 文件的代码,代码库,资源文件等进行混淆保护。...所以就要使用到混淆器,混淆器是把里面的代码变量等信息进行重命名,这样可读性会变得非常差,接着, 到这里,我们完成了对代码的混淆,但是还没有进行加固,防止反编译,所以,请往下看 然后导入自己的包就可以了,

23310

介绍 GodEyes-iOS

一个典型的过程是每次完成你的 iOS 项目的迭代后,就使用 GodEyes 扫描一次你的工程的代码。然后打开扫描结果,定位到上面列举的存在隐患的代码,确认一下是否存在隐患,然后对问题代码进行修改。...excludeList: 若有排除的文件或者目录,请在这里文件列出,目录或文件之间用逗号隔开。如果不需要排除任何文件,只需将该行注释掉即可。...一份 HTML 格式的扫描结果如下所示: 如果之前已经使用 GodEyes 扫描过你的工程,那么再次使用 GodEyes 时会提示你是否要覆盖编译数据库,如下图所示: 如果你的工程文件列表已经发生改变...A 如果这些引发错误的源文件并非来自你的主工程,而是来自第三方库,你需要将这些第三方库的路径添加到排除列表。...Q GodEyes-iOS 哪些局限性? A 下面这些情况是 GodEyes-iOS 目前无法正常处理的: 不能解析宏。

1.3K20

二、应用脱壳

(iOS11~iOS13) 六、Frida-ios-dump 6.1 一键快速脱壳 6.2 完美修复闪退 6.3 ipa文件安装失败处理 七、使用lipo分离架构 前言 iOS端App在上线之前会由苹果商店进行...要对应用进行分析,就必须先解密(成为“脱壳”),从而得到原始未加密的二进制文件。本节将讨论各种各样的脱壳技术。 一、检测是否脱壳 如何检测应用是否加壳了呢?...3.1 编译dumpdecrypted dumpdecrypted是开源的,需要先编译、签名,再将其复制到iOS设备,从官网可下载最新源代码。 到此为止,准备工作就完成了。...6.3 ipa文件安装失败处理 如果将脱壳后的ipa文件安装到不同类型的设备,可能会出现DeviceNotSupported错误。这是因为设备支持列表没有目标设备的类型。...lipo的功能非常强大,不但能合并多个Mach-O文件到一个胖文件格式,也能从一个胖文件格式中分离指定架构的Mach-O文件,下面的例子使用lipo工具的-info参数查看目标文件的架构,然后使用-thin

1.3K10

配置Flutter环境ForMa

关于Flutter的介绍我这里就不多说(看官网),如果你已经了解过了,那么这篇文章正好针对iOS开发者,开启Flutter之旅。 Flutter的配置其实有一些坑。...如果使用默认的bash那么配置 ~/.bash_profile 如果使用zsh那么配置~/.zshr #Flutter 镜像配置$ export PUB_HOSTED_URL=https://pub.flutter-io.cn...我们可以看看Flutter是否配置完成了。Flutter一个doctor检测指令。专门用于检测你的Flutter环境的。 $ flutter doctor 打钩就是配置OK了....;28.0.3" 2.3 配置安卓环境变量 在对应的Shell配置文件写下. 12 #安卓 13 export ANDROID_HOME=~/Library/Android/sdk 14 #安卓模拟器路径...配置iOS环境 目前1.5.4版本的Flutter需要匹配新版本的Xcode10 检测flutter doctor ? 安装报错 ? Github的issue里面有答案 ?

1K30

Q音直播编译优化与二进制集成方案

对于痛点1:优化编译速度,很多方式去做。但最为有效的措施包含以下两点: 网络请求使用jce协议,开发至今jce文件量已经很大(2000+),但实际不必暴露实现,因此二进制引入。...规范目录层级 之前 jce 是按照功能模块划分文件夹的;改为pod引入后是不会划分目录的,导致所有文件暴露在一个文件夹下,增加了大家的查找成本。 pod规范目录层级两种方式:1....可以看出单个文件编译耗时比较久的很多是c++或oc/c++混编文件,果然引入c++静态库对iOS来讲就是编译灾难。高居首位的是KSIMSDK的一个混编文件,其中大部分逻辑是拿c++写的。...可以使用IWYU(include-what-you-use)来做,它的主要功能是去分析头文件的每个include是否必要,然后将不必要的引用替换掉从而提升编译速度。...不到万不得已头文件不要引c++静态库。 oc/c++混编或纯c++文件编译编译耗时很大,酌情使用。 工程配置类的耗时优化基本上有效的XCode都已默认开启,只需检查一下是否被关闭即可。

3.6K41

移动直播MLVB常见问题(FAQ)

如果使用的精简版SDK,并且测试的机型为 iOS 8版本的系统,那么可能遇到这个问题。...直播可以看到画面,但是没有声音 可以按以下步骤进行检查: 将拉流地址分别使用第三方播放器(如 VLC、ffplay 等)以及Demo播放器进行播放 如果都没有声音:确认是否调用了静音接口setMute(...如果渲染首个I帧一直失败,请检查代码层是否关闭了 GPU 渲染功能。 注意 SDK默认是需要GPU渲染的。...主播端/连麦端的大小画面是在客户端本地进行渲染叠加的,UI 上的位置显示开发者自行改变。...但是两台手机离的过近,两端的麦克风同时录入了两端的声音,这种回音会伴随蜂鸣声,只能从使用场景上规避。 7. 纯音频连麦,要怎么做? 把音视频推流换成纯音频推流。

8.2K47

弃坑 RN,入坑 Flutter,同程旅行架构师给了这四点理由

适用范围:多应用于相对简单用户界面,动态更新页面; React Native:对 IOS/ 安卓开发有一定认知,依赖 native 相关组件实现,大量适配工作,支持热更。...,可以在编译前发现很多编译问题,排除潜在问题(天生具备)而 React Native 则需要添加相关插件来做检测; 第四点,Flutter 支持较复杂的动画,流畅度方面表现高于 React Native...对此,我们调研了一番,在一开始版本 Flutter 支持热修复相关场景,后考虑到苹果审核或者 Google 自身官方审核不允许动态更新的机制,阉割了该功能,多么痛的领悟。...目前同程旅行 App 使用的是混合开发模式,Native 开发无感知集成到 App ,目前分为上线集成模式和开发调试模式,分别用来集成 debug 产物和 release 产物,都以 Native 组件的方式集成进来...针对这个问题,基于上面的回答我先给大家总结几点优势: 第一,Flutter 使用 Dart 语言进行开发,Dart 快速上手,简单易学,越来越受开发者的追捧; 第二,Flutter 性能表现和流畅的体验方面的优越性已经是当下跨平台不可逾越的

81410

App Store 已上架项目打开瞬闪问题

收到问题反馈之后,使用手上测试机测试,iPhone11 iOS15.5 和 iPhone12 iOS15.0 均没有复现问题。...App 安装版本限制是 iOS13 及以上版本。 怀疑一: 是项目中引入的音频动态库版本太老不兼容导致。 检查之后发现虽然和最新版本差了2个小版本,并且文档没有更新提示相关兼容性问题。...排除怀疑。 怀疑二: 系统 Api 在 iOS15.0 以下版本不兼容 。 如果是系统 Api 不兼容,不管是直接在 App store 下载安装,还是直接编译到手机,都会有问题。...联机调试 手机连接电脑,直接编译到手机。App 正常使用,没有闪退问题 2. Crashes Xcode 的 Crashes 也没有收到任何崩溃信息。 3....升级 Xcode 申请使用备用电脑,进行 Xcode 升级,项目打包上架。在 Xcode 升级到 13.4.1 后打包上架的项目,闪退的问题消失。 - EOF -

86610

IM通讯协议专题学习(九):手把手教你如何在iOS上从零使用Protobuf

1、引言----接上篇《金蝶随手记团队的Protobuf应用实践(原理篇)》,本文将以iOS端的Objective-C代码为例,图文并茂地向您菔救绾卧趇OS工程快速使用Protobuf,希望对你帮助...iOS上从零使用Protobuf》(* 本文)另外:如果您还打算系统地学习IM开发,建议阅读《新手入门一篇就够:从零开发移动端IM》。...运行下面脚本进行编译:$ ..../configure$ make$ makeinstall检查protobuf是否安装成功:$ protoc --version如果成功打印版本号则安装成功:libprotoc 3.5.15、在 iOS...现在把ProtocolBuffers目录下所有文件以及上面编译出来的 Person.pbobjc.h 和 Person.pbobjc.m 都引入到工程

83510

试用Xcode构建iOS PDF阅读器

在本博客,我们使用Xcode14.0.1来演示示例图片目前暂不支持在苹果Silicon系列上运行模拟器对于早期版本的Xcode(如Xcode 13),默认情况下可能会打开Bitcode选项,因此需要关闭才能进行运行...使用快捷键"Command_B"编译项目。如果没有报错,说明配置正确,您可以继续进行下一步。如果报告了一些错误,您需要检查错误的原因。...如果文件路径包含特殊字符,您的NSURL将会为nil。请使用以下代码进行处理。...首先,请检查是否禁用了位码(bitcode)。在较旧的Xcode版本(如Xcode 13,默认情况下可能启用了位码选项。为了运行应用程序,需要将其设置为“否”。...PDF无法展示请检查我们传入的路径是否需要特殊编码,或者我们传入的本地路径是否存在 其他问题如果在集成我们的ComPDFKit PDF SDK for iOS时遇到其他问题,请随时联系ComPDFKit

39930

If love, deep love:10 Most Useful iOS Libs

SSToolkit一些基础的类包括SSCollectionView,SSGradientView 从UI部件到便利的Foundation类别都经过精心设计并记录在案,帮助开发者解决一些普遍问题,比如追踪一款设备是否视网膜显示屏或者是否能剪裁图片...JSONKit能在运行的情况下与libz.dylib自动连接而无须人工连接 在解析期间,如果检测到gzip文件,JSONKit能自动解压 速度超快,支持之前的iOS版本(但要注意一点,从iOS 5开始...,iOS就已经本地JSON解析工具了) JSONKit的性能远优于JSON-Framework(即SBJSON),JSONKit使用起来也非常简单,表现性能比苹果iOS 5.0的NSJSONSerialization...降低JSON/XML的处理的资源消耗,支持通过SBJSON和YAJL进行JSON解析 当你的应用需要与一个REST远程API整合的时候,RestKit就会派上用场,帮你减少工作量(教程指导)。...支持HTTP请求和基于REST的网络服务(包括GET、POST、 PUT、DELETE等) 支持ARC 要求iOS 5.0及以上版本 一些插件扩展已有的功能,还有一个功能齐全的API 从URL获取JSON

64720

创建一个苹果小程序 App Clip 你该知道哪些事

前言 在 Xcode 工程,你可以为你的 App 添加一个 app clip target, 利用 Xcode ,app clip 可以与你的 app 共享代码与资源,并可以编译,调试,运行在真机或者模拟器环境...但是,在实际使用过程,开发者必须在自己的服务器上做好验证 app clip 的有效性的措施。...clip 编写代码逻辑和添加 asset 与正常开发 iOS App 没有什么区别,但是为了工程的可维护性,App clip 与完整的 App 应该尽可能多的分享代码: •如果你创建了一个新的 app,...并且带有 app clip 功能, 那么开发请遵循基于代码模块化的准则,例如, 创建重复使用的组件。...•如果为现有的 app 添加 app clip,建议先花点时间将代码重构为模块化,与 app clip 共享,避免代码重复•在完整的 App 与 app clip ,Assets 可以共享 使用 Active

54510
领券