热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

打包和发布到iOS平台

这个教程将为你提供关于如何将FlutterApp发布到AppStore和TestFlight的说明。1.预先准备在开始发布你的app的

这个教程将为你提供关于如何将 Flutter App 发布到 App Store 和 TestFlight 的说明。





1. 预先准备

在开始发布你的 app 的进程之前,确保你已经看过了 Apple 的 App Store 审核指南。

想要发布你的 app 到 App Store,你需要注册 Apple Developer Program。你可以在苹果的 选择会员资格(开发者类型) 中查看到关于多种不同会员类型的选择。

2. 在 App Store Connect 上注册你的 App

App Store Connect(曾经的 iTunes Connet)是你将会管理应用生命周期的地方。你将会定义应用的名称和描述以及截图,设置价格,并管理发布到 App Store 和 Testflight。

注册你的 app 需要两步:登记唯一的套装 ID(Bundle ID),并在你的 App Store Connect 中创建一个 app。

关于更多 App Store Connect 的细节,查看 App Store Connect 指南。

2.1 登记套装 ID

每一个 iOS 应用都与一个在 Apple 登记的唯一的套装 ID 关联。要为你的应用登记一个套装 ID,请参考下面的步骤:

(1)在你的开发者账号页面打开 App IDs 页面。

(2)点击 + 来创建一个新的套装 ID。

(3)输入一个 App 名称,选择 Explicit App ID,然后输入一个 ID。

(4)选择你的 App 将要使用的服务,然后点击 继续

(5)在下一页,确认细节并点击 注册 来注册你的 Bundle ID。

2.2 在 App Store Connect 创建一个应用记录

接下来,你需要在 App Store Connect 注册你的应用:

(1)在你的浏览器里打开 App Store Connect。

(2)在 App Store Connect 的落地页,点击 My Apps。

(3)在我的 app 页面的顶部左侧,点击 + ,然后选择 New App。

(4)在出现的表单中填写你的 app 细节。在平台部分,确保 iOS 被选中。由于 Flutter 暂时不支持 tvOS,保持该选项为未选。点击 Create。

(5)跳转到你的应用详情,然后从侧边栏选择 App Information 。

(6)在基础信息部分,选择你在前一步注册的套装 ID。

3. 检查 Xcode 项目设置

在这一步,你需要在 Xcode 工作空间检查绝大多数重要设置。关于更多的步骤和描述,查看 为 App 分发做准备。

在 Xcode 中跳转到你的目标设置:

(1)在 Xcode 中,打开你的 App 的 ios 目录中的 Runner.xcworkspace

(2)想要看你的 app 设置,在 Xcode 的项目导航栏中选择 Runner

(3)选择 General tab

接下来,你需要验证最重要的配置:

在 Identity 部分:

这个 App 将会在主屏幕以及其他地方展示的名字。

你在 App Store Connect 注册的 App ID。

在 Signing 部分:

Automatically manage signing 是否需要 Xcode 自动管理 app 签名和设置。这个默认被设置为 true ,对于绝大多数 App 来说都是适用的。

Team:选择关联到你注册的 Apple 开发者账户的团队。如果需要,选择 Add Account…, 然后更新选项。

在 Development 部分:

Deployment Target: 你的 App 将会支持的最低版本的 iOS。Flutter 支持 iOS 8.0 及以后的版本。如果你的 App 包含使用了iOS 8 不支持的 API 的 Objective-C 或 Swift 代码,请设置到合适的版本。

你项目的 General tab 应该看起来像是这样的:

4. 更新应用版本号

每个应用默认的初始版本号是 1.0.0。若要更新它,请转到 pubspec.yaml 文件并更新以下内容:

version: 1.0.0+1

版本号由三个点分隔的数字组成,例如上面样例中的 1.0.0。然后是可选的构建号,例如上面样例中的 1,以 + 分隔。

版本号与构建号都可以在 Flutter 打包时分别使用 --build-name 和 --build-number 重新指定。

在 iOS 中,当 build-number 用作 CFBundleVersion 的时候, build-name 用作 CFBundleShortVersionString。阅读关于 iOS 版本控制的更多信息请参考 Apple 开发者网站提供的 Core Foundation Keys。

5. 添加应用图标

当你创建一个新的 Flutter 应用时,则会创建一个默认的图标。在这一步,你将使用你自己的图标替换占位图标:

(1)回顾 iOS 的 App Icon 指南。

(2)在 Xcode 项目导航栏,选择 Runner 目录中的 Assets.xcassets,更新占位图标为你自己的 app 的图标。

(3)通过执行 flutter run 来验证你的图标是否已经被替换。

6. 创建一个构建归档

在这一步,你将创建一个构建归档,并上传到 App Store Connect。

在开发过程中,你将会使用 debug 模式来完成构建、调试并测试。当你准备好通过 App Store 或 TestFlight 交付你的 app 给用户时,你需要准备一个 release 构建。

在命令行中你的应用目录下执行如下步骤:

(1)执行 flutter build ios 来创建一个 release 构建 (flutter build 默认指向 --release)。

(2)为了确保 Xcode 刷新了发布模式的配置,关闭并重新打开你的 Xcode。对于 Xcode 8.3 及以后版本,这一步不是必须的。

在 Xcode中,配置 app 的版本,并开始构建:

