首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 7.1和iOS 9.1用于Cordova的iOS项目的xcodebuild构建失败

Xcode 7.1和iOS 9.1用于Cordova的iOS项目的xcodebuild构建失败
EN

Stack Overflow用户
提问于 2015-11-27 23:59:38
回答 1查看 2.4K关注 0票数 0

我正在尝试从命令行构建iOS项目,作为CI系统的一部分。我打算使用xcodebuild命令来获取一个app文件,然后将该app文件提供给xcrun命令,以获得一个签名的ipa文件以供分发。

我的项目使用Cordova,它位于<project-folder>/CordovaLib文件夹中。

在项目文件夹中,我在Ant脚本中执行了以下命令:

代码语言:javascript
复制
xcodebuild -target "<project-name>" -configuration Release clean build

成功地构建了CordovaLib目标,并生成了该文件:

<project-folder>/CordovaLib/build/Release-iphoneos/libCordova.a

下面的日志片段可以看到这一点:

exec CreateUniversalBinary构建/发布-iphoneos/libCordova.a普通armv7 7\ armv7s\ arm64 exec cd <project-folder>/CordovaLib exec导出Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/bin“ exec/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7/libCordova.a <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/armv7s/libCordova.a <project-folder>/CordovaLib/build/CordovaLib.build/Release-iphoneos/CordovaLib.build/Objects-normal/arm64/libCordova.a -o <project-folder>/CordovaLib/build/Release-iphoneos/libCordova.a

在目标<project-name>的构建过程中,我得到了以下三次错误:

ld:文件找不到:/build/Release/libCordova.aclang:错误:链接器命令失败,退出代码1(使用-v查看调用)

最后:

以下生成命令失败: Ld build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/armv7/HelloWorld build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/armv7s/HelloWorld armv7 build/HelloWorldProjectHelloWorldIpad.build/Release-iphoneos/HelloWorldProjectHelloWorldIpad.build/Objects-normal/arm64/HelloWorld normal arm64 (3次失败)

因此,文件libCordova.a是在文件夹中生成的:

<project-folder>/CordovaLib/build/Release-iphoneos

取而代之的是:

<project-folder>/build/Release-iphoneos

我在iOS 9.1中使用Xcode版本7.1 (7B91b)。

除了在命令行的xcodebuild命令中使用的参数之外,我还应该在Xcode上设置一些内容吗?

提前谢谢你,西蒙妮。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-06 22:45:49

我的项目来自MEAP IDE。我发现自动生成的项目文件project.pbxproj为链接器设置了以下设置:

其他LDFLAGS=-force_load "$(BUILT_PRODUCTS_DIR)/libCordova.a“-Obj

因此,我以这种方式修改了xcodebuild命令调用:

代码语言:javascript
复制
xcodebuild -target "<project-name>" -configuration Release clean build 'OTHER_LDFLAGS=-force_load "$SRCROOT/CordovaLib/build/Release-iphoneos/libCordova.a" -Obj-C'

解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33966213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档