美文网首页
No architectures to compile for

No architectures to compile for

作者: 黯魂粉玉 | 来源:发表于2020-12-09 17:05 被阅读0次

    编译的时候会报标题的错误,想直接看标题的解决方式,则从第四条看起!!!前提cocoapods安装成功哈~

    最近换了新电脑,系统为macOS Big Sur 11.0.1,Xcode版本为12.2,在安装完cocoapods以后,项目依然不能运行,因为尝试时间较久,遇到的问题较多,最终找到原因并解决,过程中遇到的一些问题也做下记录,方便以后自己参考,并深深的记住这次费时如此之久,靠着灵光一闪才解决的问题!!!因为是新电脑,所以可能需要从0说起,着急的可直接看后面第四条,仅供参考!!!

    一、准备工作

    1、安装ruby:一种简单快捷的面向对象(面向对象程序设计)的脚本语言。iMac电脑自带ruby,此步可省略
    查看ruby版本:ruby -v

    2、安装homebrew,一款软件包管理工具,拥有安装、卸载等功能,之所以安装他是因为第三步出现了问题,需要安装该软件,才可以继续,具体的错误和原因我也不记得了,该软件装了也并无坏处,以后也会用到的

    xcode命令行工具:xcode-select --install
    安装homebrew:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

    如果上面报错,则输入 git clone https://github.com/Homebrew/homebrew-core /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1

    如果继续报错
    fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
    则输入brew doctor 即可进行安装

    3、安装rvm,方便ruby环境进行管理,如升级或更换版本

    curl -L get.rvm.io | bash -s stable
    source ~/.bashrc
    source ~/.bash_profile

    以上安装失败,报如下错:
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 194 100 194 0 0 162 0 0:00:01 0:00:01 --:--:-- 162
    0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
    curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused

    解决方法:先修改下host,再进行网络请求
    sudo vim /etc/hosts
    在打开的文件中添加:199.232.28.133 raw.githubusercontent.com
    再使用命令:curl -L get.rvm.io | bash -s stable

    rvm的其他命令行:
    查看rvm版本:rvm -v
    卸载rvm:rvm implode
    设置ruby的默认版本:rvm use 2.6.3 --default
    列出ruby可安装的版本信息:rvm list known
    安装某个版本的ruby:rvm install 2.6.3
    

    二、更换ruby源

    查看当前ruby源:gem sources -l
    如果没有源或是.org的源,则需要更换
    先移除之前的源:gem sources --remove https://rubygems.org/
    添加新的源:gem sources --add https://gems.ruby-china.com/

    成功的话会显示如下内容:


    ruby源

    三、安装cocoapods

    1、10.11系统以后基本上都用该命令行安装cocoapods:sudo gem install -n /usr/local/bin cocoapods
    这一步完成后执行:pod setup
    这一步本身需要很长时间,因为需要进行下载各库,但我这里这一步分分钟就好了,所以我怀疑没安装上
    检查是否安装上了:pod repo
    若里面有内容则代表安装上了,返回0 repos则没安装上

    image.png
    也可以进入 ~/.cocoapods 文件查看repos中的文件里是否都有内容
    image.png
    如果是空的,代表库没有下载下来
    解决方法:
    1、安装本地的
    (1)将https://github.com/CocoaPods/Specs下载到本地,放入repos文件夹,但好像需要进行关联,自行查询吧,我这里网不成,就没搞
    (2)从原来项目中拷贝下来放到repos文件夹中(我采用的该方法)
    (3)使用国内源安装到本地
    a、git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
    b、git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
    c、git clone git@github.com:CocoaPods/Specs.git

    安装过程中出现了该错误,所以我用c的方法进行了安装
    Warning: Permanently added 'gitee.com,120.55.226.24' (ECDSA) to the list of known hosts
    公钥出问题了,所以重新生成公钥
    git config --global user.name "用户名"
    git config --global user.email "邮箱"
    搜索~/.ssh,删除其文件夹下的known_hosts文件
    ssh-keygen -t rsa -C "邮箱"
    然后应该再按下回车,会生成两个文件,用记事本打开id_rsa.pub,复制里面的内容,再打开GitHub官网,登录自己的账号,在setting里有个ssh and gpg keys ,创建ssh,将内容添加进去,再进行clone就可以了

    以上方法我都试过,相对来说c方法比较麻烦,但因为bug一直有,我一直处于删除,重装,删除,重装的状态,但我的网又不好,所以就直接使用本地的了
    如果出现了以下情况,代表网不好。。。换种方式吧


    image.png

    四、创建podfile文件,即标题中问题的最终解决方式

    1、如果是已有Podfile文件的话,需要删除,删除的地方有三个,缺一不可
    (1)这四个文件先要删除


    需要删除的1.png

    (2)打开.xcodeproj,删除pod


    需要删除的2

    (3)target中的general中删除对应的pod库


    需要删除的3

    2、删除了以上内容后,重新创建podfile文件
    文件路径:cd 项目路径
    创建Podfile : touch Podfile
    编辑Podfile : vi Podfile 注意:上面的源用的哪个,该文件中的第一行就用哪个源
    编辑完成后退出 : :wq
    安装Podfile : pod install

    3、安装成功后,运行项目发现还是错的,此时最关键的一步来了
    如图的路径下


    路径

    添加如下内容 VALID_ARCHS x86_64


    image.png

    然后再在这个路径下,同样的添加VALID_ARCHS

    image.png

    最后清空再运行,搞定!!!这时候项目就运行成功了,其实这是新的系统,新的xcode出现的一个不兼容的问题,涉及的是处理器的指令集不兼容的问题,新的xcode支持了x86_64,但pod库中有些内容不支持,所以编译时会一直报这个错误,关于指令集可以自行查阅了解

    注意:此解决方式只针对于macOS Big Sur 11.0.1,Xcode版本为12.2的模拟器运行不成功的问题,真机测试时需要将添加的两处valid_archs删除掉,否则会报没有权限的错误,如下图,所以真机和模拟器运行时还需修改该处进行切换

    image.png

    注意:如果改了以后不起作用,就用万能大法:重启,模拟器重启,xcode重启,电脑重启,哪个管用了就用哪个

    因为这个而引发出来的后面的各种错误:

    image.png image.png

    或者是framework not found Pods_
    或者是afnetworking.h not find之类的,反正意思基本就是pods没有安装上

    以上是我这里遇到的问题,仅供参考,如果有更好的解决办法,可一起探索,欢迎来提出更好的解决方式!!!

    相关文章

      网友评论

          本文标题:No architectures to compile for

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