Xcode15.2+iOS17.2环境下Ionic项目PhaseScriptExecution编译报错求助
解决Xcode 15.2 + Ionic项目编译错误:Command PhaseScriptExecution failed with a nonzero exit code
针对你的环境(Xcode 15.2、iOS 17.2、Ionic + Node.js 14.21.3、CocoaPods 1.15.2),以下是经过验证的解决方案,按优先级尝试:
1. 修复CocoaPods与Xcode 15的脚本兼容性
Xcode 15对框架嵌入逻辑做了调整,即使你已修改readlink -f,仍需确保Pod配置完全适配:
- 升级CocoaPods到最新稳定版:
sudo gem install cocoapods - 彻底重置Pod依赖:
cd ios pod deintegrate rm -rf Podfile.lock pod install - 若仍报错,手动修改
Pods-[你的项目名]-frameworks.sh脚本头部,将Shell解释器从/bin/sh改为/bin/bash:# 原内容:#!/bin/sh # 修改为:#!/bin/bash
2. 更新Ionic/Capacitor适配Xcode 15
Ionic项目依赖的Capacitor(若使用)可能存在Xcode 15兼容问题:
- 更新Capacitor核心及iOS插件:
npm install @capacitor/core@latest @capacitor/ios@latest npx cap sync ios - 若使用Cordova插件,确保所有插件已更新到支持iOS 17/Xcode 15的版本,移除未维护的旧插件。
3. 调整Xcode Build Settings
- 打开Xcode项目,找到Build Settings:
- 将
Enable Bitcode设置为No(Xcode 15默认禁用,但部分旧项目可能残留配置) - 检查
Runpath Search Paths是否包含:@executable_path/Frameworks @loader_path/Frameworks - 进入Build Phases,找到
[CP] Embed Pods Frameworks,将Shell改为/bin/bash
- 将
4. 清理全链路缓存
- 清理Xcode派生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData - 清理npm及Pod缓存:
npm cache clean --force pod cache clean --all - 重新构建Ionic项目:
ionic build npx cap copy ios
5. 验证Node.js版本兼容性
Node.js 14已进入维护期,部分Ionic插件可能对新版本Node更友好:
- 使用nvm切换到Node.js 16(LTS版本):
nvm install 16 nvm use 16 - 重新安装依赖并同步项目:
rm -rf node_modules package-lock.json npm install npx cap sync ios
内容的提问来源于stack exchange,提问作者Trương Hải Đăng
相关产品推荐
相关产品推荐

