94

我在我的应用程序中使用了一个可可静态库。当我编译我的库时,出现以下错误:

Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
    bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
    libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1

错误截图

我怎样才能解决这个问题?

4

21 回答 21

212

目标 -> 构建阶段 -> 更新示例

如果未选中,请单击 On Run 复选框。

于 2015-03-23T13:10:16.533 回答
64

我遇到了这个问题,因为我拒绝了钥匙串访问,为了解决它,你需要打开钥匙串,然后点击屏幕右上角的锁再次锁定它,之后你可以存档,它会起作用

于 2017-12-28T13:28:38.930 回答
43

删除“派生数据”对我有用。

在 Xcode 中,转到 File > Workspace Settings > 单击 Derived Data 文件路径旁边的箭头 > 将“Derived Data”文件夹移动到垃圾箱。

于 2015-08-25T20:17:17.723 回答
30

似乎您正在运行一个 shell 脚本,但它找不到您的特定文件。看看Target -> Build-Phases -> RunScript你是否正在运行脚本。

您可以检查脚本是否在构建输出中运行(在导航器面板中)。如果您的脚本做错了什么,构建阶段将停止。

于 2012-10-22T07:22:00.373 回答
20

我有同样的问题解决了。使用以下步骤解决Xcode 6.4 中的问题。

  1. 单击在导航器窗口中显示项目导航器
  2. 现在选择导航器窗口下方的项目
  3. 选择目标
  4. 选择构建阶段选项卡
  5. 打开运行脚本下拉选项
  6. 选择仅在安装时运行脚本复选框

步骤截图

现在,清理您的项目(cmd+shift+k)并构建您的项目。

于 2015-07-23T12:21:06.257 回答
9

清理构建文件夹(Cmd + Shift + Alt + K)对我有用

于 2016-06-07T22:54:43.457 回答
3

1) 删除 pod 文件夹和 .xcworkspace 文件 2) 在终端中打开文件夹 3) 键入“pod install”

于 2018-07-27T08:49:17.477 回答
1

您是否将 .a 库添加到 xcode projet ?(项目->构建阶段->将二进制文件与库链接->单击“+”->单击“添加其他”->选择您的库)

也许该库与模拟器不兼容,您是否尝试为 iDevice(不是模拟器)编译?

(我已经解决了第二个问题,我得到了一个无法与模拟器一起使用但使用真实设备编译的库......)

于 2012-10-22T07:14:13.370 回答
1

在我的情况下,路径中有空间使脚本失败。如果您使用变量$PROJECT_DIR$TARGET_BUILD_DIR然后替换它们"$PROJECT_DIR""$TARGET_BUILD_DIR"分别。添加引号后,我的脚本成功运行。

于 2016-06-28T09:24:16.790 回答
1

对我来说,我的证书已过期。我创建了一个新证书。

于 2017-10-25T19:08:16.373 回答
0

我尝试重新启动 Xcode (7),但什么也没有(您是否尝试过为我关闭并再次打开iOS 开发 :-))。然后我尝试重新启动我的盒子,并且成功了。

在我的情况下,将文件从一个位置复制到另一个位置时脚本失败。我认为这可能与 Finder 对某些文件夹的写入权限搞砸有关。

于 2015-11-10T10:21:17.737 回答
0

对我来说,发生此错误是因为我在从源代码树中提取代码时将版本号从 1 更改为 1.0,并将内部版本号从 6 更改为 1.1。我只是将其改回并将内部版本号从 6 更改为 7,它工作正常。

于 2016-04-20T07:22:24.233 回答
0

只需将您的脚本放在一个文件中,然后在命令行末尾使用2>/dev/null运行该文件!

这样,如果该命令有任何问题,它都不会停止您的 xcode 构建

在我的情况下,我只是运行一个命令来从连接的 iphone 上卸载我以前的应用程序副本,因此如果 iphone 不存在,它可能会出错。要解决它:

$mobiledevice uninstall_app com.my.app 2>/dev/null

于 2017-04-09T10:21:25.557 回答
0

唯一对我有用的东西:

1) 使用 CleanMyMac 删除派生数据:System Junk -> Xcode Junk -> Xcode Derived Data

使用 CleanMyMac 删除派生数据

2)然后在Xcode中:产品->清洁

于 2017-12-09T15:55:20.280 回答
0

我做了以上所有事情,并在这个问题上花了一个小时。

尝试了上述所有方法并重新启动了 Xcode。

最后,重新启动计算机,一切正常!

于 2018-01-04T17:55:48.040 回答
0

我将列出我所做的对我不起作用的事情,最后列出了什么

首先,仅在安装时运行脚本的接受答案不起作用。

删除派生数据不起作用。

什么工作:

  1. 我在 Build Phases 添加了一个新的构建阶段

  2. 新复制文件阶段

  3. 将所选框架拖放到放置目标中

  4. 将“目标”设置为框架

归功于Kevin Le 的 Medium 帖子

于 2018-02-12T20:53:12.493 回答
0

对于那些不想取消选中该选项的人(例如使用 cocoapods),问题可能出在证书/密钥上。

Xcode(或您使用的任何工具,如命令行工具)需要能够使用钥匙串中的证书/密钥。为此打开钥匙串,找到要使用的证书(通常在login钥匙串上My Certificates),右键单击密钥,选择Get Info,单击Access Control选项卡并将应用程序添加到列表中。

如果这不起作用,请尝试解锁钥匙串。

另一个选项可以选择允许所有应用程序访问此项目而不是特定应用程序和/或将证书/密钥移动到System在该 Mac 上的所有用户帐户之间共享的钥匙串。

还要检查证书是否未过期。

于 2018-03-02T07:13:25.750 回答
0

1)选项:请检查仅在安装时运行脚本......这个问题的答案是正确的

2) 选项:pod 更新,清理派生数据,

于 2018-12-31T19:24:55.420 回答
0

就我而言,其中一个脚本(与 相关SwiftGen)在编译期间失败。

我通过删除Pods然后再次更新它们来解决问题。

  1. 删除目录下有问题的podPods或使用pod deintegrate
  2. pod install使用或安装/更新 podpod update

PS 有可能你的依赖是全局的并且不在 pod 中。在这种情况下,您也可以尝试重新安装该依赖项。

于 2020-06-24T14:17:53.227 回答
0

如果您使用 Crashlytics 并遇到此问题,请阅读此内容...

Command /bin/sh failed with exit code 1我更具体地遇到了与上述相同的问题[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

第一个解决方案(仅在安装时启用运行脚本)允许我在模拟器中构建我的目标,但我无法存档我的构建。

我通过在 firebase 上启用 Crashlytics 解决了这个存档问题。我仍然习惯于自动启用 Crashlytics 的 Fabric。一旦我在 firebase 控制台中为相应的 GoogleService-Info.plist 启用了 Crashlytics,我就能够存档而不会出现此错误。

于 2020-07-22T15:54:06.940 回答
-1

删除所有 pod 并重新安装。

脚步:

  1. 评论所有 pod 并运行pod install
  2. 取消注释所有 pod 并运行pod install
于 2017-12-13T11:18:02.060 回答