日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CocoaPods更新遇redefinition问题及其它问题汇总

發(fā)布時(shí)間:2024/9/30 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CocoaPods更新遇redefinition问题及其它问题汇总 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近下載了網(wǎng)上的一份開源代碼,pod更新時(shí)出錯(cuò),根據(jù)網(wǎng)上別人的解答是項(xiàng)目太新用了Xcode7與iOS9 SDK,需要對CocoaPods進(jìn)行了升級(jí),沒想到這一升級(jí)造成了一系列的問題,費(fèi)了老鼻子勁才把這些問題都一一解決,就在這里記錄一下吧,希望對需要的人有所幫助。

1、問題環(huán)境

升級(jí)時(shí)所使用的命令為:

gem install cocoapods

升級(jí)后用"pod --version"查看版本號(hào)是0.39.0,升級(jí)前的版本我沒記錯(cuò)的話應(yīng)該是0.37.2.

2、Redefinition問題

升級(jí)后遇到的最大的問題就是這個(gè)Redefinition問題了,具體情況是我的工作項(xiàng)目中需要增加一個(gè)新的pod引用,pod update后編譯報(bào)出一大堆Redefinition問題,涉及到AFNetworking,SDWebImage等常用庫,而以前都好好的,百思不得其解。

"Redefinition of module X" errors in 0.38.1 · Issue #3886 · CocoaPods/CocoaPods?這個(gè)Github issue提到了這個(gè)問題,但我并不得要領(lǐng)。

為了這個(gè)問題我把Pods文件夾、Podfild.lock文件刪除重新更新,甚至把CocoaPods降級(jí)到0.38.2以及0.37.2版本都沒有解決,然后這個(gè)過程中又遇到了其它的問題,問題怎么解決的后面再說。

靜下心來再查看這個(gè)問題,發(fā)現(xiàn)錯(cuò)誤日志里還是提供了一些關(guān)鍵要素,能顯示重復(fù)定義在哪里。因?yàn)槲乙话闱闆r下都是看默認(rèn)顯示在Xcode左側(cè)欄里的錯(cuò)誤日志列表就解決,很少展開日志詳細(xì)信息。這次的關(guān)鍵要素就是在日志詳細(xì)信息中,然后就發(fā)現(xiàn)了一些規(guī)律:以AFNetworking為例,我在pch文件中是這樣引用的:#import \<AFNetworking/AFNetworking.h\>,然后在其它文件也做了這樣的引用:#import "AFNetworking.h"。這兩個(gè)引用同時(shí)存在就造成了Redefinition,去掉后者的引用方式就可以解決AFNetworking的Redefinition問題了。

正常情況下肯定是用尖括號(hào)那種引用方式,但是由于歷史原因,項(xiàng)目中使用后者那種引用方式也有不少,以前也從來沒出問題,不知道現(xiàn)在為什么一下子就全部暴露出來了。這一改就要改不少,沒辦法就只能一個(gè)一個(gè)改了。

后記:根據(jù)最新回復(fù),是必須得使用#import <AFNetworking/AFNetworking.h>這種形式的頭文件引用了,應(yīng)該是檢查更嚴(yán)格了。

