所以我尝试使用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."
您的框架包含ARM和x86代码,这允许您在设备或模拟器中使用它。如果你打算将你的应用程序提交到应用程序商店,运行以下脚本从二进制文件中剥离非活动代码。
1.在Project Navigator中选择您的目标,并单击项目编辑器顶部的Build Phases。
2.从“编辑器”菜单中选择“添加构建阶段”,然后选择“添加运行脚本构建阶段”(或单击“构建阶段”编辑器左上角的“+”按钮)。
3.展开刚刚添加的新Run Script构建阶段旁边的披露三角形。在脚本编辑器中,粘贴如下内容:
bash
$ {BUILT_PRODUCTS_DIR} / $ {FRAMEWORKS_FOLDER_PATH} / / strip-frameworks.sh“YourframeworkName.framework”
如果你正在使用迦太基,那么你可能会遇到这个问题,因为项目是:
缺少carthage复制框架构建阶段。
或者构建阶段不包括所有的框架(不完整的列表)。
该操作将框架筛选为一组有效的体系结构(代码)。
设置复制框架构建阶段
来自迦太基建筑的iOS步骤:
On your application targets’ “Build Phases” settings tab, click the
“+” icon and choose “New Run Script Phase”. Create a Run Script in
which you specify your shell (ex: bin/sh), add the following contents
to the script area below the shell:
/usr/local/bin/carthage copy-frameworks
and add the paths to the frameworks you want to use under “Input Files”, e.g.:
$(SRCROOT)/Carthage/Build/iOS/Box.framework
$(SRCROOT)/Carthage/Build/iOS/Result.framework
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework
This script works around an App Store submission bug triggered by universal
binaries and ensures that necessary bitcode-related files and dSYMs
are copied when archiving.