运行1个自定义shell脚本冻结

Yos*_*far 5 sdk xcode frameworks ios

我正在构建一个框架,在尝试使用自定义shell脚本代码编译生产框架时,它会在此步骤中冻结.

这是自定义shell脚本代码:

# define output folder environment variable
UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal

# Step 1. Build Device and Simulator versions
xcodebuild -target SomeSDK ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos  BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"
xcodebuild -target SomeSDK -configuration ${CONFIGURATION} -sdk iphonesimulator -arch i386 BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}"

# make sure the output directory exists
mkdir -p "${UNIVERSAL_OUTPUTFOLDER}"

# Step 2. Create universal binary file using lipo
lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a"

# Last touch. copy the header files. Just for convenience
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/include" "${UNIVERSAL_OUTPUTFOLDER}/"
Run Code Online (Sandbox Code Playgroud)

这是一个冻结的图像:

自定义shell脚本

我该如何解决这个问题?为什么会这样?

Yos*_*far 4

我找到了我所要求的答案,我只是做错了。

首先我要说的是,网络上所有展示如何创建 的教程iOS Static Library都缺少一些东西,并且至少我所看到的并不完美,这就是我遇到此问题的首要原因。

这些是我曾经做得对的:

这就是我的问题的答案:

我没有创建一个新的代码Aggregate Target并在那里插入Custom Shell Script代码,而是将Custom Shell Script代码添加到目标本身中,这是错误的。这就是为什么编译从未完成并且总是冻结的原因。

只需单击+Targets部分下方的按钮,选择Other,然后选择Aggregate。在此目标中,您必须添加Custom Shell Script代码,它将完美运行。

谢谢您的帮助。

享受!