Xcode - clang因退出代码1而失败。插件原因?

时间:2015-02-25 22:13:06

标签: ios xcode cordova plugins ionic-framework

当我尝试存档我的应​​用时,我在Xcode中遇到了一个奇怪的错误。

我正在使用Ionic和Ionic CLI工具。该应用程序专为Android而构建,并且在Google Play商店中处于测试阶段。

在Xcode中我收到此错误:

clang: error: no such file or directory: '/Users/SubjectiveEffect/myApp/platforms/ios/CardsApp/Plugins/de.appplant.cordova.plugin.email-composer/APPEmailComposer.m'
clang: error: no input files
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

所以看起来de.appplant电子邮件插件有一些错误。电子邮件插件适用于Android,但在iOS上的Ionic View中无效。我不确定这个插件是否与Ionic View不兼容。

有人有什么想法吗?

Upate:

我卸载了这个插件,我现在得到了同样的错误,但是来自不同的插件!

clang: error: no such file or directory: '/Users/SubjectiveEffect/myApp/platforms/ios/CardsApp/Plugins/com.danielcwilson.plugins.googleanalytics/UniversalAnalyticsPlugin.m'
clang: error: no input files
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

所以我很确定这是一个插件问题。

任何人都知道为什么或如何解决它?我在Mac上使用标准cordova命令从命令行安装,如ngCordova所示。

编辑:要清楚 - 这些文件夹确实不存在。这些插件在Android中运行良好但是......

2 个答案:

答案 0 :(得分:2)

你的错误很奇怪,可能是结构文件夹发生了什么事。 我会尝试做这样的事情:

在进行此测试之前,请制作平台/ ios的备份副本。

cd my-folder-app/
ionic platform remove ios
ionic platform add ios

现在应该需要从备份和粘贴中复制,例如图标,启动屏幕到新鲜平台/ ios文件夹,然后重新应用您所做的一些最终更改。

ionic build ios

然后打开xcode:

  • 在模拟器或设备上运行应用以测试是否有效
  • 断开设备
  • 选择架构和iOS设备

enter image description here

如果您需要配置架构,首先需要对其进行编辑:

enter image description here

从左侧面板中选择存档,从右侧选择Build Configuration:如果要发布应用,请选择Release;如果要在测试设备上安装应用,则选择Debug。然后单击“关闭”。

  • 从顶部菜单:产品>归档
祝你好运!

更新:

为了确保您的错误不依赖于离子项目请进行此测试:

cd projects-folder/
ionic start myTestApp tabs
cd myTestApp/
ionic platform add ios
ionic build ios

现在按照xcode上的相同步骤归档应用程序。

答案 1 :(得分:1)

我从未真正知道发生了什么。

我所做的是移除iOS平台并重新添加它。这只是创建了更多的错误,虽然由于某种原因,正确的文件夹存在。然后我发现我的Android版本无法正常工作。

我删除了所有内容并重新添加了所有内容,也更新了Ionic。

然后XCode会打开但冻结。硬冻。退出它的唯一方法是强行关闭Mac。我甚至卸载了XCode并重新安装了它。同样的事情。

最后,我使用命令行擦除XCode中的所有预设,这样它就可以在没有加载任何项目的情况下打开。现在它可以工作了,Android版本似乎也在起作用。

我不知道错误发生在哪里,因此我无法正确地将任何人标记为正确,因为这会误导。解决方案:清洁和燃烧,重新开始。 :)