iOS 生成故障排除
找不到 Xcode 方案
生成 xcworkspace 或 xcproject 需要共享的 Xcode 方案。 Xcode 方案保存在本地,因此 Xcode 可以访问它们。 默认情况下,不与其他方案共享或包含在源代码管理中。
若要在 Xcode 中共享方案,请使用以下步骤:
- 选择 " 产品 > 方案" > 管理方案"。
- 将 xcproject/xcworkspace 的方案设置为 " 共享"。
- 方案的容器必须设置为要生成的 Xcode 项目或工作区。
- 将
.xcscheme文件添加到源代码管理并推送到远程存储库,以便 App Center 能够访问该文件。

警告
请确保你的 xcshareddata/xcschemes/ 文件夹不在 .gitignore 文件中。 这是 .xcscheme Xcode 存储文件的位置。 App Center 依赖于这些文件来正确生成项目。 只需将导 .xcscheme 入到不同的文件夹中即可。
我的 iOS 生成失败,出现 "clang:错误:链接器命令失败,退出代码为 1"
App Center 使用 .xcodeproj 而不是工作区进行生成,可能会导致此错误。 将 CocoaPods 添加到项目时,在工作区中生成时切换到App Center。
指示器:在生成日志中查找此行:
ld: library not found for -lPods-GarageController
clang: error: linker command failed with exit code 1 (use -v to see invocation)
** ARCHIVE FAILED **
若要修复此错误,请打开项目的"生成"配置,然后单击"保存 "。 App Center会自动为将来的生成正确选择工作区。
iOS 签名问题说明
备注
生成中不支持使用非 ascii 字符的签名标识。
处理预配配置文件和证书可能是一个极具挑战性的过程。 以下提示可帮助你成功对 iOS 应用进行签名:
将签名更改App Center项目后,将生成配置保存在项目中。 在App Center中,任何分支的生成配置都存储 Xcode 项目的两个值:和 (在文件夹中的 文件中
CODE_SIGN_STYLEDEVELOPMENT_TEAMproject.pbxproj.xcodeproj) 。 每当在手动和自动签名之间进行更改或切换开发团队时,请确保在推送更改App Center保存生成配置。 如果在推送后未保存,生成可能会失败并出现签名错误。使用自动签名时拖放正确的预配配置文件。 在 Xcode 中,在目标"签名"下的"常规"选项卡中,单击 "Xcode 托管配置文件"旁边的信息图标。 然后,你将看到一个包含配置文件信息的弹出窗口。 单击左上方 的 PROV 图标并将其拖动到 (位置,如下所示) 。
使用手动App Center自动签名时,请记下当前支持的选项。 App Center完全支持手动 iOS 应用签名,因此可以使用任何类型的配置文件或证书。 验证要上传到的预配配置文件App Center证书是否与项目中指定的设置配置文件和证书匹配。 如果已启用"在Xcode 中自动管理签名",App Center支持使用开发人员证书和配置文件进行应用签名, (分发) 。 上传到 App Center时,需要从 Xcode 使用自动生成的预配配置文件。
仍然遇到问题?
若要进行故障排除和生成注册并运行,建议执行以下步骤:
- 在 Xcode 项目中设置手动登录,并确保它在本地正常工作。
- 验证后,提交更改并推送到存储库。
- 准备在 Xcode 目标中选定的预配配置文件和证书,并将其上传到App Center配置。
- 最重要的是:在将新证书和配置文件保存到生成配置之前,请确保已推送项目的最新状态。
我的 .ipa 文件在哪里?
Xcodebuild 与 xcrun 不同,如果生成未签名,则 .ipa 不允许生成文件。 无符号生成将生成 .xcarchive 。 如果要生成包含未签名生成的项目的文件,可以使用 .ipa .xcarchive 该文件来这样做。

使用 Xcode 的 iOS 应用失败,出现"位码版本无效"错误
如果生成失败,则使用的库或 Pod 是由比项目更新的 error: Invalid bitcode version (Producer: '802.0.38.0_0' Reader: '800.0.42.1_0') Xcode 版本构建的。 可以在 App Center 中更新项目和生成配置,以使用较新版本的 Xcode,或切换到有问题的库的备用版本,该版本使用匹配的 Xcode 版本进行编译。
我的 iOS 应用无法运行测试
测试失败的常见原因是链接器命令出现类似于以下的错误:
ld: directory not found for option iPhoneSimulator10.3.sdk/Developer/Library/Frameworks
❌ ld: embedded dylibs/frameworks are only supported on iOS 8.0 and later (@rpath/XCTest.framework/XCTest) for architecture x86_64
❌ clang: error: linker command failed with exit code 1 (use -v to see invocation)
此错误的可能原因是 Apple Mach-O 链接 器的链接类型未设置为 静态库。 若要成功生成和测试应用,请确保测试目标中 Apple Mach-O 链接器 的链接 类型设置为****静态库。

在 Xcode 9 上使用 CocoaPods 的 iOS 生成持续失败,我该怎么办?
这可能是因为 Pod 项目中的签名配置不同于主项目中的签名配置。 Pod 是否签入到存储库中? 如果是这样,Pods 项目必须使用与 Main 项目相同的签名方法。
如果未签入 Pod,则可能会有不同的问题。 可通过此 GitHub 问题与预生成脚本 一起使用 一些解决方法。
由于我已将项目升级到 Xcode 10 beta 版本,因此我的应用无法生成,并出现错误"在目标之间的 依赖项中循环"
Xcode 10 的新生成系统检测生成中的依赖项周期,并失败生成(如果有)。
若要详细了解如何修复生成,请参阅 Apple 有关解决常见依赖 周期类型的文档。