前言
我们知道,使用 Flutter 写的 App 项目,如果想上架 App Store,最后还是绕不过 Xcode 生成 ipa 包,那么如果没有 iOS 端开发经验的小伙伴可能按照下面的操作,帮你生成 ipa 顺利发布。
首先要安装 Xcode,并用 Xcode 打开 Flutter 项目的 iOS 文件夹的 Runner.xcworkspace 文件。
1、配置 HTTP 请求。
在 Runner 文件夹下面的 info.plist 中 添加以下代码
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
效果如图所示
http.jpg
2、项目中使用到硬件(例如 相机,位置)等的配置
同样在 Runner 文件夹下面的 info.plist 中 添加以下代码
<!-- 相册 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>
<!-- 相机 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能访问相机</string>
<!-- 麦克风 -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能访问麦克风</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能访问位置</string>
<!-- 在使用期间访问位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<!-- 始终访问位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始终访问位置</string>
<!-- 日历 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能访问日历</string>
<!-- 提醒事项 -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能访问提醒事项</string>
<!-- 运动与健身 -->
<key>NSMotionUsageDescription</key>
<string>App需要您的同意,才能访问运动与健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能访问健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能访问健康分享</string>
<!-- 蓝牙 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能访问蓝牙</string>
<!-- 媒体资料库 -->
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能访问媒体资料库</string>
3、关于 Flutter 打包的 ipa 支持的iOS版本如何设置
Flutter iOS 版本.jpg4、关于 iOS 图标icon 与启动图 如何修改。
image.png5、如何运行到自己的 iPhone 上。
-
点击 Xcode 的设置。
- image.png
-
然后选择 Apple ID 登录,(Apple ID 不知道是什么的话,那就可以关闭网页了)。
- image.png
-
然后 手机连接电脑, Xcode 中 选择 你的iPhone 进行 run。
-
运行到手机后, 去通用->描述文件与设备管理->找到你的应用 允许就好了。
5、如何配置证书与发布
- 这里有篇文件讲的很不错,我就直接发链接放这里,点击我进行跳转
6、上线后的 闪退bug 以及用户数量收集怎么快速接入
-
这里举个栗子 (友盟)
-
这里假设你 友盟关于信息的配置到做好了。
-
友盟下载 SDK 导入到项目中。
- image.png
- image.png
- image.png
-
代码如下
#include "AppDelegate.h" #include "GeneratedPluginRegistrant.h" #import <UMCommon/UMCommon.h> @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [GeneratedPluginRegistrant registerWithRegistry:self]; [UMConfigure setEncryptEnabled:YES];//打开加密传输 [UMConfigure setLogEnabled:YES];//设置打开日志 [UMConfigure initWithAppkey:@"Your AppKey" channel:@"App Store"]; // Override point for customization after application launch. return [super application:application didFinishLaunchingWithOptions:launchOptions]; }
网友评论