xcodebuild 无法从终端构建但从 xcode 成功
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/24798423/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
xcodebuild fails to build from terminal but succeeded from xcode
提问by Asaf Manassen
I'm trying to build a framework using xcode 6-beta 3 when compiling it using xcode it works but when compiling it from a terminal with the command:
我正在尝试使用 xcode 6-beta 3 构建一个框架,当使用 xcode 编译它时它可以工作,但是当使用以下命令从终端编译它时:
xcodebuild -project <projName> -scheme <schemeName> -configuration Debug clean build
I'm getting the following error
我收到以下错误
CodeSign error: entitlements are required for product type 'Framework' in SDK 'Simulator - iOS 8.0'. Your Xcode installation may be damaged.
and the build fails to complete. at the end of the log it says
并且构建无法完成。在日志的末尾它说
The following build commands failed:
PhaseScriptExecution Run\ Script build/myProj.build/Debug-iphoneos/myScheme.build/Script-DB9DC5BB19740464002F9181.sh
upgrade:
升级:
the script that failed is :
失败的脚本是:
#!/bin/sh
# Config
UFW_TARGET=AppCore
# Default build dir
UFW_BUILD_DIR="./build"
# Global vars
if [ -z ${SDK_NAME} ]; then
# Use the latest iphoneos SDK available
UFW_GREP_RESULT=$(xcodebuild -showsdks | grep -o "iphoneos.*$")
while read -r line; do
UFW_SDK_VERSION="${line}"
done <<< "${UFW_GREP_RESULT}"
else
# Use the SDK specified by XCode
UFW_SDK_VERSION="${SDK_NAME}"
fi
UFW_SDK_VERSION=$(echo "${UFW_SDK_VERSION}" | grep -o "[0-9].*$")
UFW_IPHONE_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-iphoneos"
UFW_SIMULATOR_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-iphonesimulator"
UFW_UNIVERSAL_DIR="${UFW_BUILD_DIR}/${CONFIGURATION}-universal"
# Static lib name
STATIC_LIB_NAME="appCore"
UFW_FRAMEWORK_DIR="${STATIC_LIB_NAME}.framework"
# Build Framework
rm -rf ${UFW_UNIVERSAL_DIR}
xcodebuild ARCHS="armv7 armv7s arm64" -target "${UFW_TARGET}" -configuration ${CONFIGURATION} -sdk iphoneos${UFW_SDK_VERSION} clean build RUN_CLANG_STATIC_ANALYZER=NO
if [ "$?" != "0" ]; then echo >&2 "Error: xcodebuild failed"; exit 1; fi
xcodebuild ARCHS="i386 x86_64" -target "${UFW_TARGET}" -configuration ${CONFIGURATION} -sdk iphonesimulator${UFW_SDK_VERSION} clean build RUN_CLANG_STATIC_ANALYZER=NO
if [ "$?" != "0" ]; then echo >&2 "Error: xcodebuild failed"; exit 1; fi
mkdir -p "${UFW_UNIVERSAL_DIR}"
mkdir -p "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}"
mkdir -p "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}/Headers"
cp -a "${UFW_IPHONE_DIR}/${UFW_FRAMEWORK_DIR}/Headers" "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}"
echo "running lipo -create -ouput..."
lipo -create -output "${UFW_UNIVERSAL_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}" "${UFW_IPHONE_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}" "${UFW_SIMULATOR_DIR}/${UFW_FRAMEWORK_DIR}/${STATIC_LIB_NAME}"
if [ "$?" != "0" ]; then echo >&2 "Error: lipo failed for ${STATIC_LIB_NAME}"; exit 1; fi
Does anyone know what I'm doing wrong ?
any help be much appreciated
有谁知道我做错了什么?
非常感谢任何帮助
回答by Asaf Manassen
I have found an answer.
Since custom frameworks were announced only in iOS 8, -sdk iphonesimulator8.0
need to be added to the script, it defines Xcode to build the project only for Ios 8.
it should look like:
我找到了答案。
由于自定义框架仅在 iOS 8 中发布,-sdk iphonesimulator8.0
需要添加到脚本中,因此它定义了 Xcode 来构建仅适用于 Ios 8 的项目。
它应该如下所示:
xcodebuild -project <projName> -scheme <schemeName> -sdk iphonesimulator8.0 -configuration Debug clean build
this code works
此代码有效