iOS

要求

Apple 开发者账户设置

  1. 接受邀请加入 Bitwarden Apple Developer 团队。您的电子邮件中应该会收到一个请求,主题是「您被邀请加入开发团队」。点击链接「接受邀请」,系统会提示您为自己的 Bitwarden 电子邮件地址创建一个 Apple ID。如果您没有收到这封邮件,请联系 IT 部门 (@IT in slack)。接受条款和条件并完成注册流程。

  2. 访问 Apple ID Online,使用新的 Apple ID 登录。设置因素身份验证(使用手机和/或受信任的设备)-- 这一点至关重要,因为苹果不再允许没有 MFA 的「开发者」账户,但在本地构建失败时它不会告诉你这一点。

  3. 访问 App Store Connect 并接受条款和条件。

  4. 确保您有权访问 Bitwarden 团队和团队应用程序配置文件。

  5. 访问 Apple Developer Account,然后转到「证书、ID 和配置文件」菜单项。检查是否能在「证书」部分看到 8bit Solutions LLC 证书,以及在「配置文件」部分看到 Bitwarden 配置文件。如果缺少其中任何一项,请向 IT 部门 (@IT #tech-support in slack) 询问附加角色/权限。

macOS 设置

接下来,您需要为构建和运行 Bitwarden iOS 移动项目设置 Mac 环境。这需要创建必要的开发人员配置文件,以便在 Mac 上通过 Xcode 进行代码签名和执行。Visual Studio 有一个获取所有供应配置文件的简单过程,但在没有太多反馈的情况下很容易失败。请先尝试 Visual Studio 的说明(「简单的方式」),如果需要,再使用 Xcode 的说明(「复杂的方式」)。

Visual Studio:简单的方式

1、打开 Visual Studio for Mac

2、转到「首选项」->「发布」->「Apple 开发者账户」

3、点击「添加」,选择「企业账户」,然后使用之前配置的 Apple 开发者账户登录

如果您收到「Failed to synchronize with Apple Developer Portal」(无法与 Apple Developer Portal 同步)错误,则表示您缺少附加角色/权限。

成功登录后,您应该在列表中看到您的账户,并在账户团队列表中看到「Bitwarden Inc」

4、点击「查看详细信息...」

5、如果您没有有效的 Apple 开发证书,请点击「创建证书」->「Apple 开发」

6、点击「下载所有配置文件」

7、您现在应该可以通过设置左上角的 iOS > Debug | iPhone Simulator > [pick any iOS Simulator] 然后按「播放」来运行应用程序了

如果可以运行,您可以跳到下一部分。

如果只有「Generic Simulator」(通用模拟器)选项,并提示降低「Deployment Target」(部署目标),则您的 Xamarin 版本可能尚不支持您正在使用的 Xcode 版本(如此处所讨论)。

要解决这个问题,请尝试从 Apple 下载并安装旧版本的 Xcode(您可以从 Xamarin.iOS 发行说明中查找有关使用哪个 Xcode 版本的指导)。安装新版本的 Xcode 后,重启 Visual Studio 并加载项目以验证可用的模拟器选项。

如果您需要在您的开发机器上安装多个版本的 Xcode,您可以将从下载中提取的 Xcode.app 文件重命名为其他名称(例如「Xcode_14_2.app」),然后将其放入您的应用程序文件夹中。然后,您可以在命令行中使用 xcode-select 以在 Xcode 版本之间进行切换:

sudo xcode-select -s /Applications/Xcode_14_2.app

您可以使用 Xcodes.app 等工具获得类似的结果

Xcode:复杂的方式

如果您是下一个按照这些说明操作的人,请提交并上传您创建的 Xcode 项目文件,以便我们简化这一流程。

仅当上述 Visual Studio 说明不适合您时才尝试这些说明。

1、打开 Xcode

2、接受所有默认设置,确保已安装所有扩展/附加组件等

3、「创建新的项目...」->「iOS」->「App」

4、对您的新项目使用以下选项:

  • 产品名称:bitwarden

  • 团队:Bitwarden Inc(如果缺少,请仔细检查上面您的 Apple 开发者账户设置)

  • 组织标识符:com.8bit

  • 绑定标识符(自动生成):com.8bit.bitwarden

  • 语言:Objective-C

  • 用户界面:Storyboard

  • 保留所有其他复选框未选中(或取消选中它们)

5、点击「下一步」,保存到默认位置,然后点击「创建」

6、在项目配置页面上,点击「签名和功能」选项卡

7、确保您具有以下默认值:

  • 自动管理签名:(已选中)

  • 团队:Bitwarden Inc

  • 配置配置文件:Xcode 托管配置文件

  • 签名证书:您的 Apple ID/Name

8、从菜单栏中,点击「产品」->「构建」

9、重复步骤 3-8,并在步骤 4 中进行以下更改:

  • 产品名称:find-login-action-extension

  • 组织标识符:com.8bit.bitwarden

  • 捆绑定标识符(自动生成):com.8bit.bitwarden.find-login-action-extension

10、重复步骤 3-8,并在步骤 4 中进行以下更改:

  • 产品名称:autofill

  • 组织标识符:com.8bit.bitwarden

  • 捆绑定标识符(自动生成):com.8bit.bitwarden.autofill

11、重复步骤 3-8,并在步骤 4 中进行以下更改:

  • 产品名称:share-extension

  • 组织标识符:com.8bit.bitwarden

  • 绑定标识符(自动生成):com.8bit.bitwarden.share-extension

12、如果您有想要用于测试的物理设备(例如 iPhone 或 iPad),您还需要对刚刚创建的每个 Xcode 项目执行以下操作:

  • 用电缆连接设备

  • 在 Xcode 中选择您的设备作为构建目标

  • 从菜单栏中,点击「产品」>「构建」

  • 如果询问,请同意注册您的设备

有时这些配置文件可能会比较混乱。如果您在物理设备(或模拟器)上运行时遇到问题,请尝试运行 rm -r ~/Library/MobileDevice/Provisioning\ Profiles 来清除它们。再次构建每一个 Xcode 项目以重新生成它们。

Visual Studio

接下来,我们需要配置您的 Visual Studio 开发环境。

  1. 连接到您刚刚完成上述步骤的 Mac

  2. 打开 Visual Studio 然后点击「工具」->「iOS」->「与 Mac 配对」

  3. 扫描并选择您的机器。如果看不到,请点击「添加 Mac... 」按钮并输入 Mac 名称或 IP 地址。如果不知道 Mac 名称(或 Mac 上有 Windows 虚拟机),请进入 Mac,打开「系统偏好设置」>「共享」,查找机器的「.local」地址。

  4. 出现提示时提供您的 MacOS 用户名和密码

  5. 配对后,关闭「配对 Mac」窗口

  6. 将活动的构建配置文件更改为「调试」>「iPhoneSimulator」>「iOS」

  7. 从解决方案资源管理器重新构建 iOS 项目

  8. 您现在可以使用 iOS 模拟器进行调试了

调试

iPhone 模拟器

iPhone 模拟器可以访问 localhost,您可以像往常一样将客户端指向本地开发服务器。不过,应用程序默认需要使用 https。要允许使用 http 进行测试,请按以下步骤操作。

1、在 Visual Studio Code 或其他编辑器中打开 src/iOS/Info.plist ,以便可以编辑原始 XML。(不要使用 Visual Studio 中的「属性列表编辑器」)

2、在顶层 <dict> 元素中添加以下代码:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>localhost</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>

3、保存并退出 Info.plist

4、在启动之前按 Command + B 强制运行新的构建

5、不要推送这些更改 :)

