在 React Native 中配置 iOS App Center
App Center生成React Native 0.34 React Native版本编写的应用。
若要生成适用于 iOS React Native应用:
- 连接到存储库服务帐户 (例如:Azure DevOps、Bitbucket、GitHub 或 VSTS) 。
- 选择应用所住的存储库和分支。
- 配置生成的项目或工作区,以及要生成的方案。
备注
若要在真实设备上运行应用,生成需使用有效的预配配置文件和证书进行代码签名。
1.链接存储库
首先,将存储库服务帐户连接到App Center。 连接帐户后,选择 iOS 项目所在的存储库。 必须具有存储库的管理员和拉取权限。
2.选择分支
选择存储库后,选择要构建的分支。 默认情况下,将列出所有活动分支。
3.设置第一个生成
首次生成之前,React Native配置项目。
3.1. Project
选择项目的 package.json 。 App Center 将自动检测关联的 Xcode 项目/工作区。
3.2. Xcode 版本
从下拉列表中选择要在其上运行生成的 Xcode 版本。
如果切换 "使用旧生成系统" 为 On ,则会在项目或工作区设置中使用旧生成系统。
如果切换 "使用旧生成系统" 为 Off ,则将使用项目或工作区设置中的生成系统配置。
备注
- 工作区设置应提交到存储库
- 如果未提交工作区设置,则将使用新式生成系统
3.3. Node.js 版本
选择要用于生成的 Node.js 版本。 了解有关如何选择 Node.js 版本的详细信息
3.4. 生成触发器
默认情况下,每当开发人员推送到配置的分支时,都会触发新的生成。 如果希望手动触发新的生成,可以在 "配置" 窗格中更改此设置。
3.5. 递增生成号
启用后, CFBundleVersion 项目的 info.plist 中的将自动递增每个版本的应用程序。 更改会在预生成后进行,而不会提交到存储库。
3.6. 代码签名
成功的生成会生成 .ipa 文件。 若要在设备上安装生成,必须使用有效的预配配置文件和证书对生成进行签名。 若要对从分支生成的生成进行签名,请在 "配置" 窗格中启用 "代码签名",并将配置 文件 (.mobileprovision 文件) 和有效的证书 ( p12) 连同证书的密码一起上传。
Xcode 项目中的设置必须与要上传的文件兼容。 详细了解 App Center 的 iOS 代码签名 和 Apple 开发人员文档。
使用应用 或 watchOS 扩展对应用进行签名 需要每个扩展的附加预配配置文件。
3.7. 在真实设备上启动成功生成
使用新生成的文件测试应用是否实际在设备上启动;启动测试 .ipa 会增加大约 10 分钟的总生成时间。 详细了解如何 配置启动测试。
3.8. CocoaPods
App Center扫描所选分支,如果找到 Podfile,则会自动执行每个生成 pod install 开始时的步骤。 这可确保安装所有依赖项。
3.9. 分发到通讯组
将分支的每个成功生成配置为分发到以前创建的通讯组。 从"分发"部分添加新的通讯组。 始终有一个称为"协作者"的默认通讯组,其中包含有权访问应用的所有用户。
保存配置后,将自动启动新的生成。
4.生成结果
生成可以具有以下状态之一:
- 已排队 - 生成已排队等待可用资源
- 生成 - 生成正在运行并执行预定义任务
- 成功 - 生成已成功完成
- 失败 - 生成未成功完成;通过下载并检查生成日志来排查问题
- 已取消 -已通过用户操作取消了生成或已超时
4.1. 生成日志
对于已完成的生成 (成功或失败的) 中,下载日志以了解有关生成如何执行的详细信息。 App Center 提供了以下文件的存档:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
版本日志 (位于 build/ 存档) 的目录中,可帮助进行故障排除并了解生成失败的步骤和原因。
4.2. ( 的应用程序)
.ipa文件是包含 iOS 应用的 iPhone 应用程序存档文件。
- 如果生成已正确签名,则可以将该文件安装到在
.ipa签名时使用的预配配置文件中包含的实际设备上。 有关代码签名和分发的详细信息,请参阅 App Center 的 iOS 代码签名文档中的 App Center。 - 如果在生成过程中未对生成进行签名,则开发人员可以使用 codesign) 在本地对 (文件进行签名,也可以将其
.ipa用于其他目的 (例如,上传到测试服务以便在实际设备上进行 UI 测试,或在模拟器) 中运行。 - 未签名的生成不会生成
.ipa文件。 未签名生成的项目是.xcarchive文件,该文件可用于.ipa通过 Xcode 存档管理器生成文件。
4.3. 源映射和符号文件
在生成对本机 iOS 应用程序的响应后,将使用每个生成自动生成一个 JavaScript 源映射和一个或多个 .dsym 文件,并可在生成完成后下载。
- 如果以前已在应用中将 App Center SDK 与启用了故障报告模块集成,则崩溃报告信标需要此
.dsym文件和用于生成的 JavaScript 源映射,以显示用户可读的 (符号化) 崩溃报告。 - 如果你之前在应用程序中集成了另一种用于崩溃报告的 SDK,则相应的服务需要
.dsym文件和 JavaScript 源映射来显示可读 (符号化) 崩溃报告。
请记住,在 .dsym 对代码进行签名时,文件不会发生更改 .ipa 。 如果决定稍后对生成进行代码签名,则代码 .dsym 签名之前生成的 仍有效。
如果此应用包含崩溃 SDK,则 iOS 符号和源映射将发送到 App Center服务。 这些符号将启用本机和 JavaScript 堆栈 (符号化) 报告。
5.生成提示
5.1. 纱
Yarn 是 的更快、更具确定性的替换 npm 。 如果 yarn.lock 旁边存储库存在文件,App Center package.json 将使用 Yarn,在生成开始时 yarn install 执行 。 否则,它将执行 npm install 。
5.2. 自定义生成脚本
在执行默认生成命令之前,App Center运行脚本。
在 项目的 文件中 创建安装后
package.json脚本。 安装依赖项后,会自动执行此操作。"scripts": { ... "postinstall" : "eslint ./" // other examples: "node ./postinstall.js" or "./postinstall.sh" },使用自定义生成脚本App Center 编写 shell 脚本。
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Create a file that's not in version control (from base64 encoded environment variable) base64 -d <<< "$MY_FILE_CONTENTS" > ios/SuperSecretFile.txt