美文网首页iOS表格绘制iOS 常见问题
iOS开发运行报错:Command PhaseScriptExe

iOS开发运行报错:Command PhaseScriptExe

作者: 俺不是大佬儿 | 来源:发表于2023-10-27 00:25 被阅读0次

    今天用cocoapods新增了个第三方库
    跑真机时报:Command PhaseScriptExecution failed with a nonzero exit code但在模拟器上运行正常,事实证明这是个头大的问题搞了大半天😖

    报错示例

    具体啥原因到现在我也说不清楚,具体咋解决的也说不明白了(尝试过的方法太多了),\color{#FF0000}{建议遇到同样的报错问题把全文看完再尝试修改😂😂😂}

    \color{#008000}{尝试过的方法如下:}

    一、看到最多的解决方案是 Xcode 菜单栏选择File → Workspace Setting,找到Shared Workspace Settings 把New Build System (Default)切换到Legacy Build System 参考来源>>

    那来吧咱也尝试一下(然而在Xcode14.3版本中没找到Shared Workspace Settings 设置)


    Xcode14.3没有对应选项
    二、清理工作区缓存系列 参考来源>>

    1.首先在 Product -> Scheme 中选择当前项目的主代码模块;
    2.选择 Product -> Clean Build Folder 清理工作区;
    3.之后再重新编译项目代码就可以了(尝试后并没有起作用)。

    三、比较暴力、理论感觉比较彻底的方法,删除现有的pods库用cocoapods重新导入参考来源>>

    \color{#FF0000}{警告:操作需谨慎}

    1.打开项目所在文件夹删除xxxx.xcworkspace、Podfile.lock、Pods文件;
    2.使用终端重新执行pod install命令下载第三方库;
    3.理论上此时重新编译项目代码问题就应该解决了;

    红框标识文件删除
    经过漫长的等待……尝试后然而并没有起作用
    四、升级cocoapods版本打开终端执行sudo gem install cocoapods进行升级参考来源>>
    五、修改Pods-项目名称-frameworks.sh文件脚本内容参考来源>>

    具体方法:

    1.展开XCode左侧的项目结构目录,逐级展开Pods -> Target Support Files -> Pods-项目名称,打开其中的Pods-项目名称-frameworks.sh文件;
    2.找到source="$(readlink "${source}")"代码,大概在第44行;
    3.将第二步的代码修改成source="$(readlink -f "${source}")"再重新运行预期问题就应该解决了(经过尝试还是不行);

    红框所示代码进行修改
    六、也有说是钥匙串访问权限问题,那咱就更改

    参考来源1>>
    参考来源2>>

    1.打开【钥匙串访问】,然后在【登录】右键【锁定钥匙串】再【解锁】;
    2.command+shift+k清理再运行;
    3.结果就不多说了,运气好的话估计就到此结束了😂。

    七、修改Pods-项目名称-frameworks.shPods-项目名称-resources.sh文件的访问权限

    参考来源1>>
    参考来源2>>
    参考来源3>>
    \color{#FF0000}{具体方法根据上面的3个链接谨慎操作}

    1.打开Mac终端执行"sudo chmod 777 +文件授权地址"(例"sudo chmod 777 Pods-Comic-frameworks.sh ")
    2.cd到报错的Pods目录下后,然后执行命令a+x Pods-项目名-resources.sh即可解决问题

    红框所示文件

    反正这个方案对我还是免疫😂

    八、到这里就算是柳暗花明又一村了,修改TARGETS → Buile Settings → Excluded Architecturesarm64

    如下图所示:

    修改步骤

    更改过后意料之外的事情发生了终于正常运行起来了,一顿操作下来并不知道具体原因是啥,所幸尝试这么多方案没有增加新的报错


    还有一些其他的方法就不详细列举了(都试过了没卵用)
    1.重新下载证书,更新钥匙串中的证书;
    2.在"Podfile"文件最后一个"end"上添加如下代码并终端执行"pod install"再运行

    ……
    
    /********************************/
     post_install do |installer|
          installer.generated_projects.each do |project|
            project.targets.each do |target|
              target.build_configurations.each do |config|
                config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
              end
            end
          end
        end
    /********************************/
    //这是最后一个end
    end
    

    3.删除TARGETS → Buile Phases → Run Script 中的相关脚本。


    \color{#808080}{就到这里吧,大家要是弄清楚是啥原因造成的通知俺一声😥}

    相关文章

      网友评论

        本文标题:iOS开发运行报错:Command PhaseScriptExe

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