uniapp打包ios流程

1,095 阅读2分钟

一、在manifest.json进行如下配置

    {
    "name" : "aaaa",
    "appid" : "id",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "transformPx" : false,
    /* 5+App特有相关 */
    "app-plus" : {
        "usingComponents" : true,
        "nvueStyleCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        /* 模块配置 */
        "modules" : {},
        /* 应用发布信息 */
        "distribute" : {
            /* ios打包配置 */
            "ios" : {
                "dSYMs" : false
            },
            /* SDK配置 */
            "sdkConfigs" : {
                "ad" : {}
            },
            "icons" : {
                "android" : {
                    "hdpi" : "xxx.png",
                    "xhdpi" : "xxx.png",
                    "xxhdpi" : "xxx.png",
                    "xxxhdpi" : "xxx.png"
                },
                "ios" : {
                    "appstore" : "xxx.png",
                    "ipad" : {
                        "app" : "xxx.png",
                        "app@2x" : "xxx.png",
                        "notification" : "xxx.png",
                        "notification@2x" : "xxx.png",
                        "proapp@2x" : "xxx.png",
                        "settings" : "xxx.png",
                        "settings@2x" : "xxx.png",
                        "spotlight" : "xxx.png",
                        "spotlight@2x" : "xxx.png"
                    },
                    "iphone" : {
                        "app@2x" : "xxxx.png",
                        "app@3x" : "xxx.png",
                        "notification@2x" : "xxx.png",
                        "notification@3x" : "xxx.png",
                        "settings@2x" : "xxx.png",
                        "settings@3x" : "xxx.png",
                        "spotlight@2x" : "xxx.png",
                        "spotlight@3x" : "xxx.png"
                    }
                }
            },
            "splashscreen" : {
                "androidStyle" : "default",
                "android" : {
                    "hdpi" : "xxx.png",
                    "xhdpi" : "xxx.png",
                    "xxhdpi" : "xxx.png"
                }
            }
        }
    },
    /* 快应用特有相关 */
    "quickapp" : {},
    /* 小程序特有相关 */
    "mp-weixin" : {
        "appid" : "",
        "setting" : {
            "urlCheck" : false
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "vueVersion" : "2"
}

二、

160e39782202aa81f146747c9ece6f1.png 上面圈的就这4个东西,在苹果开发者中心里搞

developer.apple.com/

账号密码填进去,,,,

好了,现在开始搞id了:

·点加号,加一个

然后就按提示搞,就完事

·搞证书,证书

这里的新版,老版,是相对于离线的xcode版本的,在xcode11及以前,用老版就ok,不是的就新版

appstore,就是上架,,ad hoc就是测试的意思

uniapp云打包,直接用最新的就行,,接下来以上架加测试为例,因为包含了开发.,还有之外的东西

这里提示你,需要选,文件,那么文件在哪儿呢,,

这里,你必须需要一个mac笔记本,找到里面的钥匙串(图是我搬来的,我没有mac %>_<%)

接下来需要从钥匙串里,申请一个颁布证书,一定要保存磁盘(图是我搬来的,我没有mac %>_<%)

然后选定保存的位置,什么桌面啊什么的

保存后得到 CertificateSigningRequest.certSigningRequest 文件,,,

当当当当,这个就是你之前需要选择的文件咯

选择好文件继续干!

点击下载,你就获取到了一个证书啦

现在我们就一趟搞了私钥证书........................................(.p12文件)

这里需要我们把得到的证书,给他导回之前生成颁布证书的那个mac里,

把文件弄进那个电脑,然后双击这个证书就能打开并导入这个证书

然后就得到了.p12私钥文件咯

·搞测试设备

·搞描述文件,,,

这里以测试为例子

好了,这下子就有了所有需要的东西,可以打包了

image.png

ios白屏问题

1、如果编译器(包括cli版本)、基座(包括自定义基座)不匹配,可能造成白屏。

2、ios首次安装应用的时候需要配置网络,在配置网络的时候,接口就已经开始发送请求了,这时候就需要用uniapp自带的API(uni.getNetworkType)进行本机的网络检测,然后判断接口执行不执行。

var gettime = setInterval(() => {
    this.initMacHandle()
}, 1000)
var time = setInterval(() => {
    uni.getNetworkType({
        success: res => {
            if (res.networkType != 'none') {
                clearInterval(gettime)
                clearInterval(time)
            }
        }
    })
}, 1000)
复制代码

3、真机正常,打包后白屏这个时候如果你有外部引入的iconfont,比如说阿里图标库,找到文件,把iconfont.js删掉如果没有,在manifest.json中usingComponents改成false,应该就可以解决了。

 /* 5+App特有相关 */
"app-plus" : {
    "usingComponents" : false,
    "nvueStyleCompiler" : "uni-app",
    "compilerVersion" : 3,
    "splashscreen" : {
        "alwaysShowBeforeRender" : true,
        "waiting" : false,
        "autoclose" : false,
        "delay" : 0
      },
复制代码

4、在manifest.json中alwaysShowBeforeRender改成true,让首页渲染完再关闭启动页

/* 5+App特有相关 */
"app-plus" : {
    "usingComponents" : false,
    "nvueStyleCompiler" : "uni-app",
    "compilerVersion" : 3,
    "splashscreen" : {
        "alwaysShowBeforeRender" : true,
        "waiting" : false,
        "autoclose" : false,
        "delay" : 0
      },
复制代码