iOS开发工作中遇到的问题记录

1. pod search xxx提示找不到

hechao@hechaodeMacBook-Pro CassECommerce % pod search HCClangTrace
Setup completed
Creating search index for spec repo 'CassPrivatePods'.. Done!
[!] Unable to find a pod with name, author, summary, or description matching `HCClangTrace`

[!] Skipping `yoga` because the podspec contains errors.
hechao@hechaodeMacBook-Pro CassECommerce % pod search HCClangTrace -source https://github.com/CocoaPods/Specs.git
Setup completed
[!] Unable to find a pod with name, author, summary, or description matching `HCClangTrace \-source https://github\.com/CocoaPods/Specs\.git`

我这里是自己创建的pod库推送到了官方的Specs仓库,结果本地search搜多不到

  1. 确定是否正确的推送到了远端
    直接去Specs里搜索你的库名称


    图片.png
  1. 确定已经推送到远端了,那么可能就是本地的search缓存比较旧,在终端依次执行:

cd ~/Library/Caches/CocoaPods

rm search_index.json

pod search xxxx

  1. 如果还是提示找不到
    去本机的Specs目录下看看


    图片.png

发现官方远端的Specs/e/3/d/目录下有我们的库,但是本地没有;这时候则需要更新Specs了,执行:

pod repo update --verbose
执行成功后发现本地已经有我们的库了


图片.png

这个时候再执行rm search_index.json此时再search就可以啦

图片.png

2.pod install 失败

Couldn't connect to server, retries: 1
[!] CDN: trunk Repo update failed -
CDN: trunk URL couldn't be downloaded:

终端执行pod repo查看本地的repo列表发现有个CDN的名叫trunk
1.pod repo remove trunk删除CDN源
2.添加 source 'https://github.com/CocoaPods/Specs.git' 到你的工程的Podfile文件头部

3.安装app到真机调试提示App Install Failed

There was an error communicating with your device
解决方法:

  • Unpair Device,在Xcode--Window--Devices and Simulators菜单


    图片.png
  • 清理工程 comond + k
  • 断开手机跟USB线的连接,重启手机
  • 重启Xcode
    然后在重新run,应该就解决了

4.pod库本地校验没问题推到私有仓库报错

本地执行pod lib lint MyPrivatePods xxx.podspec --allow-warnings --verbose显示验证通过
但是在推送到远端的时候就报错,发现代码使用的是旧的代码[已经修复的报错结果还是报错],没有获取到修改之后的最新的代码;这个时候猜测是缓存的问题导致的;也可以通过日志看到确实是从本地的缓存去拷贝的代码

 > Copying ECFileLog from `/Users/hechao/Library/Caches/CocoaPods/Pods/External/ECFileLog/1fd1b83811b92e5d2e3e45cdc7ee34b1-af8a5` to
  `../../../../../private/var/folders/r0/4tb84bbj15j3kbzrnk8hqdwm0000gn/T/CocoaPods-Lint-20200513-61623-tmljx7-ECFileLog/Pods/ECFileLog`
  • 进入到cocoapod的本地代码缓存cd ~/Library/Caches/CocoaPods/Pods/ 自己的私有仓库的代码则在该目录下的External/文件夹

    图片.png

  • 找到我们需要推送的库,删除掉缓存

  • 再次执行pod repo push MyPrivatePods xxx.podspec --allow-warnings --verbose看日志发现是重新去下载代码了,至此问题就解决了

5.The 'Pods-App' target has transitive dependencies that include statically linked binaries:

pod的demo能正常编译链接,但是本地lint的时候就报错了,提示如标题,pod库中依赖了静态库

  • 加上--use-libraries命令选项再次尝试校验通过了
    查看lint帮助文档可以看到该选项的作用
    --use-libraries Lint uses static libraries to install the spec

6.使用Transporter上传ipa包的时候卡在鉴权阶段,没有上传进度

这个是由于Transporter首次上传的时候需要下载大概一百多M的文件到~/Library/Caches/com.apple.amp.itmstransporter/所以很慢;这个时候可以去网上下载下来这个包,然后替换到该目录下
具体可参照:https://www.jianshu.com/p/dc92dc00db48

7.在pod install的时候卡在了Resolving dependencies of Podfile

一卡卡半天,加了--verbose也没有输出日志;没有去阅读cocoapods的源码了解Resolving dependencies of Podfile这个过程的实现。偶然间我将SDWebImage/WebP的集成注释掉发现就可以了
后来再次去集成SDWebImage/WebP的时候发现还是异常了:

Resolving dependencies of `Podfile`
[!] CocoaPods could not find compatible versions for pod "SDWebImage/Core":
  In snapshot (Podfile.lock):
    SDWebImage/Core (= 5.8.0)

  In Podfile:
    SDWebImage was resolved to 5.8.0, which depends on
      SDWebImage/Core (= 5.8.0)

    SDWebImage/WebP was resolved to 3.4, which depends on
      SDWebImage/Core (= 3.4)

果然是因为版本的问题,导致cocoapod在解析依赖的时候发现不匹配导致异常了;去SDWebImage的github上发现从5.0版本开始已经移除掉WebP的支持,改为使用插件的方式去支持了SDWebImageWebPCoder

所以这里有2种解决方案:

1. 使用5.0以下版本的SDWebImage
pod 'SDWebImage', '~> 4.0.0'
pod 'SDWebImage/WebP'
2. 使用5.0及以上的版本,但是不通过SDWebImage/WebP的方式集成WebP,而是使用SDWebImageWebPCoder的方式
pod 'SDWebImage', '~> 5.0.0'
pod 'SDWebImageWebPCoder'

8.Xcode如何修改copyright的组织信息

有时候我们写错了版权的组织,或者想修改源代码的版权的组织信息,搜索Xcode的Build Setteing也没发现提供这个配置去修改

针对已有的源代码文件
搜索组织名,然后全局替换成要修改的组织名

图片.png

修改全局的配置
上面进行替换是针对已有的文件的操作,那么新建的文件如果不修改配置的话,那就还是错的。此时我们需要将我们的工程文件xxx.xcodeproj -- 显示包内容 -- 以文本的方式打开project.pbxproj文件,然后搜索旧的组织名或者直接搜索ORGANIZATIONNAME就可以找到对应的配置了;然后修改这个配置的值保存即可

图片.png

9. pod install 某个库尝试多次无果

有时候install多次,要么就是卡半天失败;要么就是被墙拉不下来(比如libwebp库)

针对需要翻墙的库

  • 搞个梯子
  • 找群友或同事要库的包文件以及spec配置文件

源码的目录~/Library/Caches/CocoaPods/Pods/Release
spec配置文件目录~/Library/Caches/CocoaPods/Pods/Specs/Release

默认情况下,发布在cocoapods官方的源都是缓存在Release目录下,如果没有还可以去External目录去找找

拿到源码包以及spec配置包之后,放到对应的位置就好了

图片.png
图片.png

针对多次拉取代码都失败的

  • 切换4G切换Wifi试试
  • 上面的方法屡试不爽,找别人拿到压缩包放到对应位置即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343