iOS表格绘制iOS 常见问题

iOS开发运行报错:Command PhaseScriptExe

2023-10-27  本文已影响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}{就到这里吧,大家要是弄清楚是啥原因造成的通知俺一声😥}

上一篇下一篇

猜你喜欢

热点阅读