CocoaPod Prepare_command bash 脚本
CocoaPod Prepare_command bash script
我正在尝试使用 prepare_command
个 cocoapod
我有一个要执行的 .sh
文件:
#!/bin/bash
XCODE_ROOT=`xcode-select -print-path`
ARCHS="i386 armv7 armv7s arm64"
SDK_VERSION="7.1"
STATIC_ARCHIVES=""
for ARCH in ${ARCHS}
do
PLATFORM=""
if [ "${ARCH}" == "i386" ]; then
PLATFORM="iPhoneSimulator"
else
PLATFORM="iPhoneOS"
fi
export
DEV_ROOT="${XCODE_ROOT}/Platforms/${PLATFORM}.platform/Developer"
export SDK_ROOT="${DEV_ROOT}/SDKs/${PLATFORM}${SDK_VERSION}.sdk"
export
TOOLCHAIN_ROOT="${XCODE_ROOT}/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
export CC=clang
export CXX=clang++
export AR=${TOOLCHAIN_ROOT}libtool
export RANLIB=${TOOLCHAIN_ROOT}ranlib
export ARFLAGS="-static -o"
export LDFLAGS="-arch ${ARCH} -isysroot ${SDK_ROOT}"
export BUILD_PATH="BUILD_${ARCH}"
export CXXFLAGS="-x c++ -arch ${ARCH} -isysroot ${SDK_ROOT} -I${BUILD_PATH}"
mkdir -p ${BUILD_PATH}
make -f Makefile
mv *.o ${BUILD_PATH}
mv *.d ${BUILD_PATH}
mv libcryptopp.a ${BUILD_PATH}
STATIC_ARCHIVES="${STATIC_ARCHIVES} ${BUILD_PATH}/libcryptopp.a"
done
echo "Creating universal library..."
mkdir -p bin
lipo -create ${STATIC_ARCHIVES} -output bin/libcryptopp.a
echo "Build done!"
但这在检查 pod 的 linting 时给我以下错误:
make: *** No rule to make target `*.o', needed by `libcryptopp.a'. Stop.
mv: rename CryptoppECC/CryptoppLibrary/*.o to CryptoppECC/CryptoppLibrary/BUILD_x86_64/*.o: No such file or directory.....
它明确指出
make -f Makefile
执行 'MakeFile'
无效
使用的prepare_command是:
s.prepare_command= "sudo sh CryptoppECC/CryptoppLibrary/builder.sh"
谁能帮我指出我做错了什么?
终于,问题解决了。
问题是我从另一个目录调用脚本,而脚本在另一个目录中,因此我只是在脚本文件
之上放置了 1 条语句
cd CryptoppECC/CryptoppLibrary/
之后一切正常。
我正在尝试使用 prepare_command
个 cocoapod
我有一个要执行的 .sh
文件:
#!/bin/bash
XCODE_ROOT=`xcode-select -print-path`
ARCHS="i386 armv7 armv7s arm64"
SDK_VERSION="7.1"
STATIC_ARCHIVES=""
for ARCH in ${ARCHS}
do
PLATFORM=""
if [ "${ARCH}" == "i386" ]; then
PLATFORM="iPhoneSimulator"
else
PLATFORM="iPhoneOS"
fi
export
DEV_ROOT="${XCODE_ROOT}/Platforms/${PLATFORM}.platform/Developer"
export SDK_ROOT="${DEV_ROOT}/SDKs/${PLATFORM}${SDK_VERSION}.sdk"
export
TOOLCHAIN_ROOT="${XCODE_ROOT}/Toolchains/XcodeDefault.xctoolchain/usr/bin/"
export CC=clang
export CXX=clang++
export AR=${TOOLCHAIN_ROOT}libtool
export RANLIB=${TOOLCHAIN_ROOT}ranlib
export ARFLAGS="-static -o"
export LDFLAGS="-arch ${ARCH} -isysroot ${SDK_ROOT}"
export BUILD_PATH="BUILD_${ARCH}"
export CXXFLAGS="-x c++ -arch ${ARCH} -isysroot ${SDK_ROOT} -I${BUILD_PATH}"
mkdir -p ${BUILD_PATH}
make -f Makefile
mv *.o ${BUILD_PATH}
mv *.d ${BUILD_PATH}
mv libcryptopp.a ${BUILD_PATH}
STATIC_ARCHIVES="${STATIC_ARCHIVES} ${BUILD_PATH}/libcryptopp.a"
done
echo "Creating universal library..."
mkdir -p bin
lipo -create ${STATIC_ARCHIVES} -output bin/libcryptopp.a
echo "Build done!"
但这在检查 pod 的 linting 时给我以下错误:
make: *** No rule to make target `*.o', needed by `libcryptopp.a'. Stop.
mv: rename CryptoppECC/CryptoppLibrary/*.o to CryptoppECC/CryptoppLibrary/BUILD_x86_64/*.o: No such file or directory.....
它明确指出
make -f Makefile
执行 'MakeFile'
无效使用的prepare_command是:
s.prepare_command= "sudo sh CryptoppECC/CryptoppLibrary/builder.sh"
谁能帮我指出我做错了什么?
终于,问题解决了。 问题是我从另一个目录调用脚本,而脚本在另一个目录中,因此我只是在脚本文件
之上放置了 1 条语句cd CryptoppECC/CryptoppLibrary/
之后一切正常。