使用CocoaPods安装OpenSSL出现错误解决方法

iam小码哥| 阅读:390 发表时间:2018-04-19 12:40:29 ios
摘要:使用CocoaPods安装OpenSSL出现错误解决方法
在项目中使用RSA加密,需要用到OpenSSL,在执行 Pod ‘OpenSSL’ 的时候 出现错误:
[!] /bin/bash -c
set -e
VERSION="1.0.2j"
SDKVERSION=`xcrun --sdk iphoneos --show-sdk-version 2> /dev/null`
MIN_SDK_VERSION_FLAG="-miphoneos-version-min=7.0"

BASEPATH="${PWD}"
CURRENTPATH="/tmp/openssl"
ARCHS="i386 x86_64 armv7 armv7s arm64"
DEVELOPER=`xcode-select -print-path`

mkdir -p "${CURRENTPATH}"
mkdir -p "${CURRENTPATH}/bin"

cp "file.tgz" "${CURRENTPATH}/file.tgz"
cd "${CURRENTPATH}"
tar -xzf file.tgz
cd "openssl-${VERSION}"

for ARCH in ${ARCHS}
do
CONFIGURE_FOR="iphoneos-cross"

if [ "${ARCH}" == "i386" ] || [ "${ARCH}" == "x86_64" ] ;
then
PLATFORM="iPhoneSimulator"
if [ "${ARCH}" == "x86_64" ] ;
then
CONFIGURE_FOR="darwin64-x86_64-cc"
fi
else
sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
PLATFORM="iPhoneOS"
fi

export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export CROSS_SDK="${PLATFORM}${SDKVERSION}.sdk"

echo "Building openssl-${VERSION} for ${PLATFORM} ${SDKVERSION} ${ARCH}"
echo "Please stand by..."

export CC="${DEVELOPER}/usr/bin/gcc -arch ${ARCH} ${MIN_SDK_VERSION_FLAG}"
mkdir -p "${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
LOG="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/build-openssl-${VERSION}.log"

LIPO_LIBSSL="${LIPO_LIBSSL} ${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/lib/libssl.a"
LIPO_LIBCRYPTO="${LIPO_LIBCRYPTO} ${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk/lib/libcrypto.a"

./Configure ${CONFIGURE_FOR} --openssldir="${CURRENTPATH}/bin/${PLATFORM}${SDKVERSION}-${ARCH}.sdk" > "${LOG}" 2>&1
sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} !" "Makefile"

make >> "${LOG}" 2>&1
make all install_sw >> "${LOG}" 2>&1
make clean >> "${LOG}" 2>&1
done


echo "Build library..."
rm -rf "${BASEPATH}/lib/"
mkdir -p "${BASEPATH}/lib/"
lipo -create ${LIPO_LIBSSL} -output "${BASEPATH}/lib/libssl.a"
lipo -create ${LIPO_LIBCRYPTO} -output "${BASEPATH}/lib/libcrypto.a"

echo "Copying headers..."
rm -rf "${BASEPATH}/opensslIncludes/"
mkdir -p "${BASEPATH}/opensslIncludes/"
cp -RL "${CURRENTPATH}/openssl-${VERSION}/include/openssl" "${BASEPATH}/opensslIncludes/"

cd "${BASEPATH}"
echo "Building done."

echo "Cleaning up..."
rm -rf "${CURRENTPATH}"
echo "Done."

Building openssl-1.0.2h for iPhoneSimulator 9.2 i386
Please stand by…

解决方法:删除/tmp/openssl 文件夹 然后再执行pod install 等待一下,即可解决问题。
本文为iam小码哥原创,转载请注明出处!
如果您觉得好,可以打赏作者:
如果您觉得累了,是否想看点美女养养眼:猛戳>>若兰网
如果您觉得皮了,是否想来点神吐槽:猛戳>>iPhone查询中

已有5条评论

昵称:
邮箱:

  • 最新评论

涓涓2018-07-11 14:51:56
/tmp/openssl 文件夹 你这个文件夹在哪打开
哈哈2018-06-24 21:41:17
请问这个目录在哪里呢? 我报的错 cp: file.tgz: No such file or directory, 我知道是目录路径问题, 可是我看不太懂其中的 prepare_command 里面的 命令
回复sixGod:兄弟 你这个问题怎么解决的啊 我也是升级了最新的mac 系统遇到的
iam小码哥2018-06-21 10:43:09
请问这个目录在哪里呢? 我报的错 cp: file.tgz: No such file or directory, 我知道是目录路径问题, 可是我看不太懂其中的 prepare_command 里面的 命令
回复sixGod:把解压好的文件再拷回到原本要解压的临时目录去,然后去掉解压命令
回复iam小码哥:cp -rf \"${BASEPATH}/\" \"${CURRENTPATH}/open
iam小码哥2018-06-21 10:40:44
请问这个目录在哪里呢? 我报的错 cp: file.tgz: No such file or directory, 我知道是目录路径问题, 可是我看不太懂其中的 prepare_command 里面的 命令
回复sixGod:把解压好的文件再拷回到原本要解压的临时目录去,然后去掉解压命令
sixGod2018-06-20 17:37:47
请问这个目录在哪里呢? 我报的错 cp: file.tgz: No such file or directory, 我知道是目录路径问题, 可是我看不太懂其中的 prepare_command 里面的 命令
iPhone查询中 - bbs.ipcxz.com 若兰网 - www.rolan.wang iPhone查询中 - bbs.ipcxz.com
反馈
微信订阅号