美文网首页
iOS开发工作中遇到的问题记录

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

作者: jayhe | 来源:发表于2020-05-02 08:36 被阅读0次

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试试
  • 上面的方法屡试不爽,找别人拿到压缩包放到对应位置即可

相关文章

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

    1. pod search xxx提示找不到 我这里是自己创建的pod库推送到了官方的Specs仓库,结果本地se...

  • 开发路上踏过的坑

    ——只灯片笺 此文记录的是笔者在实际iOS开发工作中遇到并解决的一些小细节问题,以此记录,持续更新,仅供参考。 G...

  • iOS14适配

    开发中遇到的问题, iOS14已经发布,记录一下开发中遇到的问题.不定时更新,欢迎大家评论补充. iOS14适配总...

  • IOS 生成证书

    第一次接触 IOS 开发,将遇到的问题做记录。 前提: 1、已经注册 IOS 开发者(付费) ...

  • Swift 开发问题集锦

    以下问题皆为平时开发中所遇到不知原因,最后解决的问题。记录后,以便后续发生此类问题快速定位: iOS开发一般遇到此...

  • iOS跳转到指定TabBar界面

    做iOS开发也有几年了,一直没有记录工作中遇到的开发问题.随着时间推移之前的一些方法和解决方案都已经忘记.打算用博...

  • iOS 开发中你是否遇到这些经验问题(二)

    iOS 开发中你是否遇到这些经验问题(二) iOS 开发中你是否遇到这些经验问题(二)

  • iOS 开发中你是否遇到这些经验问题

    iOS 开发中你是否遇到这些经验问题(二) iOS 开发中你是否遇到这些经验问题(二)

  • [程序员日记]iOS 开发中遇到的问题(其它篇)

    记录在iOS开发中遇到的问题。 (1)添加配置包 iOS10.3刚刚发布,但随之而来的问题就是要升级Xcode否则...

  • XCode 使用笔记

    本人iOS菜鸟一名,在使用iOS开发工具XCode过程遇到的问题在此进行记录。 安装CocoaPods 安装coc...

网友评论

      本文标题:iOS开发工作中遇到的问题记录

      本文链接:https://www.haomeiwen.com/subject/brbhghtx.html