当前位置:首页 > 生活常识 > 正文

iOS开发常见问题

摘要: iOS开发常见问题最佳答案53678位专家为你答疑解惑iOS开发常见问题-CocoaPodsCocoaPods1.先升级Gems...

iOS开发常见问题

最佳答案 53678位专家为你答疑解惑

iOS开发常见问题-CocoaPods

CocoaPods
1.先升级Gem    sudo gem update --system2.切换cocoapods的数据源    【先删除,再添加,查看】    gem sources --remove https://rubygems.org/    gem sources -a https://ruby.taobao.org/    gem sources -l3.安装cocoapods    sudo gem install cocoapods    或者(如10.11系统)sudo gem install -n /usr/local/bin cocoapods4.将Podspec文件托管地址从github切换到国内的oschina    【先删除,再添加,再更新】    pod repo remove master    pod repo add master http://git.oschina.net/akuandev/Specs.git    pod repo add master https://gitcafe.com/akuandev/Specs.git    pod repo update5.设置pod仓库    pod setup6.测试    【如果有版本号,则说明已经安装成功】    pod --version7.利用cocoapods来安装第三方框架    01 进入要安装框架的项目的.xcodeproj同级文件夹    02 在该文件夹中新建一个文件podfile    03 在文件中告诉cocoapods需要安装的框架信息        a.该框架支持的平台        b.适用的iOS版本        c.框架的名称        d.框架的版本8.安装pod install --no-repo-updatepod update --no-repo-update9.说明platform :ios, '8.0' 用来设置所有第三方库所支持的iOS最低版本pod 'SDWebImage','~>2.6' 设置框架的名称和版本号版本号的规则:'>1.0'    可以安装任何高于1.0的版本'>=1.0'   可以安装任何高于或等于1.0的版本'<1.0'    任何低于1.0的版本'<=1.0'   任何低于或等于1.0的版本'~>0.1'   任何高于或等于0.1的版本,但是不包含高于1.0的版本'~>0'     任何版本,相当于不指定版本,默认采用最新版本号10.使用pod install命令安装框架后的大致过程:   01 分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。   02 下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。   03 生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。   04 整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。

ios技术分享|iOS 发布 framework 到 Cocoapods 以及常见问题

前言

CocoaPods 是一个用来管理 Xcode 依赖库的项目,通过 CocoaPods,我们可以直观集中和 自动化地管理我们项目的第三方库。

本篇文章讲述如何将 framework 发布到 Cocoapods 以及发布中遇到的常见问题。

注册 CocoaPods 的 Trunk 服务

执行完以下命令,去邮箱点击 Trunk 验证链接。
$ pod trunk register yourEmail 'your name' --verbose

example:

pod trunk register anyrtc@dync.cc 'anyrtc' --verbose

查询注册信息。
$ pod trunk me

Cocoapods 发布

常见的CocoaPods 发布使用 Github 上的 git 方式,然而 spec.source 支持 git, hg, bzr, svn and HTTP。日常开发推荐使用 git 方式。

git 方式

  spec.source={ :git=> "https://github.com/anyrtc/xxx.git",                      :tag=> "#{spec.version}",                     :submodules=> true }
创建工程

从 Github 上将刚创建的项目 clone 下来,使用终端进入根目录,创建

pod spec create xxx

修改配置文件

配置文件如何修改?详见 Cocoapods guides

spec 配置,前往 CocoaPods ,可查询所有 Cocopoads 上库的相关信息

提交到 Github 仓库,目录如下:

git add .git commit -m “commit message”git push -u origin master
生成tag并推送,对应spec.source。
$ git tag '1.0.0'$ git push --tags$ git push origin master$ pod spec lint --allow-warnings(详细 pod spec lint xxx.podspec --verbose)pod trunk push或pod trunk push xxx.podspec或pod trunk push xxx.podspec --allow-warnings

http 方式

  spec.source={ :http=> 'https://anyrtc.com/ios/xxx.zip'}

创建修改 spec 配置文件,直接 pod trunk push

Cocoapods 发布常见问题

pod trunk push 时出现如下错误:
[!] Source code for your Pod was not accessible to CocoaPods Trunk. Is it a private repo or behind a username/password on http?

造成这个错误的可能很多,CocoaPods issues

如果使用 spec.source 使用 http 方式导致上述错误,可能是 http 地址验证失败或添加防盗链导致,地址使用http 或 https 均可 。

pod trunk push 时出现如下错误:
[!] The spec did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).

解决方法:

解决警告或者直接忽略

$ pod trunk push xxx.podspec --allow-warnings
pod search xxx 时出现如下错误:
[!] Unable to find a pod with name, author, summary, or description matching `xxx`

解决方法:

$ rm ~/Library/Caches/CocoaPods/search_index.json$ pod update
pod trunk push 时出现如下错误:
[!] Validating podspec -> xxx    - ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://github.com/ /var/folders/y7/n65v0jv56m1_7cnw2_rgkw_40000gn/T/d20200730-14094-1fdff6i --template=--single-branch --depth 1 --branch 4.0.1Cloning into '/var/folders/y7/n65v0jv56m1_7cnw2_rgkw_40000gn/T/d20200730-14094-1fdff6i'...error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60fatal: The remote end hung up unexpectedlyfatal: early EOFfatal: unpack-objects failed) during validation.[!] The spec did not pass validation, due to 1 error.

解决方法:

网上查询都是说打tag,重复几次均无效,暴力解决 -> 删除远程仓库重新提交 -> 成功。

pod trunk push 时出现如下错误:
[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.

解决方法:

① 查询注册信息

$ pod trunk me

② pod trunk register 邮箱 名字

$ pod trunk register xxx@dync.cc yusheng

③ 查收邮件,点击邮件链接,重新提交即可。

发表评论