所以我尝试使用Shopify API。当我存档并验证应用程序时,就没有问题了,但当我将其提交到应用程序商店时,它就会给我以下问题。

ERROR ITMS-90087: "Unsupported Architecture. Your executable contains unsupported architecture '[x86_64, i386]'." ERROR ITMS-90209: "Invalid segment Alignment. The App Binary at SJAPP.app/Frameworks/Buy.framework/Buy does not have proper segment alignment. Try rebuilding the app with the latest Xcode version." (I am already using the latest version.) ERROR ITMS-90125: "The Binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's Linker." WARNING ITMS-90080: "The Executable Payload/..../Buy.framework is not a Position Independent Executable. Please ensure that ur build settings are configured to create PIE executables."


当前回答

如果您正在使用Carthage,请确保您的嵌入框架构建步骤在Carthage复制框架之前


在一些不寻常的情况下(例如:Lottie-iOS框架):

你可以像往常一样在“链接库”中找到它。 然而,你还必须显式地在“嵌入框架”中添加它(即使这看起来毫无意义,因为当你只在“嵌入框架”中添加它时,它会完美地工作), 然后把它放到复制框架中 确保copy-frameworks在“Embed Frameworks”后面

其他回答

对我来说最简单的解决方法是

1-从嵌入式框架中移除框架。 2-添加框架作为链接框架

完成了!

如果您正在使用Carthage,请确保您的嵌入框架构建步骤在Carthage复制框架之前


在一些不寻常的情况下(例如:Lottie-iOS框架):

你可以像往常一样在“链接库”中找到它。 然而,你还必须显式地在“嵌入框架”中添加它(即使这看起来毫无意义,因为当你只在“嵌入框架”中添加它时,它会完美地工作), 然后把它放到复制框架中 确保copy-frameworks在“Embed Frameworks”后面

我通过从嵌入式二进制部分(Xcode target -> General选项卡)删除一个框架(优秀的SVProgressHUD)来解决ITMS-90080错误。

使用下面的步骤从框架中删除[x86_64, i386]。[x86_64, i386]用于模拟器。

打开终端 打开你的项目拖动路径各自的框架到终端 例如:cd /Users/MAC/Desktop/MyProject/Alamofire.framework 在下面的命令中设置你的框架名称并运行

lipo -remove i386 Alamofire -o Alamofire && lipo -remove x86_64 Alamofire -o Alamofire

现在再次打开您的项目,清洁,构建和运行,并创建存档…

我从构建设置-有效架构-发布中删除了i386和x64_86架构,一切都工作得很好。

现在唯一的问题是您不能为了测试目的在模拟器上运行RELEASE版本。但是,如果你想的话,你可以很容易地把它们加回来。