当我尝试存档我的应用程序商店的应用程序时,我的问题出现.当我尝试这样做时,我会收到大量编译器错误,其中xcode表示它无法找到我自定义框架中定义的任何类的声明.
如何在xcode中设置存档,以便正确引用和嵌入我的自定义框架?
解决方法 您实际上不需要将其放在“嵌入式二进制文件”部分中.您只需要在“链接的框架和库”部分中.确保您的框架是通用框架(意味着可以为所有体系结构编译),并确保您具有正确的编译器标志集(-ObjC,如果您的框架有任何类别等)如果您的框架包含任何c代码,并且要在客户端应用程序中启用位代码,那么您可能还需要设置其他一些“Other C Flags”,您应该将“-fembed-bitcode”放在框架其他C标志这些是我需要做的事情来让我的框架应用程序到商店,我认为这只是一个误解,你需要把它放在嵌入式二进制文件中,以使其存档.这是我用来生成通用框架的构建脚本.它建立在我的桌面上.如果您的框架在Swift中,您可以取消注释第8节.您要创建一个聚合目标,并在构建阶段将其添加为运行脚本.
# Merge Script# 1# Set bash script to exit immediately if any commands fail.set -e# 2# Setup some constants for use later on.FRAMEWORK_name="MyFramework"# 3# If remnants from a prevIoUs build exist,delete them.if [ -d "${SRCROOT}/build" ]; thenrm -rf "${SRCROOT}/build"fi# 4# Build the framework for device and for simulator (using# all needed architectures).xcodebuild -target "${FRAMEWORK_name}" -configuration Release -arch arm64 -arch armv7 -arch armv7s only_active_arch=no defines_module=yes -sdk "iphoneos"xcodebuild -target "${FRAMEWORK_name}" -configuration Release -arch x86_64 -arch i386 only_active_arch=no defines_module=yes -sdk "iphonesimulator"# 5# Remove .framework file if exists on Desktop from prevIoUs run.if [ -d "${HOME}/Desktop/${FRAMEWORK_name}.framework" ]; thenrm -rf "${HOME}/Desktop/${FRAMEWORK_name}.framework"fi# 6# copy the device version of framework to Desktop.cp -r "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_name}.framework" "${HOME}/Desktop/${FRAMEWORK_name}.framework"# 7# Replace the framework executable within the framework with# a new version created by merging the device and simulator# frameworks' executables with lipo.lipo -create -output "${HOME}/Desktop/${FRAMEWORK_name}.framework/${FRAMEWORK_name}" "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_name}.framework/${FRAMEWORK_name}" "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_name}.framework/${FRAMEWORK_name}"# 8# copy the Swift module mapPings for the simulator into the# framework. The device mapPings already exist from step 6.#cp -r "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_name}.framework/Modules/${FRAMEWORK_name}.swiftmodule/" "${HOME}/Desktop/${FRAMEWORK_name}.framework/Modules/${FRAMEWORK_name}.swiftmodule"# 9# Delete the most recent build.if [ -d "${SRCROOT}/build" ]; thenrm -rf "${SRCROOT}/build"fi
一旦你的框架在桌面上,如果你进入它的内部,就会有一个与你的框架名称相同的文本文档.如果您导航到它,并在终端上运行命令“lipo -info”,您应该得到以下输出:
Architectures in the fat file: MyFramework are: armv7 armv7s i386 x86_64 arm64总结
以上是内存溢出为你收集整理的ios – 如何存档包含自定义框架的应用程序?全部内容,希望文章能够帮你解决ios – 如何存档包含自定义框架的应用程序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)