(1)在 Xcode 中,打开你应用 ios 目录中的 Runner.xcworkspace

(2)选择 Product > Scheme > Runner

(3)选择 Product > Destination > Generic iOS Device

(4)在 Xcode 项目导航栏中选择 Runner,然后在设置界面侧边栏选择 Runner 目标。

(5)在 Identity 部分,更新 Version 为你想要发布的用户可见的版本号。

(6)在 Identity 部分,更新 Build 标示为一个唯一的 Build 数字,用来在 App Store Connect 上追踪。每一个上传都需要一个独立的 Build 数字。

最后,创建一个构建归档并将其上传到 App Store Connect:

(1)选择 Product > Archive 来生成一个构建归档

(2)在 Xcode 组织界面的侧边栏中,选择你的 iOS app,然后选择你刚刚的生成的构建归档。

(3)点击 Validate… 按钮。如果报告了任何问题,记录下他们并重新开始一个新的构建。你可以使用同一个 Build ID 直到你上传了一个归档。

(4)当这个归档校验成功以后,点击 Upload to App Store…。你可以在 App Store Connect 中应用详情页面的 Activities 标签页查看你的构建状态。

当你的构建已经通过了校验,可以将你的构建通过 Testfligh 发布给你的测试人员或直接将其发布到 App Store 的时候,你会在 30 分钟内收到一封信来提醒你。

7. 发布你的 app 到 TestFlight

TestFlight 允许开发者发布他们的 app 给内部或外部的测试人员。这个步骤为可选,接下来的内容将引导你将发布你的构建到 TestFlight。

(1)在 App Store Connect 中,你的应用的详情页面跳转到 TestFlight Tab。

(2)在侧边栏选择 Internal Testing。

(3)选择要发布给测试人员的构建,然后点击 保存。

(4)为每一个内部测试人员添加邮件。你可以在 App Store Connect 的用户与角色页面添加额外的内部用户,他们将会出现在页面顶部的下拉菜单中。

8. 发布你的 app 到 App Store

当你准备发布你的 app 到这个世界时,跟随下面的步骤,来提交你的 App 去审核,并将其发布到 App Store。

(1)从你的 app 在 App Store Connect 的页面中的侧边栏中选择 Pricing and Availability,然后完善所有的必填信息。

(2)从侧边栏选择状态。如果这是第一次发布这个 App,这个状态将会是 1.0 Prepare for Submission,填写所有需要填写的区域。

(3)点击 提交审核

Apple 将会在他们的审核过程结束后提醒你。你的 app 将会根据 Version Release 部分的介绍进行发布。

当你创建了应用之后,你可以通过 Google Ads 吸引更多用户, Google Ads 平台可以通过机器学习帮助你以非常高的性价比吸引到更多用户。

(1)创建广告—我们会根据您的应用信息帮您制作广告。另外,您还可以添加图片和视频。

(2)决定推广预算—对于以提高应用安装量为主要目标的广告系列,您需要为其设置应用安装出价,也就是“目标每次安装费用”,同时设置每日推广支出预算。

(3)选择目标地区—让我们知道你希望触达哪些区域的用户。

(4)设定用户行动—决定你希望用户要做什么,比如安装,应用内操作或者目标广告支出回报率 (ROAS)。



推荐阅读
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 看官_在GitHub Actions上进行Flutter 的测试和部署
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了在GitHubActions上进行Flutter的测试和部署相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
  • 安卓和ios是什么意思安卓和iOS是移动设备上的两款操作系统。安卓英文名为Android,是美国谷歌公司基于Linux内核开发的操作系统。iOS原名iPhoneOS,是由美国苹果公 ... [详细]
  • 分享一下最近写的ReactNative的SSHSFTP组件,iOS端封装了NMSSH,Android端封装了JSch。支持SSH执行命令、实时Shell ... [详细]
  • 往期文章Prom ... [详细]
  • IamhavinganissuewithmyXcodeproject.我的Xcode项目有一个问题。Ihavetheselines:我有这些线:typedefstr ... [详细]
  • [译]  OS X 和 iOS 的测绘框架Core Plot 入门教程
    [译] OS X 和 iOS 的测绘框架Core Plot 入门教程 ... [详细]
  • k8s之Service介绍
    1、Service是什么?​Service是一种k8s集群中访问pod的一种策略。k8s中的pod具有生命周期,且不可复活。每个pod有着自己的IP地址,pod的销毁与创建都会创新 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 本文深入探讨了Spring Cloud Eureka在企业级应用中的高级使用场景及优化策略。首先,介绍了Eureka的安全配置,确保服务注册与发现过程的安全性。接着,分析了Eureka的健康检查机制,提高系统的稳定性和可靠性。随后,详细讨论了Eureka的各项参数调优技巧,以提升性能和响应速度。最后,阐述了如何实现Eureka的高可用性部署,保障服务的连续性和可用性。通过这些内容,开发者可以更好地理解和运用Eureka,提升微服务架构的整体效能。 ... [详细]
  • mac用于开发使用时间长硬盘会越来越小,速度越来越慢的,亦是花了几分钟研究怎么清理系统的缓存,方法:1,到https:www.omnigroup.commore安装OmniDisk ... [详细]
author-avatar
mobiledu2502915303
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有