iPhone 设备

该设备无法直接访问 Mac 的本地主机,因此您可以遵循本指南来连接它们。

完成此操作后,您还必须修改 Info.plist 以允许 http 用于测试,如之前在模拟器测试中所解释的那样。

您也很可能需要更改服务器上每个项目的 Properties 上的 launchSettings.json。在那里,您需要更改 iisSettings -> iisExpressprofiles -> IdentifyapplicationUrl ,以便它显示 name.local 而不是 localhost,其中 name 是您在 Mac 共享配置中设置的计算机名称。

在实际测试应用程序之前,请打开浏览器并尝试通过访问 http://name.local:4000/alive 以连接到 Api 。如果这不起作用,请查看指南或服务器配置中的步骤。确保您的 User secrets 也是最新的。

最后,您必须在手机上配置 ApiIdentity URL 才能使用 http://name.local:4000http://name.local:33656 ,其中 name 是您在 Mac 共享配置中设置的计算机名称。

iOS 扩展

  1. 将 iOS 扩展项目设置为启动项目

  2. 您将收到一个弹出窗口,显示「Waiting for the debugger to connect...」(正在等待调试器连接...)

  3. 不要打开 Bitwarden 应用程序(否则调试器将连接到它而不是连接到扩展)。相反,触发扩展

  4. 您的扩展断点现在应该被命中

例如:如果您想调试 iOS.Autofill 扩展,您需要完成步骤 1-3,然后转到您的 iOS 设备,打开浏览器,登录,点击钥匙图标并从底部弹出窗口打开 Bitwarden。

使用服务器隧道​

您应该使用连接到本地服务器的代理隧道,让您的应用程序直接与之连接,而不是将设备或模拟器配置为忽略 SSL 证书。

推送通知(实时同步和无密码)​

推送通知当前不可用于调试部署。它们仅在 TestFlight 和生产版本上受支持。

最后更新于