运行自定义 shell 脚本“[CP] Embed Pods Frameworks”

Fab*_*bus 17 xcode ios ionic-framework capacitor

我正在维护一个支持 iOS 和 Android 平台的电容器离子项目。我可以在本地构建项目并在设备上运行它,没有任何问题。但是归档的时候会出现如下错误:

PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks 
/Users/fabus/Library/Developer/Xcode/DerivedData/App-
gkhellzebxgrxeeuozvkjsnejnul/Build/Intermediates.noindex/ArchiveInter
mediates/App/IntermediateBuildFilesPath/App.build/Release-
iphoneos/App.build/Script-9592DBEFFC6D2A0C8D5DEB22.sh (in target 
'App' from project 'App')     cd 
/Users/fabus/Development/showmaker/showmaker_festivals/ios/App     
/bin/sh -c /Users/fabus/Library/Developer/Xcode/DerivedData/App-
gkhellzebxgrxeeuozvkjsnejnul/Build/Intermediates.noindex/ArchiveInter
mediates/App/IntermediateBuildFilesPath/App.build/Release-
iphoneos/App.build/Script-9592DBEFFC6D2A0C8D5DEB22.sh
Run Code Online (Sandbox Code Playgroud)
mkdir -p /Users/fabus/Library/Developer/Xcode/DerivedData/App-
gkhellzebxgrxeeuozvkjsnejnul/Build/Intermediates.noindex/ArchiveInter
mediates/App/BuildProductsPath/Release-iphoneos/App.app/Frameworks 
Symlinked... rsync --delete -av --filter P .*.?????? --links --filter 
"- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --
filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" 
"../../../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/Cap
acitor.framework" 
"/Users/fabus/Library/Developer/Xcode/DerivedData/App-
gkhellzebxgrxeeuozvkjsnejnul/Build/Intermediates.noindex/ArchiveInter
mediates/App/InstallationBuildProductsLocation/Applications/App.app/F
rameworks" building file list ... rsync: link_stat 
"/Users/fabus/Development/showmaker/showmaker_festivals/ios/App/../..
/../IntermediateBuildFilesPath/UninstalledProducts/iphoneos/Capacitor
.framework" failed: No such file or directory (2) done
Run Code Online (Sandbox Code Playgroud)
sent 29 bytes  received 20 bytes  98.00 bytes/sec total size is 0 
 speedup is 0.00 rsync error: some files could not be transferred 
(code 23) at /AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-
a4bc-
863efbbaf80d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(
996) [sender=2.6.9] Command PhaseScriptExecution failed with a 
nonzero exit code
Run Code Online (Sandbox Code Playgroud)

我正在使用以下 Pod:

  pod 'Capacitor', :path => '../../node_modules/@capacitor/ios'

  pod 'CapacitorCordova', :path => '../../node_modules/@capacitor/ios'

  pod 'CapacitorApp', :path => '../../node_modules/@capacitor/app'

  pod 'CapacitorBrowser', :path => '../../node_modules/@capacitor/browser'

  pod 'CapacitorHaptics', :path => '../../node_modules/@capacitor/haptics'

  pod 'CapacitorKeyboard', :path => '../../node_modules/@capacitor/keyboard'

  pod 'CapacitorNetwork', :path => '../../node_modules/@capacitor/network'

  pod 'CapacitorPushNotifications', :path => '../../node_modules/@capacitor/push-notifications'

  pod 'CapacitorSplashScreen', :path => '../../node_modules/@capacitor/splash-screen'

  pod 'CapacitorStatusBar', :path => '../../node_modules/@capacitor/status-bar'

  pod 'CordovaPlugins', :path => '../capacitor-cordova-ios-plugins'

  pod 'CordovaPluginsStatic', :path => '../capacitor-cordova-ios-plugins'
Run Code Online (Sandbox Code Playgroud)

我已经在 ios 文件夹中分解/更新了 pod。清理了构建文件夹shift-command-k。此外,我的项目名称中没有特殊字符或空格,并且我确实更新了所有证书/将它们加载到 xcode 中。重启机器也不能解决。

我所做的也是在我的构建阶段(目标>应用程序>构建阶段)中检查选项“仅用于安装构建”,如此处建议

我最近没有碰过我的构建文件(capacitor.config,package.json,...)

更新:

手动执行命令会产生以下输出:

/Users/fabus/Library/Developer/Xcode/DerivedData/App-gkhellzebxgrxeeuozvkjsnejnul/Build/Intermediates.noindex/ArchiveIntermediates/App/IntermediateBuildFilesPath/App.build/Release-iphoneos/App.build/Script-9592DBEFFC6D2A0C8D5DEB22.sh: line 2: /Target Support Files/Pods-App/Pods-App-frameworks.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Ros*_*dka 65

Xcode 14.3 及更高版本似乎存在问题。iOS 开发者论坛上有未解决的问题。

参考:https://developer.apple.com/forums/thread/725230 ?answerId=746897022#746897022

一个想法可能是降级到 14.2,看看它是否有效。

另一种无需降级的解决方法:在 Xcode 中打开项目。转到Pods -> Target Support Files -> Pods-App-Frameworks并将第 44 行更改为下面(基本上是在现有代码中添加 -f ):

源=“$(readlink -f“$ {源}”)”

新解决方案:将 cocoapods 版本更新到最新版本,它应该会自动解决。

  • 谢谢你!Pods-app-frameworks -f 修复在 Xcode 14.3 上运行良好,可使用“xcodebuild” CLI 进行 IDE 构建和 ipa 归档。从命令行构建离子电容器应用程序时,错误显示为“cocoapods DVTCoreDeviceEnabledState”。 (2认同)

sam*_*ize 26

将 cocoapods 更新到 1.12.1,该版本已修复。

gem update cocoapods,或者bundle update cocopods如果使用捆绑包,或者brew upgrade cocoapods如果使用brew安装。


小智 7

看起来很相似。这是工作https://developer.apple.com/forums/thread/727525

Cocoapods 现在存在问题,因为 Xcode 14.3 现在在框架的符号链接中使用相对路径。

要么等待 Cocoapods 版本 1.12.1 的发布,要么在 Pods-APPNAME-frameworks.sh 文件中进行以下简单更改:

代替:

  if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink "${source}")"
  fi
Run Code Online (Sandbox Code Playgroud)

和:

 if [ -L "${source}" ]; then
    echo "Symlinked..."
    source="$(readlink -f "${source}")"
  fi
Run Code Online (Sandbox Code Playgroud)

请注意,添加了 -f。