CLFramework icon indicating copy to clipboard operation
CLFramework copied to clipboard

CLFramework

CLFoundation

CLFoundation是对系统的Foundation库的一些扩充, 比如NSString, NSArray这些常用的类.

CocoaPods Compatible Carthage Compatible Platform Language

Pods管理

pod 'CLFoundation'

CLFoundation最新的地址: https://github.com/CainLuo/CLFoundation

Exmaple Demo

CLFoundationExmaple是一个简单的示例Demo, 有关于CLFoundation的使用方法, 都会在这里有所展示.

CLUIKit

CLUIKit是对系统UIKit库的一些扩充, 比如UIColor, UIDevice, UIScreen, 同时这里也有其他第三方的开源库.

CocoaPods Compatible Carthage Compatible Platform Language

Pods管理

pod 'CLUIKit'

CLUIKit最新的地址: https://github.com/CainLuo/CLUIKit

Exmaple Demo

CLUIKitExample是一个简单的示例Demo, 有关于CLUIKit的使用方法, 都会在这里有所展示.

支助

如果您觉得挺赞的话, 可以给我打赏打赏, 谢谢啦~

支付宝

合并脚本

Framework可以在模拟器与真机上运行, 所以这里我们需要借助一个脚本:

if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework


if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"
open "${SRCROOT}/Products"
fi

去除i386等模拟器信息

由于框架加入了i386导致上传ipa文件的时候被拒, 这时候我们在Targets -> Build Phases 添加一个Run Script, 然后再把下面的脚本添加进去, 再打包上传就好了.

APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"

# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"

EXTRACTED_ARCHS=()

for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done

echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}"

echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"

done

注意

​ 本框架纯属是为了加快自己的项目开发速度而封装的, 同时也是为了可以和大家交流, 如需进行商业行为, 或者转发, 请联系作者, 否则一旦发现, 将追究法律责任.