记录一次接手被废弃的iOS项目到项目再次起飞Build Successed的过程

最近接手了一个因为各种原因项目被废弃了,但是又想再则启动起来的项目。基本的情况就是原先的开发人员已经全部联系不上了,然后就连苹果电脑的开机密码也找不到了,而且开机密码的提示都是“滚,不给密码”。现在有的就是复制在一台Windows上的代码,也不知道什么时候,也不知道什么情况的,然后给到了一份Zip的代码压缩包。解压之后,执行command + B,一下子就一堆错误,所以就希望负责人能再去电脑上找找,看看还能不能找到一份能正常编译通过的代码,但是努力很多番还是没找到,所以就只能让我硬着头皮上解决问题了,那么接下来就来讲述一下大致的解决过程:

一、首先执行pod update --no-repo-update。

由于项目依赖了很多第三方库,而代码又是复制挪动了很多次的,本地相关依赖环境肯定是发生了很大的变化,执行这个库的过程中发现升级了很多版本,应该就是时间久远了。

 ✘ xiaomifeng@xiaomifengMacBook-Pro  ~/xiaomifeng/xiaomifeng   master ±✚  pod update --no-repo-update
Update all pods
Analyzing dependencies
Downloading dependencies
Installing AFNetworking 3.2.1
Installing AMapFoundation-NO-IDFA 1.6.9 (was 1.6.3)
Installing AMapLocation-NO-IDFA 2.8.0 (was 2.6.5)
Installing AgoraRtcEngine_iOS 3.6.2 (was 3.5.0.2)
Installing AliyunOSSiOS 2.10.12 (was 2.10.8)
Installing HandyJSON 5.0.2 (was 5.0.1)
Installing HyphenateChat 3.8.1
Installing IQKeyboardManagerSwift 6.5.9 (was 6.5.5)
Installing JXPagingView 2.1.2 (was 2.0.13)
Installing JXSegmentedView 1.3.0 (was 1.0.6)
Installing JYUtils 0.3.3 (was 0.3.0)
Installing MBProgressHUD 1.1.0 (was 1.2.0)
Installing MJRefresh 3.7.5 (was 3.6.1)
Installing SDWebImage 5.12.3 (was 5.11.1)
Installing SJPageViewController 0.0.13 (was 0.0.10)
Installing SocketRocket 0.5.1
Installing TABAnimated 2.6.4 (was 2.6.0)
Installing TZImagePickerController 3.7.6 (was 3.3.2)
Installing UMAPM 1.5.6 (was 1.2.1)
Installing UMCCommon 7.3.6 (was 7.2.9)
Installing UMCPush 4.0.2 (was 3.3.1)
Installing UMDevice 2.2.1 (was 1.2.0)
Generating Pods project
Integrating client project
Pod installation complete! There are 44 dependencies from the Podfile and 48 total pods installed.

[!] Smart quotes were detected and ignored in your Podfile. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

[!] Unable to read the license file `LICENSE` for the spec `EaseCallKit (3.8.1.1)`

[!] Unable to read the license file `LICENSE` for the spec `EaseCallKit (3.8.1.1)`

执行之后立马就很多报错了,比如:
AFNetworking项目原来使用的3.2.1版本,而升级之后就成了4.0.1版本,那么就使用命令指定了3.2.1版本,然后再执行pod update --no-repo-update,这样AFN的报错就解决了。同理SocketRocket也指定成0.5.1版本,HyphenateChat也指定成3.8.1,再则编译pod库的报错全部解决。
说明:这里要说明一下Podfile.lock文件的使用,可以在执行pod命令前复制出一份来,然后打开这个文件就能看到原来项目依赖库的版本,不过万一没复制,那么执行命令之后的终端上面也会显示was什么版本,这个时候可以截图一份保留。

二、解决library not found for -lSocialWeChat的报错

对于这个报错,其实是很奇怪的,单纯去找这个lSocialWeChat库是找不到的,那么从这报错以及Podfile文件中可以看出“Social”那么就是社交相关的东西,然后在Podfile里果然是有这样的代码在:

    # 集成微信
    pod 'UMCShare/Social/ReducedWeChat'

既然是这样那说明问题可能就出现在这里,这个可能就是代码移动过程中有关信息或文件丢失了,这个时候我们先把这个库注释掉,就是下面这个样子:

    # 集成微信
    #pod 'UMCShare/Social/ReducedWeChat'

接着执行

pod update --no-repo-update

这样子相关的库就删除了一遍,然后再把库打开,又是下面这个样子:

    # 集成微信
    pod 'UMCShare/Social/ReducedWeChat'

接着再次执行

pod update --no-repo-update

经过这几番操作,再次编译代码library not found for -lSocialWeChat的报错已经解决了,虽然这个问题解决了,但是更多的问题还在虎视眈眈。

三、解决Undefined symbol:的报错

                       Undefined symbol: _Decoder_Interface_init 
                       Undefined symbol: _Decoder_Interface_Decode
                       Undefined symbol: _Decoder_Interface_exit
                       Undefined symbol: _Encoder_Interface_init
                       Undefined symbol: _Encoder_Interface_Encode
                       Undefined symbol: _Encoder_Interface_exit

这个问题也是很怪,不过从这代码报错中看出,说明的就是编码和解码,还有从xcode上面的提示上也看到是音频的解码和编码,然后再看应该就是使用到的环信第三方依赖的库没有了,那么这个时候就从网上找,竟然有些下载还要钱,不过这里我介绍一个github地址:https://github.com/Hockly/opencore-arm-iOS
直接从上面下载两个文件就可以了,分别是:

libopencore-amrnb.a
libopencore-amrwb.a

把这两个下载之后拖入项目中就成功解决这个问题了。

或者可以参考这两个博客:
https://www.cnblogs.com/gsjxin/p/14011878.html
https://developpaper.com/undefined-symbols-for-architecture-arm64/

四、解决Command PhaseScriptExecution failed with a nonzero exit code的报错

毫不夸张的说,这真是一个大问题,我个人完全没有概念,也是在搜索中学习的,这里要夸一下谷歌,经过多次搜索之后终于在一个油管上的视频给了我莫大的启发。油管地址:https://www.youtube.com/watch?v=L1OY9WKfQbQ,虽然这上面问题一样,但是内容不一样的。里面说到了一个命令:

chmod +x

chmod +x就是赋予用户文件的执行权限.
而Xcode的报错上面也有一个关键词:Permisson denied,并且从其中看看是哪个文件没有权限,按提示的目录路径,依次找到文件所在的文件夹路径,然后在终端中到达该路径,然后执行相关命令,比如我的就执行了:

chmod +x Pods-zixinhui-resources.sh
chmod +x Pods-zixinhui-frameworks.sh

执行了这两个命令之后,另外命令中chmod +x后的文件名是根据Permisson denied报错提示的文件填入的,执行完之后,再次执行command + B,经过漫长的等待,终于终于终于看到了那个两个令人兴奋的字眼:Build Successed!!!!!!!!!!!!!!!!!!!!!!!!

真是不容易啊!太不容易了,这个过程持续了一两天才最后解决了问题。

如果上面的分享帮助到你了,欢迎点赞收藏评论,特别是赞赏支持作者创作,感谢!

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

推荐阅读更多精彩内容