admin管理员组

文章数量:1655506

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希望未来技术之巅上有你们也有我。

前言

在iOS的开发中有些bug, 不是代码造成的都会归类到这里来

1.上存到蒲公英的app,该手机不能安装


两种可能:
1.该手机去。设置-通用-VPN与设备管理-点击该App的企业证书-点击信任

2.下载的测试app的profile文件里面没有包含该设备。要到开发者证书里面
2.1先添加设备的uuid

2.2到profile文件选择该设备

2.3重新生成profile文件下载双击安装(开发证书跟生产证书都需要重新配置)

2.4重新打包,上存都蒲公英都能够下载打开

1.1 无法验证App

使用XCode写进去App的时候XCode会报错

App的提示

然后我门可以去 iPhone的设置->通用->VPN与设备管理->找到app的开发证书天际进去,看到App需要验证

点击点击验证

点击验证之后,发现什么效果也没有,最后的解决办法很奇怪。

公司的同事自己开了VPN,然后使用热点链接,然后再次进去就发现验证通过了,非常奇怪

因为链接热点之后,手机测试过谷歌浏览器也无法访问的,手机应该是没有翻成功的

该手机是美版的手机

该手机同时也重新启动过

奇怪的是

我用另外一个同事的iPhone手机国行,没有重新启动的情况下,也是出现需要验证的问题。然后用同事的VPN开热点链接同事的iPhone的手机,结果发现验证通过了

证明开VPN,热点链接就可以解决这个问题

2.iOS Xcode 提示Unable to install “XXXX”


主要看红色框的内容:此应用程序的应用程序标识符授权与已安装的应用程序不匹配。这些值必须匹配才能允许升级。

这个原因是app在安装到手机的过程中,会将entitlement里的信息拿出来进行一些验证。

我所遇到的case是测试机上安装了两个测试包,可能是其中一个测试包的应用标示和Xcode运行的项目中设置的标示不匹配,所以被苹果系统给拦截了。

解决方案就是删掉测试机上所有的测试包,重新运行就可以了。

3.运行项目,第三方文件缺失

2022.06.02接手别人的项目,从阿里云库上面拉去代码下来发现,运行第三方库缺失导致代码无法运行。


打开终端,cd到根目录,pod install

2022.12.05 换成公司的电脑再次遇到这个问题,那时候公司已经搬迁,网络超级差,如果网络差的情况下加入有另外一台电脑的项目是能正常运行的,我们可以把正常运行的项目的 Target Support Files文件进行替换就好,重新运行就好。

4.如何检测App是否安装(审核失败)

OC Extension 检测手机是否安装某个App(源码)

5.App打包报错

remark: Incremental compilation has been disabled: it is not compatible with whole module optimization
Command CompileSwiftSources failed with a nonzero exit code

修改办法:修改Podfile文件的版本号

6.项目文件重复的问题

接手上一个人运行项目的时候在代码库把代码下载下看运行出现一个bug,然后我去项目里面看看它的文件,好在还有一个能运行的项目,对比一下文件的内容发现,项目文件多了几个。把它删除掉就修好了。

正常能运行的项目文件。

有问题的项目文件

删除多余的文件就能运行成功。

原因是跟项目里的专门存储图片的问题图片发生冲突。

7.把Xcode的代码跑到iphone手机,启动页面出来,需要等1分钟才进去首页。

Launching “Frame” is taking longer than expected. Do you want to continue to wait?
“框架”的发布时间比预期的要长。您想继续等待吗?

LLDB is likely reading from device memory to resolve symbols.
LLDB可能从设备内存中读取来解析符号。

造成这个问题试过两次:
1.Xcode升级,然后iphone也跟着升级,就会出现这个问题(2020年的时候)
2.深使用下面的软件度清理XCode的垃圾的时候出现

产生这个问题的原因是:个人估计是把 iOS DeviceSupport 文件里面的iphone模拟器的SDK驱动删除了,然后重新下载下来的跟当前iPhone的版本有差异造成的。

解决办法:本人试过两次都能解决问题。

1.删除~/Library/Developer/Xcode/iOS DeviceSupport/该目录下,所有文件夹



2.选择Xcode --> Window–>Devices and Simulators,找到真机设备,鼠标右键选择unpair the device


3.然后重新数据线连接手机,会自动下载对应版本的SDK下来。这个时候不要急着把XCode的代码写到手机里面,就算你点击运行都会提示你。is busy。


相当于第一次数据跟电脑连接,需要等待一段时间,后才能够把代码写进去。

最后,尝试第一次之后还是卡的,然后我有上网搜索还是这个教程,如是我重复是多次 之后就成功了,可能要重复尝试多次的。

