如何发布将提交到应用商店的通用swift框架?

时间:2016-07-01 00:56:34

标签: ios xcode swift frameworks universal

我目前正在开发一个框架,旨在由客户发布并提交给应用商店。

目前,我正在执行以下

#!/bin/sh

xcodebuild -target MyFramework -sdk iphoneos -configuration Release clean build

xcodebuild -target MyFramework -sdk iphonesimulator -configuration Release clean build

mkdir build/Release-iphoneuniversal

cp -R build/Release-iphoneos/MyFramework.framework build/Release-iphoneuniversal/

cp build/Release-iphonesimulator/MyFramework.framework/Modules/CNVRTagManager.swiftmodule/*  build/Release-iphoneuniversal/MyFramework.framework/Modules/CNVRTagManager.swiftmodule/

lipo build/Release-iphoneos/MyFramework.framework/MyFramework build/Release-iphonesimulator/MyFramework.framework/MyFramework -create -output build/Release-iphoneuniversal/MyFramework.framework/MyFramework

这创建了一个很棒的小框架,我可以将其包含在项目中,然后我可以为模拟器或设备构建这些框架。我也可以存档。特别值得注意的是,我添加了自定义构建设置

BITCODE_GENERATION_MODE=bitcode

确保正确包含位代码。

问题?好吧,这就是我将工作应用程序提交到应用程序商店时会发生什么。

  

错误ITMS-90087:"不支持的架构。 CV的可执行文件   FreeCell.app/Frameworks/MyFramework.framework包含不受支持   架构' [x86_64,i386]'。"错误ITMS-90087:"不支持   架构。 CV的可执行文件   FreeCell.app/Frameworks/MyFramework.framework包含不受支持   架构' [x86_64,i386]'。"

     

错误ITMS-90209:"无效的段对齐。 “二进制”中的应用二进制文件   FreeCell.app/Frameworks/MyFramework.framework/MyFramework'不   没有适当的段对齐。尝试使用重建应用程序   最新的Xcode版本。"错误ITMS-90209:"无效的段对齐。   “二进制”中的应用二进制文件   FreeCell.app/Frameworks/CNVRTagManager.framework/MyFramework'不   没有适当的段对齐。尝试使用重建应用程序   最新的Xcode版本。“

     

警告ITMS-90080:"可执行文件'有效负载/ CV   FreeCell.app/Frameworks/MyFramework.framework'不是一个职位   独立可执行文件。请确保您的构建设置   配置为创建PIE可执行文件。有关更多信息,请参阅   技术Q& A QA1788 - 在中国建立一个独立于位置的可执行文件   iOS开发者库。"警告ITMS-90080:"可执行文件   ' Payload / CV FreeCell.app/Frameworks/MyFramework.framework'不是一个   位置独立可执行文件。请确保您的构建   设置配置为创建PIE可执行文件。更多   信息参见技术Q& A QA1788 - 建立职位   iOS开发人员库中的独立可执行文件。

现在我很想我必须为模拟器和设备发布一个框架。是这样的吗?是否有某个我缺少的资源?

感谢。

1 个答案:

答案 0 :(得分:-1)

最佳做法是创建一个组合框架。一个支持设备和模拟器。

这个过程通常涉及单独为两个架构构建框架,然后将它们组合在一起。

您还可以使用一个脚本,在您构建框架时将为您处理合并。

answer此处应为您提供更多指导。