Flutter iOS 注意事项
2019-01-21 本文已影响80人
大王叫我来巡山_Cong
image.jpg
http.jpg
前言
我们知道,使用 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]; }