8.File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

Linker command failed with exit code 1 (use -v to see invocation)

造成这个原因是因为: Xcode 命令行工具安装有问题,它是安装在Xcode里面

其实这个bug只是缺了一些文件而已.只要把缺少的文件拖进去就好了.首先看到下面的图片就是缺该文件.

当时有问题的文件图片

把文件拖过去就可以了.

9.APP第一次安装显示isBusy

10.更新启动图没有效果


1.删除App重新写进去
2.清空缓存

3.重启XCode
4.重点 重启手机

11.无法访问网络 Could not connect to the server.

Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSLocalizedDescription=Could not connect to the server., NSUnderlyingError=0x282097690 {Error Domain=NSOSStatusErrorDomain Code=-1004 "(null)"}}
flutter: BetterPlayerEvent=exception parameters=exception:Failed to load video: Could not connect to the server.,
[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Failed to load video: Could not connect to the server., null, null)

XCode没有修改任何代码,也没有设置任何东西,昨天晚上能运行的,今天回来运行项目就报错了.
原因是,昨天网上的测试手机给了测试员去测试,他需要链接库客5G的wifi去链接自己电脑的青花瓷,爬接口,设置了本地网络的代理造成了这个原因.

链接另外一个正常的Wi-Fi就解决问题了.

12.打包出错


You do not have required contracts to perform an operation (403)
您没有执行操作所需的合同 (403)

这个问题在网上查过定位过问题:大概意思就是苹果账号的上架协议有更新,需要账户持有人登录苹果开发者官网点击进去协议拉到底部点击同意协议才能打包上架

可惜我不是账户持有人,没有权限看到这个页面无法截图,以前我是账户持有人也遇到过类似的情况,上去开发者网站就能看到有提示点击进去协议,拖到最下面打勾同意就好了.

下面图片是我在网站上面搜索到类似的答案

下面图片看到我没有这方面的操作权限

然后登录公司分发给我的开发者网站会看到下面的图片有提示

反正让账户持有者勾选一下就解决了

13. SDK 版本问题

SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a'; try increasing the minimum deployment target

修改方法

或者在下面这里修改

14.Command CompileAssetCatalog failed with a nonzero exit code

这个问题,我还是没有切底根治过, 只能来一次,按照下面的操作搞一次.
可能在不同的Demol用同一个boundleID有关,导致DerivedData数据出错

处理方法:
1.试过成功清空 Clean Builder Folder, 清空 Clean All issues

2.试过成功网上有人解析过是(Assets.xcassets)图片文件夹出问题了,需要把里面的图片全部拖出来,然后一个一个重新拖进去运行,知道全部拖进去为止,这个看运气,我试过慢慢一个一个拖进去成功写进手机.

3.试过成功网上解决办法: https://stackoverflow/questions/52489500/command-compileassetcatalog-failed-with-a-nonzero-exit-code

I managed to resolve this by doing a “build clean”, removing “DerivedData” folder and re-starting my Mac.(我设法通过执行“构建清理”、删除“DerivedData”文件夹并重新启动我的 Mac 来解决此问题)

~/Library/Developer/Xcode/DerivedData

15. xcode15 造成 Alamofire 无法写入沙盒

`Sandbox: rsync.samba(14000) deny(1) file-write-create /Users/admin/Library/Developer/Xcode/DerivedData/celebrate-hhtieciuuzgostgkqsbzlhikxzvq/Build/Products/Debug-iphonesimulator/celebrate.app/Frameworks/Alamofire.framework/Alamofire.bundle``


解决办法来自:https://forums.developer.apple/forums/thread/731041

16.第三方SDK增加最低部署目标

SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a'; try increasing the minimum deployment target

17.屏幕如何取消横屏

18.路径文件不存在 search path ‘/Users/chenxiansheng/Desktop/iOSDemol/iOSDemol/StaticLib’ not found

我之前导入了一个StaticLib的静态库,引入了路径进行使用,后台把StaticLib的静态库的文件删除了,然后编译项目就报错,就是下面图片红色方框的缺乏路径的问题


解决办法:

然后重新编译就没有问题了

19.XCode创建的项目无法写入iPhone

新创建的项目就算是新的BoundleID,也是无法写入,说已经达到上限,

原因可能是,新的项目复制粘贴其中一个项目,然后直接打开项目修改boundleID,这样只能限制3个项目写入同意部iphone,如果想查过3个就需要道开发者网站自己配置开发证书和profile文件,下载到自己的电脑保存才能够做到无限个。初步找到原因,有待验证

本文标签: 报错错误代码iosBug