3、undefined method `project’ for #<Pod::Installer問題

舊版本的Podfile在升級(jí)Cocoapods后pod install就會(huì)遇到這個(gè)問題,根據(jù)這篇文章,是因?yàn)镃ocoapods升級(jí)到0.38或0.39版本后installer_representation.project.targets.each中的project改名了,變成了pods_project,好在給了一個(gè)0.37——0.39都通用的辦法,比如原來的Podfile是:

platform :ios, '7.0'pod 'Reveal-iOS-SDK', :configurations => ['Debug'] post_install do |installer_representation|installer_representation.project.targets.each do |target|target.build_configurations.each do |config|config.build_settings['ARCHS'] = 'armv7 arm64'config.build_settings['VALID_ARCHS'] = 'armv7 arm64'config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'endend end

升級(jí)后就要改成:

platform :ios, '7.0'pod 'Reveal-iOS-SDK', :configurations => ['Debug']if defined? installer_representation.projectpost_install do |installer_representation|installer_representation.project.targets.each do |target|target.build_configurations.each do |config|config.build_settings['ARCHS'] = 'armv7 arm64'config.build_settings['VALID_ARCHS'] = 'armv7 arm64'config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'endendend endif defined? installer_representation.pods_projectpost_install do |installer_representation|installer_representation.pods_project.targets.each do |target|target.build_configurations.each do |config|config.build_settings['ARCHS'] = 'armv7 arm64'config.build_settings['VALID_ARCHS'] = 'armv7 arm64'config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'endendend end

4、DVTAssertions: ASSERTION FAILURE問題

這是CocoaPods降級(jí)到0.37.2后pod install遇到的問題,記憶中當(dāng)初好像就是因?yàn)檫@個(gè)問題而升級(jí)到0.39.0版本的。

具體的錯(cuò)誤詳情如下:

[MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-8227/IDEFoundation/Initialization/IDEInitialization.m:590 Details: Assertion failed: _initializationCompletedSuccessfully Function: BOOL IDEIsInitializedForUserInteraction() Thread: {number = 1, name = main} Hints: None Backtrace: 0 0x000000010462aa5c -DVTAssertionHandler handleFailureInFunction:fileName:lineNumber:assertionSignature:messageFormat:arguments: 1 0x000000010462a1e9 _DVTAssertionHandler (in DVTFoundation) 2 0x000000010462a455 _DVTAssertionFailureHandler (in DVTFoundation) 3 0x000000010462a3b7 _DVTAssertionFailureHandler (in DVTFoundation) 4 0x0000000107191f5c IDEIsInitializedForUserInteraction (in IDEFoundation) 5 0x0000000109da8eb9 +PBXProject projectWithFile:errorHandler:readOnly: 6 0x0000000109daaa3e +PBXProject projectWithFile:errorHandler: 7 0x00007fff8bc68f44 ffi_call_unix64 (in libffi.dylib) Abort trap: 6

網(wǎng)上大部分的帖子都說升級(jí)CocoaPods,比如這個(gè)帖子,然而具體問題具體分析好不好,我這個(gè)是降級(jí)時(shí)遇到的問題。

這個(gè)問題應(yīng)該就是與Xcode版本有關(guān)了,實(shí)際就是與Developer的路徑有關(guān)。我的Mac上同時(shí)存在有Xcode6.1.1版本與Xcode7.0版本,后者是默認(rèn)的Xcode版本。

當(dāng)CocoaPods為0.37.2版本時(shí),對應(yīng)的Developer路徑應(yīng)該是Xcode6.1.1版本的路徑,因?yàn)檫@個(gè)之前一直都配合使用好好的。那么,就需要用到xcode-select問題了。通過xcode-select -p命令可以查看當(dāng)前Developer路徑,用xcode-select -s可以指定新的Developer路徑。

我是這樣指定的:

xcode-select -s /Applications/Xcode6.1.1.app/Contents/Developer

然后這個(gè)問題就不復(fù)存在了。注意當(dāng)有必要使用CocoaPods 0.39.0版本時(shí),必須得切換回來,要不然還是會(huì)遇到這個(gè)問題

5、CocoaPods多版本共存問題

本來我是想降級(jí)的,結(jié)果CocoaPods好像默認(rèn)就是多版本共存了,比如我原來本來是0.37.2版本,用了本文開頭的升級(jí)命令升級(jí)后,雖然用pod --version看是0.39.0版本,但是0.37.2版本并沒有刪除。這個(gè)可以用下面的命令查看:

gem list --local | grep cocoapods

如果你的只有一個(gè)版本,你可以再安裝一個(gè)CocoaPods 0.38.2版本或者其它版本試試。比如安裝0.38.2版本的命令就是:

sudo gem install cocoapods -v 0.38.2

說是共存了,但到底是怎么共存使用呢?就比如說我的CocoaPods默認(rèn)版本是0.39.0,有一個(gè)項(xiàng)目要用0.37.2版本的CocoaPods該怎么用呢?

這里有人提供了這樣的一個(gè)方法,但我沒有細(xì)研究,也沒實(shí)踐,需要用到rbenv:

rbenv global 2.1.0 gem install cocoapods -v 0.34.4 rbenv global 2.0.0-p0 gem install cocoapods -v 0.33.1

最后是使用這篇文章里的方法解決了:使用Bundle管理Cocoapods版本——關(guān)鍵要點(diǎn):在Rails開發(fā)中,可以用Bundle進(jìn)行Gem管理,而Cocoapods本身就是一個(gè)Gem,那么也就能用Bundle來管理Cocoapods。

步驟:

  • 在項(xiàng)目根目錄下創(chuàng)建Gemfile,指定CocoaPods版本
gem 'cocoapods', '~> 0.37.2'
  • 執(zhí)行bundle install命令

總結(jié)

以上是生活随笔為你收集整理的CocoaPods更新遇redefinition问题及其它问题汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久叉 | 国产精品三级久久久久久电影 | 91人人视频 | 免费色网站 | 熟女精品一区二区三区 | 亚洲a∨无码无在线观看 | 欧美一级欧美三级在线观看 | 五级黄高潮片90分钟视频 | 不卡在线视频 | 在线免费看黄 | 91国内| 国产伦精品一区二区三区高清版 | 5月婷婷6月丁香 | 亚洲 欧美 自拍偷拍 | 欧美群妇大交乱 | 亚洲射图 | 美女被草网站 | 国产调教视频 | 久久高清精品 | 精品欧美一区二区三区免费观看 | 在线播放不卡 | av在线手机观看 | 黄网址在线 | 中国一级特黄真人毛片免费观看 | 亚洲国产精品女人 | 亚洲色图二区 | 国产精品第一页在线观看 | 成人av一区二区三区 | 特级大胆西西4444人体 | 黄色三级三级三级三级 | 无码久久精品国产亚洲av影片 | 欧美日韩一区在线观看 | 狠狠操在线 | 天堂网视频在线观看 | 国语播放老妇呻吟对白 | 亚洲av无码一区二区三区性色 | 亚洲不卡在线 | jizzjizzjizz亚洲女 | 国产精品香蕉在线观看 | 99re这里都是精品 | 动漫涩涩免费网站在线看 | 日韩av一区在线播放 | 九九人人| 成人爽a毛片一区二区 | 免费一级黄色 | 国产精品久久久久不卡 | 九九视频免费看 | 姐姐的朋友2在线 | 无码人妻精品一区二区三区66 | 男人的天堂在线播放 | 99re这里都是精品 | 222aaa| 一级h片| 丰满少妇在线观看网站 | 美女100%露胸无遮挡 | а中文在线天堂 | 三级小视频在线观看 | 国产亚洲一区二区在线 | 中国毛片在线观看 | 女仆裸体打屁屁羞羞免费 | 91美女片黄 | 精品999视频| 91精品国产高清一区二区三蜜臀 | 国产经典一区二区三区 | 欧美在线观看视频 | 久草视频这里只有精品 | 艹久久| 黄色小说在线观看视频 | 自拍偷拍精品视频 | 欧美挤奶吃奶水xxxxx | 黄色av网站网址 | 中文字幕亚洲一区二区三区五十路 | 黄色a∨| 天天狠天天插 | 日韩片在线观看 | 一区在线视频 | 日韩免费毛片 | 一区二区自拍 | 一级看片免费视频 | 欧美日韩91| 欧美一区二区三区免费在线观看 | 亚洲天堂精品在线观看 | 免费视频网站www | 美女在线观看视频 | 亚洲精品永久免费 | 自拍亚洲国产 | 97在线视频观看 | y11111少妇| 国产日韩在线一区 | 天天天天操 | 欧美男女交配 | 久久久国产精品一区二区三区 | 成年人性生活免费视频 | 精品成在人线av无码免费看 | 日本视频在线播放 | 羞羞网站在线观看 | 在线观看国产精品一区 | 一本一道久久a久久精品蜜桃 | 色综合视频在线观看 |