2023.11.25更新关于mac开发APP(flutter)的笔记与整理(实机开发一)

我自己写的笔记很杂,下面的笔记是我在chatgpt4的帮助下完成的,希望可以帮到正在踩坑mac开发APP(flutter)的小伙伴

目标:通过MAC电脑使用flutter框架开发一款适用于苹果手机的一个APP应用

本博客的阅读顺序是,在了解了具体的环境布置的步骤后,看( 二.亲测参考可用的资料链接) 里面进行详细的mac电脑上的部署,出现问题遇到坑了就可以在本博客里面找找有没有类似的与解决方法。反正我之前网上找的时候就是没有个全乎的,要不是有gpt我都不知道要卡多久,看到这了,还不快点个赞,然后说谢谢博主。
请添加图片描述

在这里插入图片描述

(这里的笔记大概总结下,

1.完成在mac上的flutter的搭建(该部分涉及flutter,dart,Xcode, Android Studio 等环境的搭建,当你成功的在flutter doctor
命令的检测下看到全是绿色的勾勾的时候,你就完成了第一步如下图,最后的网络连接是感叹号可以不管哈,这是我flutter没有配置国内的网站的原因)

在这里插入图片描述
当完成上一步后,如果是flutter的学习就可以先停下了,利用安卓和 苹果的模拟器进行学习了,如果还有想试试将写好的app放到苹果设备(无论是手机还是平板还是mac),这个时候你就需要开始下一步了

2.交钱成为苹果开发者(我之前还以为之后上架APP才需要交钱,苹果你是真的会赚钱啊…),登陆苹果开发者网站,获取开发证书,登记上你要连接测试的实际硬件设备编号。

完成这些后,为了实机测试就可以开始下面的步骤了

3.在你的项目中完成你获得的证书的数据的配置,然后你就可以使用 Vscode或者Android Studio 进行APP或者网页的调试开发了。

以上步骤坑了我一周,希望大家能在这个文档的帮助下比我更快的弄出来,创了个QQ群 701602496,答案是 Python ,大家需要帮助的话加群互帮互助,毕竟我自己本人CSDN看留言很久才看一次。

(能科学上网的小伙伴也可以订阅这个我创建的flutter学习猫娘进行学习,不过poe好像要付费,如果没有领到免费次数的话就不用订阅了哈,别乱花钱。 https://poe.com/miao_miao_Flutter_01)

哦还有个要说的,虽然应该这种情况很少,但是哈,如果有人想开发的APP需要运行在版本很低的苹果系统版本上,那么你的mac版本就不要升到最高级然后按照xcode,不然写出来的APP可能没法适应低版本的硬件。

一.Mac上进行Flutter实体开发所需的准备的总体说明

(默认已经完成了mac上的flutter的环境搭建,没完成的参考下面的 二里面的参考链接)

1. 开发工具和硬件需求

进行实体开发,你需要有以下几个工具和础件:

  1. 苹果开发者账户:你需要一个苹果开发者账户才能进行实体开发。你可以在苹果开发者网站注册一个账户。注意,获取开发者账户可能需要付费。
  2. 开发证书:你需要从苹果开发者网站获取一个开发证书。这个证书将被用来签署你的应用,表明这个应用是由你开发的。
  3. 实体设备:当然了,你需要一个实体设备来进行开发和测试。你需要在苹果开发者网站注册你的设备。

2.获取开发证书和注册设备

  1. 登录苹果开发者网站:使用你的苹果开发者账户登录苹果开发者网站。
  2. 获取开发证书:在开发者网站上,你可以申请一个开发证书。你需要下载这个证书并安装到你的 Mac 上。这个证书将在你进行开发和调试时用来签署你的应用。
  3. 注册设备:你需要在开发者网站上注册你的实体设备。你需要提供设备的 UDID,这是一个唯一的设备识别码。

二.亲测参考可用的资料链接

1.Mac下Flutter环境安装参考

主要就参考这个配置【Flutter】Flutter安装和配置超详细(mac)

安装失败adb参考Mac安装adb环境

adb 是 Android Debug Bridge 的缩写,它是一个命令行工具,允许你与正在运行的 Android 设备或模拟器实例进行通信。你可以使用 adb 来安装和调试 Android 应用程序,以及执行各种设备和应用管理任务。

下面选择性参考,如果你的doctor flutter 检测发现还差哪些就补哪些

  1. 安装 Flutter SDK:你可以从官方网站下载 Flutter SDK。解压并将 Flutter 文件夹放在你的希望的位置。然后,将 Flutter/bin 目录添加到你的环境变量中。
  2. 安装 Dart SDK:Dart SDK 已经包含在 Flutter SDK 中,所以你不需要独立安装。
  3. 安装 Xcode:你可以从 App Store 下载安装 Xcode。Xcode 包含了开发 iOS 应用所需的软件和工具集。
  4. 安装 Android Studio:从官方网站下载并安装 Android Studio。在安装过程中,你可以选择同时安装 Android SDK 和 Android 虚拟设备。或参考 mac电脑安装Android studio

5.android sdk要用 Android Studio还得安装进行 mac 安装配置android sdk

2.成为苹果开发者的参考链接

  • 苹果应用app证书申请创建参考
  • 完成所有配置后实机操控参考 YouTube
  • 苹果开发权限申请

5 苹果应用app参考资料:
参考链接:CSDN教程
参考视频:YouTube教程

  1. 苹果开发权限申请:
    你需要访问Apple Developer Portal进行申请。完成申请付款后,你还会收到邮件用于上传身份证等的验证审核。

  2. 添加设备iPhone 的UDID:(要实机测试就得在买了开发者权限后进行设备登记)
    参考链接:CSDN教程
    设备添加完成后,你可以在Apple Developer Portal中看到结果。

三.flutter环境的常见问题与解决方法

具体的步骤的就不写了,别人的链接里面还是很详细的,只是有些坑记录下

1.flutter 命令没有

  • 环境变量问题:如果你在设置环境变量后无法直接在终端使用 Flutter 命令,你可能需要检查你的环境变量设置。确保 Flutter/bin 目录已经被正确地添加到 PATH 环境变量中。
    如果你在 macOS 上配置 Flutter 环境,你需要设置一些环境变量,包括 Android SDK 的路径以及 Flutter SDK 的路径。以下是如何进行设置的步骤:

提示,android-sdk的变量和设置flutter发布来源为国内用户网站, 需要设置也是按照下面的方法。(gedit是我常用的,没安装的用vim或者vi或者nano打开都可以)(brew install gedit 安装gedit文本编辑模块)

  1. 打开终端。

  2. 输入以下命令打开 .bash_profile 文件(如果你使用的是 zsh,你应该编辑 .zshrc 文件):

    open -e .bash_profile
    

    如果你的系统中没有安装 open 或者你更习惯使用 gedit,你可以使用以下命令:

    gedit .bash_profile
    
  3. 在打开的文件中,添加以下行以设置环境变量:

    export ANDROID_HOME=/opt/homebrew/Caskroom/android-sdk
    export PATH=${PATH}:${ANDROID_HOME}/tools
    export PATH=${PATH}:${ANDROID_HOME}/platform-tools
    export PUB_HOSTED_URL=https://pub.flutter-io.cn #国内用户需要设置
    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn #国内用户需要设置
    export PATH=/Users/hiro/Desktop/APP/flutter/bin:$PATH
    

    注意:请根据你的实际 Flutter SDK 和 Android SDK 的安装路径来替换上述路径。上述路径仅用作示例。

  4. 保存并关闭 .bash_profile 文件。

  5. 在终端中,运行以下命令以使新的环境变量立即生效:

    source .bash_profile
    
  6. 验证 Flutter 已成功添加到环境变量中,你可以在终端中运行:

    flutter doctor
    

    如果 Flutter 已经正确配置,你应该能看到类似的输出,包括关于你的 Flutter 和 Dart 的版本信息,以及任何可能需要解决的配置问题。

2.若使用Homebrew 的安装出现问题的解决方案(谨慎使用)

Homebrew 是一款免费和开源的软件包管理系统,专门为 macOS 操作系统(虽然也存在 Linux 和 Windows 上的版本)设计,用于自动化安装、更新和卸载软件。它简化了在 macOS 上安装各种软件的过程,特别是那些不包含在 Apple App Store 中的软件。

因为转flutter的有些组件可能要用上 Homebrew 来进行安装,但是mac下Homebrew由出错了,就可以参考这里的做法。

这是一个基础的故障排除步骤,用于解决安装 Homebrew 时出现的问题。以下是如何完全卸载并重新安装 Homebrew 的步骤:

首先,打开你的终端,然后输入以下命令来卸载 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)"

这个命令会从 Homebrew 的 GitHub 存储库下载并运行 uninstall 脚本。

一旦完成卸载,你可以通过以下命令重新安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

这个命令会从 Homebrew 的 GitHub 存储库下载并运行 install 脚本,从而重新安装 Homebrew。

请确保在你的终端中精确复制和粘贴上述命令,避免任何输入错误。

3.doctor flutter 报错之[✗] Android toolchain

[✗] Android toolchain - develop for Android devices ✗ Unable to locate Android SDK. Mac终端配置报错问题解决

4.cocoapods安装失败解决

参考链接
安装完成后可通过下面命令,验证是否成功
pod --version

成功看到版本号说明,cocoapods安装成功,但是依然出现下面错误的话,可能是下面原因

[!] Xcode - develop for iOS and macOS
✗ Xcode installation is incomplete; a full installation is necessary for iOS and macOS
development.
Download at: https://developer.apple.com/xcode/download/
Or install Xcode via the App Store.
Once installed, run:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch

错误信息提示 Xcode 的安装是不完整的,这可能是因为你没有安装 Xcode,或者没有将它设置为当前的命令行工具。你可以按照以下步骤来解决这个问题:

  1. 首先,你需要确保你已经从 Mac App Store 安装了最新版本的 Xcode。你也可以从 Apple Developer 网站下载和安装 Xcode:https://developer.apple.com/xcode/download/

  2. 安装 Xcode 后,你需要打开它并同意用户许可协议。这一步是很重要的,因为在你同意许可协议之前,Xcode 的命令行工具是不可用的。

  3. 然后,你需要将 Xcode 的命令行工具设置为当前使用的工具。你可以使用以下命令来进行设置:

    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    
  4. 最后,你需要让 Xcode 运行一次首次启动的初始化过程。你可以使用以下命令来进行这个操作:

    sudo xcodebuild -runFirstLaunch
    

完成以上步骤后,你应该可以成功地使用 Xcode 和 CocoaPods 来进行 iOS 和 macOS 开发了。你可以再次运行 flutter doctor 来检查你的环境是否已经配置正确。
还有下面错误的话

[!] Xcode - develop for iOS and macOS (Xcode 15.0.1)✗ Unable to get list of installed Simulator runtimes.
---------------------

这个问题可能是因为你的 Flutter 环境无法获取已安装的 iOS 模拟器运行时列表。你可以尝试以下步骤修复这个问题:
大概率你没有安装模拟器

  1. 打开 Xcode,在顶部菜单栏选择 “Window” -> “Devices and Simulators”。

  2. 在打开的窗口中,选择 “Simulators” 标签。

  3. 在左下角,点击 “+” 图标来创建一个新的模拟器。

  4. 在弹出的对话框中,你可以选择你想要的设备类型(如 iPhone 12)和 iOS 版本。然后给模拟器取一个名称,最后点击 “Create”。

创建完成后,你应该能在 “Devices and Simulators” 窗口的 “Simulators” 列表中看到你新创建的模拟器。

然后,你可以再次运行 flutter doctor 来看看问题是否已经解决。如果还有问题,那可能是其他的配置问题,你可能需要进一步检查你的 Flutter 和 Xcode 环境。

如果显示 Could not create pp, unknown runtime.
此错误通常发生在尝试创建模拟器时,如果选择的 iOS 运行时版本尚未在你的 Xcode 中安装。你可以按照以下步骤来解决:

打开 Xcode,在顶部菜单栏选择 “Xcode” -> “Preferences”。

在弹出的窗口中,选择 “Components” 标签。

在这里,你将看到一个列表,其中包括各种 iOS 模拟器运行时。查找你尝试创建的模拟器所对应的 iOS 版本,如果它旁边的方框为空,那意味着这个运行时尚未安装。点击这个方框来下载并安装运行时。

下载和安装完成后,你应该可以成功地创建一个新的模拟器,使用你刚刚安装的 iOS 运行时版本。

如果你仍然遇到问题,可能是因为你的系统或 Xcode 版本太旧,不支持你想要的 iOS 运行时。在这种情况下,你可以尝试更新你的 macOS 和 Xcode,或者选择一个较旧的 iOS 运行时来创建模拟器。


5. ruby的版本不对应flutter

遇到的一个问题是 flutter需要ruby的版本为2.7.4以上,而mac自带的又只有2.6,所以下面这一步在 flutter doctor
下 就是要失败,因为版本原因安装不上 cocoapods 导致的

[!] Xcode - develop for iOS and macOS (Xcode 15.0.1)✗ Unable to get list of installed Simulator runtimes.✗ CocoaPods not installed.CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.Without CocoaPods, plugins will not work on iOS or macOS.For more info, see https://flutter.dev/platform-pluginsTo install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.

1.手动安装 Ruby 3.0.6

因为用rbenv安装源失败了,这里写下该如何手动安装rbenv

比如我这里手动下载了 ruby-3.0.6.tar.gz 安装包
ruby-3.0.6.tar.gz 零积分下载
如果你在使用 rbenv 安装 Ruby 源时遇到问题,你可以考虑手动安装 Ruby。下面是在 macOS 上手动安装 Ruby 并将其链接到正确的 OpenSSL 库的步骤:

  1. 安装必要的工具和库

    安装 Xcode 和 Command Line Tools:

    xcode-select --install
    

    检查是否安装了 Xcode 和 Command Line Tools,可以运行 xcode-select -pgcc --version

  2. 解压 Ruby 源代码

    进入存放 ruby-3.0.6.tar.gz 的目录,执行以下命令:

    tar xzf ruby-3.0.6.tar.gz
    

    这将创建一个名为 ruby-3.0.6 的目录。

  3. 获取 OpenSSL 的路径

    执行以下命令:

    brew --prefix openssl
    

    这个命令将输出类似 /usr/local/opt/openssl 的结果。

  4. 编译和安装 Ruby

    进入 ruby-3.0.6 目录,执行以下命令:

    cd ruby-3.0.6
    ./configure --with-openssl-dir=/opt/homebrew/opt/openssl@3
    make
    sudo make install
    

    这些命令将编译并安装 Ruby。如果在编译过程中出现权限问题,可以尝试使用 sudo make

  5. 安装完成后的验证

    安装完成后,运行 ruby -v。如果还是显示的是老版本的 Ruby,运行以下命令:

    export PATH="/usr/local/bin:$PATH"
    

    这是因为系统可能仍然指向旧版本的 Ruby,这可能是由于 $PATH 环境变量的设置问题。可以通过修改 $PATH 的顺序来优先使用新安装的 Ruby。

  6. 可能的问题

    如果你在运行 ruby -v 后仍然看到旧版本的 Ruby,那么可能是系统仍然指向了旧版本的 Ruby。这可能是因为 $PATH 环境变量的设置问题。你可以通过查看 $PATH 的内容(通过 echo $PATH 命令)并修改其顺序来解决这个问题。

    如果你经常需要切换 Ruby 版本,或者在不同的项目中使用不同的 Ruby 版本,你可以考虑使用 Ruby 版本管理器,如 rbenvrvm

通过以上步骤,你应该能成功安装并使用 Ruby 3.0.6 版本。
如下显示你的ruby就成功了:

(base) hiro@HirodeAir ~ % echo $PATH
/usr/local/sbin:/usr/local/bin:/Users/hiro/Desktop/APP/flutter/bin:/usr/local/sbin:/usr/local/bin:/Users/hiro/mambaforge/bin:/Users/hiro/mambaforge/condabin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/Applications/VMware Fusion Tech Preview.app/Contents/Public:/opt/homebrew/Caskroom/android-sdk/4333796/tools:/opt/homebrew/Caskroom/android-sdk/4333796/platform-tools
(base) hiro@HirodeAir ~ % export PATH="/usr/local/bin:$PATH"
(base) hiro@HirodeAir ~ % ruby --version                    
ruby 3.0.6p216 (2023-03-30 revision 23a532679b) [arm64-darwin23]
(base) hiro@HirodeAir ~ % 

2.另一种安装 Ruby 的方式:使用 RVM

Ruby Version Manager (RVM) 是一种命令行工具,可以用于管理和切换 Ruby 版本。此外,它也可以用于安装 OpenSSL。

1.安装 RVM

首先,我们需要在终端中运行以下命令以安装 RVM:

\curl -sSL https://get.rvm.io | bash -s stable

安装完成后,需要关闭并重新打开终端,或者运行以下命令来使 RVM 生效:

source ~/.rvm/scripts/rvm

2.使用 RVM 安装 Ruby 和 OpenSSL

安装好 RVM 后,你可以使用 RVM 来安装所需的 Ruby 版本以及对应的 OpenSSL。运行以下命令:

rvm install 3.0.6 --with-openssl-dir=/opt/homebrew/opt/openssl@3

在安装过程中,可能会提示输入密码,这是因为 RVM 需要 sudo 权限来安装 Ruby 和 OpenSSL。

  1. 检查安装

安装完成后,可以使用以下命令来检查 Ruby 和 OpenSSL 是否正确安装:

ruby -v
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_LIBRARY_VERSION'

第一个命令应返回刚安装的 Ruby 版本,第二个命令应返回 OpenSSL 的版本。

现在,你应该可以使用 gem 命令来安装 cocoapods 了:

gem install cocoapods

至此,通过 RVM 安装 Ruby 和 OpenSSL 的过程已经完成。

四.苹果开发者的常见问题与笔记

1.云端网页完成设备添加后创建证书图示记录

1.1设备添加(UDID添加)

参考ios : Provision Profile 添加设备 device的 udid

官网:苹果开发者设备添加页面

1.2创建证书

官网 : 苹果开发者证书创建页面

在这里插入图片描述
根据我的开发流程阶段选择对应的证书生成我正在开发 Flutter 应用程序,并且目的是在 iPhone 设备上进行实机测试,所以我应该选择 “iOS App Development” 类型的 Provisioning Profile。

iOS App Development:创建一个Provisioning Profile以在 iOS,iPadOS,watchOS 和 tvOS 测试设备上安装开发应用。

以下是选择此选项的原因:

设备测试:这个选项使您能够在实际的设备上进行应用测试,这对于捕获某些只能在真实设备上复现的问题是必要的。

开发阶段:在开发阶段,您通常不需要将应用分发给大量用户或提交到 App Store。“iOS App Development” 类型的
Provisioning Profile 正是为此设计的。

支持 Flutter:使用 “iOS App Development” 类型的 Provisioning Profile,您可以构建并安装
Flutter 应用到 iOS 设备上进行测试和开发。

而但我准备将应用提交到 App Store 时,我需要创建并使用一个 “App Store” 类型的 Provisioning
Profile。
在这里插入图片描述

下一步我们选择一个程序id(App ID 是一个唯一的标识符,它关联着你的应用和你的开发者账户。每个 iOS 应用都需要一个 App ID 来使用特定的服务(如推送通知、In-App Purchase等)并且在设备上安装。)

登录到 Apple Developer Portal。
在 “Certificates, Identifiers & Profiles” 部分,选择 “Identifiers”。
点击 “+” 按钮来创建一个新的 App ID。输入你的应用的 Bundle Identifier 和其他相关信息。在这里插入图片描述
在这里插入图片描述
下载完成后使用取消自动安装,使用手动安装证书的方法进行,主要这里填写的Bundle Identifier (反向域名构成的唯一标识符,用于在 iOS 和 macOS 系统中识别应用) 是你创建证书时对应的,比如xxxxaaa.com.ppdsa.dd 就是你的 Bundle Identifier。这个标识符由两部分组成:

xxxxaaa这一部分是你的 Team ID,这是一个由 Apple 自动生成的唯一标识符,用来标识你的开发团队。

com.ppdsa.dd 这一部分是你为你的应用指定的标识符。按照通常的规则,它应该是你的公司网站的反向域名,后面跟上你的应用名。
而在Xcode中如下图你应该填写的是om.ppdsa.dd ,不要全填写进去了.

2.Xcode配置证书图示

在这里插入图片描述完成后点击感叹号,看到include你的设备不为0的时候,就说明证书成功了
在这里插入图片描述
在这里插入图片描述

3.验证是否安装成功了开发证书的一个方法

根据以下步骤在 Xcode 中检查:

  1. 打开 Xcode
  2. 选择 “Xcode” 菜单 -> “Preferences”
  3. 在 “Preferences” 窗口中,选择 “Accounts” 选项卡
  4. 选中你的 Apple ID,然后点击 “Manage Certificates…”
  5. 在弹出的窗口中,你应该可以看到一个类型为 “iOS Development” 的证书。这个证书应该包含你的名字和一个有效的到期日期。

在钥匙串访问(Keychain Access)应用中检查:

  1. 打开 “钥匙串访问”(在 Finder 中,选择 “Applications” -> “Utilities” -> “Keychain Access”)
  2. 在 “钥匙串” 列表中,选择 “登录”,然后在 “类别” 列表中,选择 “证书”
  3. 在证书列表中,查找一个名字为 “iPhone Developer: Your Name (XXXXXXXXXX)” 的证书,其中 “Your Name” 是你的名字,“XXXXXXXXXX” 是你的 Team ID。这个证书应该有一个有效的到期日期,并且没有任何错误或警告。

如果你在 Xcode 和钥匙串访问(Keychain Access)应用中都能看到你的开发证书,那么你应该已经成功创建并安装了证书。

完成证书安装后对Android Studio 的设置
对于 Flutter 项目的 iOS 平台开发设置,主要是指在 Xcode 中配置项目的一些基本信息,这些信息主要包括 Bundle Identifier、版本号、开发团队等。以下是具体步骤:

  1. 打开项目的 iOS 配置:在你的 Flutter 项目目录中,你会看到一个名为 ios 的文件夹。在这个文件夹中,有一个名为 Runner.xcworkspace 的文件。双击这个文件,会在 Xcode 中打开你的 Flutter 项目的 iOS 配置。在这里插入图片描述

  2. 设置 Bundle Identifier:在 Xcode 中,选择 “Runner” 项目,在 “General” 选项卡中的 “Identity” 部分,你可以设置你的应用的 “Bundle Identifier”。这个标识符是你的应用在 App Store 和你的设备上的唯一标识。

3.设置开发团队:在 “General” 选项卡中的 “Signing & Capabilities” 部分,你可以选择你的开发团队。如果你已经加入了 Apple Developer Program 并且已经在 Xcode 中添加了你的 Apple ID,你应该可以在这里看到你的开发团队。选择你的开发团队,Xcode 将自动为你的应用创建并管理证书和签名。在这里插入图片描述
4. 设置版本号:在 “General” 选项卡中的 “Identity” 部分,你可以设置你的应用的 “Version” 和 “Build”。每次你发布你的应用时,你都应该增加这些版本号。

  1. 保存并关闭 Xcode:完成以上配置后,保存你的配置(选择 “File” 菜单 -> “Save”),然后关闭 Xcode。

现在,你的 Flutter 项目应该已经完成了 iOS 平台的开发设置。你可以回到 Android Studio,然后尝试运行你的应用看看是否可以成功安装到你的 iPhone 上。

4.完成环境证书配置后的项目mac项目创建

还是参考这里面的项目配置参考

我在mac上是使用的Android Studio 进行的flutter项目的开发,下面我截一些图,可以参考一些在所以环境与证书完成后的一些设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在连接数据线连接上硬件(苹果手机后)
可以在 Xcode下的Windows的 Device and Simulators 选项中看到连接上的硬件

在这里插入图片描述
在这里插入图片描述
在Android Studio中也可以看到下面的输出,说明程序成功的写入了选择的硬件设备中
在这里插入图片描述
这时如果你的程序是有页面的,就可以在硬件设备,我这里就是个苹果手机上,看到实际APP的对应画面

在这里插入图片描述

五.其他补充

Xcode下勾选这个地方,如果mac和你要调试的硬件在一个局域网内就可以通过WiFi进行调试链接,不用插数据线了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/169721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Docker]十.Docker Swarm讲解

