dynamically linked shared library
xcode12.3 dynamically linked shared library 合并 动态库 一度失败.解决方法,是用
xcodebuild -create-xcframework
替代
lipo -create
然而xcode13.1 Version 13.1 (13A1030d) 又没问题了
# 设置 framework 名称
FMK_NAME="xxx"
# 合并后的 framework 将在此文件夹中生成
LIBDIR=${SRCROOT}/Products/
INSTALL_DIR=${LIBDIR}${FMK_NAME}.framework
# framework 生成后,移除 build 文件夹
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Debug-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Debug-iphonesimulator/${FMK_NAME}.framework
# 编译模拟器和真机的 framework
xcodebuild -configuration "Debug" -target "${FMK_NAME}" -sdk iphoneos build
xcodebuild -configuration "Debug" -target "${FMK_NAME}" -sdk iphonesimulator build
# 清理旧文件 创建新文件
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
cp -R "${SIMULATOR_DIR}/" "${INSTALL_DIR}/"
# 合并真机和模拟器的 framework
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
# 移除 biuld 文件夹
#rm -r "${WRK_DIR}"
# 打开 products 文件夹
open "${LIBDIR}"
2种方式编译framework:
xcodebuild -configuration
xcrun, clang, -dynamiclib,
可以确认的当时flutter编译framework也是使用的lipo create 合并,合并没问题:
[
xcrun, clang,
-x, c,
-arch, armv7,
-arch, arm64,
/var/folders/cs/wtst0jh91yl2ggxdp9zth5gc0000gn/T/flutter_tools_stub_source.Hjw6dY/debug_app.cc,
-dynamiclib,
-fembed-bitcode-marker,
-Xlinker, -rpath,
-Xlinker, @executable_path/Frameworks,
-Xlinker, -rpath,
-Xlinker, @loader_path/Frameworks,
-install_name, @rpath/App.framework/App,
-isysroot, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.0.sdk,
-o, /xxx/debug/arm64/App.framework/App
]
[
xcrun, clang,
-x, c,
-arch, x86_64,
/var/folders/cs/wtst0jh91yl2ggxdp9zth5gc0000gn/T/flutter_tools_stub_source.JDCQn7/debug_app.cc,
-dynamiclib,
-fembed-bitcode-marker,
-Xlinker, -rpath,
-Xlinker, @executable_path/Frameworks,
-Xlinker, -rpath,
-Xlinker, @loader_path/Frameworks,
-install_name, @rpath/App.framework/App,
-isysroot, /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator15.0.sdk,
-o, /xxx/debug/x86/App.framework/App]
lipo
-create /xxx/debug/arm64/App.framework/App /xxx/debug/x86/App.framework/App
-output /xxx/debug/product/App.framework/App
难道当时失败是有什么问题?
动态库。 在app包下面Framework拷贝不进去。
通过
s.vendored_frameworks = 'App.framework'
的方式。 动态库拷贝不到app包下面去:
image.pngxcode13 不支持vendored_frameworks 了吗?
s.vendored_frameworks
网友评论