FAQ
CMake XCFramework
现在 CocosCreator 3+ 已经使用 CMake 来作 iOS/Android 工程的生成与编译.
但是 CMake 还不支持直接链接 XCFramework , 所以我们目前还是链接到 XCFramework 中特定的工程. 现在我们是默认链接到 ios-i386_x86_64-simulator
架构.
当你想链接到其它架构时, 需要手动修改一下 CMakeLists.txt 中引用的架构.
请查看文件 $CreatorProjectRoot/native/engine/ios/CMakeLists.txt
这里的代码显示, 库 ${LIB_NAME} 是链接到 ios simulator i386/x86_64 架构.
LinkXCFramework("${CMAKE_CURRENT_LIST_DIR}/Firebase/FirebaseAnalytics/FirebaseCore.xcframework" ios-i386_x86_64-simulator ${LIB_NAME})
现在库就是链接到 ios 设备 armv7/arm64
LinkXCFramework("${CMAKE_CURRENT_LIST_DIR}/Firebase/FirebaseAnalytics/FirebaseCore.xcframework" ios-armv7_arm64 ${LIB_NAME})
这里架构的名字其实来源于 ${CMAKE_CURRENT_LIST_DIR}/Firebase/FirebaseAnalytics/FirebaseCore.xcframework
对应的子文件夹名字. 请根据你的实际情况作对应修改替换.
另一种方案
当然你也可以在生成后的 Xcode 工程中, 直接引用 XCFramework 库, 这样不用修改 CMakeLists.txt
. 这时你应该把 CMakeLists.txt 中 LinkXCFramework(*/*.xcframework ios-i386_x86_64-simulator ${LIB_NAME})
的调用都去掉, 以免冲突.
同时也要注意, Xcode 工程其实是生成的, 在 Creator 中, 每次的生成工程操作, 都有可能会覆盖掉直接在 Xcode 作的修改.