一.Dokcer Swarm集群介绍 1.Dokcer Swarm 简介 Docker Swarm 是 Docker 公司推出的用来管理 docker 集群的工具, 使用 Docker Swarm 可以快速方便的实现 高可用集群 ,Docker Compose 只能编排单节点上的容器, Docker Swarm 可以让我们在单一主机上操作来完成对 整…

C语言—二维数组

一、二维数组的创建 int arr[3][4];char arr[3][5];double arr[2][4]; 数组创建:“[ ]”中要给一个常量,不能使用变量 二、二维数组的初始化 int arr[3][4]{1,2,3,4};int arr[3][4]{{1,2},{4,5}};int arr[][4]{{2,3},{4,5}}; 前面的为行&#xff0c…

『亚马逊云科技产品测评』活动征文|低成本搭建物联网服务器thingsboard

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 0. 环境 - ubuntu22(注意4G内存勉强够,部署完…

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程

『Postman入门万字长文』| 从工具简介、环境部署、脚本应用、Collections使用到接口自动化测试详细过程 1 Postman工具简介2 Postman安装3 Postman界面说明4 一个简单请求4.1 请求示例4.2 请求过程 5 Postman其他操作5.1 import5.2 History5.3 Environment5.4 Global5.5 其他变…

使用信息面板沟通研发工作

凌鲨里面的内容面板里面有专门针对研发团队的白板功能,它可以把文档,图片,软件设计,需求,任务/缺陷等相关研发要素串接起来。 使用 你还可以调整背景颜色。 引用项目内数据 点击面板中的连接会在右侧打开对应内容

不要再往下翻了,你要的女宝穿搭我都有哦

分享女儿的睡衣穿搭 清新自然的浪漫紫 一眼就击中了我的心巴 软糯亲肤上身体验感超赞 轻松自在无束缚 防风又保暖,居家外出都可哦

基于C#实现Kruskal算法

这篇我们看看第二种生成树的 Kruskal 算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的。 一、思想 若存在 M{0,1,2,3,4,5}这样 6 个节点,我们知道 Prim 算法构建生成树是从”顶点”这个角度来思考的,然…

c语言内存管理

通常程序访问的是虚拟内存,虚拟内存映射到物理内存的一小部分。 在Linux系统中,虚拟内存默认为4G的大小。每个进程都有独立的4G内存地址空间。 int main() {char s[] "hello world"; //s数组位于栈区,复制了一份字符串到数组里ch…

【设计模式-2.1】创建型——单例模式

说明:设计模式根据用途分为创建型、结构性和行为型。创建型模式主要用于描述如何创建对象,本文介绍创建型中的单例模式。 饿汉式单例 单例模式是比较常见的一种设计模式,旨在确保对象的唯一性,什么时候去使用这个对象都是同一个…

MySQL 批量插入记录报 Error 1390 (HY000)

文章目录 1.背景2.问题3.分批插入4.一次最多能插入多少条记录?参考文献 1.背景 Golang 后台服务使用 GORM 实现与 MySQL 的交互,在实现一个通过 Excel 导入数据的接口时,使用 Save 方法一次性插入大量记录(>1w)时报…

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话

LiveGBS流媒体平台GB/T28181功能-查看国标设备会话列表直播会话、回放会话、下载会话、对讲会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、…

不用排队升级GPT/获取api

想要在国内获取api key,可以使用这种方法 小技巧:目前GPT还是排队订阅,可以直接用链接:https://chat.openai.com/invite/accepted 即可跳过排队环节 接下来先看一下如何购买腾讯云服务器 第一步:打开腾讯云 腾讯云 …

Visual Studio 2019 C# System.BadImageFormatException 解决方法

文章目录 1.DLL文件缺失或不匹配原因解决方法 2.系统环境变量Path下内容过多原因解决方法 3.位数错误原因解决方法 分析几种可能因素 1.DLL文件缺失或不匹配 原因 检查对应Debug路径下的DLL文件是否有缺失 解决方法 将对应的DLL文件放到Debug文件夹里面,检查冗余…

抖音权重查询源码H5源码

源码下载:123网盘

2022年12月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 默认小猫角色和气球角色都是显示状态,小猫程序如下图所示,气球没有程序,点击绿旗,舞台上最终显示的效果是?( ) A:可能出现6个不同位置的小猫和6个小球 B:可能出现6个不同位…

python 爬百度热搜并生成词云

1、爬取百度body存入txt def get_baidu_hot():url "https://top.baidu.com/board?tabrealtime"headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&…

Python 前后端分离项目Vue部署应用

一、视图创建 from django.http import JsonResponse from django.shortcuts import render# Create your views here. from django.views import Viewclass IndexView(View):def get(self,request):# 前后端分离 (前端JS代码渲染数据)return JsonRespo…

Jensen不等式

如果是正数,并且它们的和等于1,f是凸函数,那么: 也可表述为: 即x期望的凸函数值小于等于x凸函数值的期望

可验证随机函数(VRF)

文章目录 一、背景以及场景共识发展第一代 POW “以力取胜”第二代 POS/DPOS “民主投票”第三代 VRF “运气抽签” 二、可验证随机函数(VRF)快速开始1. VRF是什么?2. MD5 hash函数和VRF(Verifiable Random Function)区别3. VRF-…

【刷题宝典NO.4】

目录 公交站间的距离 生命游戏 公交站间的距离 https://leetcode.cn/problems/distance-between-bus-stops/ 环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 …