Cordova + Vue打包iOS,Xcode提交至TestFlight

Cordova + Vue打包iOS,Xcode提交至TestFlight

1. 安装Cordova
sudo npm install -g cordova
2. 新建Cordova项目
# cordovaApp:项目的目录名称(path)
# com.cordova.test:项目的ID,用于写入 config.xml 的 widget 中(ID)
# HelloWorld:应用程序的显示名称(name)
# 项目的可选配置项(options)
#      --template:可执行项目的模版文件
#      --copy-from:指定 src
#      --link-to:将前端资源目录链接到 cordova 项目的 www 目录下
cordova create cordovaApp com.cordova.test HelloWorld

# 进入 cordovaApp 项目目录
cd cordovaApp

# 添加 iOS 平台
cordova platform add ios
# 添加 android 平台
cordova platform add android
3. 打包Vue项目,将npm run build后将生成的文件移至Cordova项目www文件夹中
4. 进入Cordova项目根目录
# 执行
# 打包 ios 平台
cordova build ios
# 然后进入下面目录,打开 *.xcodeproject 文件
# 打包 android 平台
cordova build android
1.png
5. Xcode打包,选择机型后,点击左侧小三角启动模拟器运行
6. Xcode提交TestFlight
2.png
3.png
4.png
5.png
2.png
6. sh自动编译编写
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
plugins=$2
###热更新资源表部署
client_build    () {
    cd ${DIR}
    npm install
    npm run build:app
    cd ${DIR}/app/dev
    cordova-hcp build
#    rsync -CKavz --exclude-from=${DIR}/app/dev/exclude.list --progress ${DIR}/app/dev/www/  rsync://121.199.71.142:8873/apphome/jxz/assets/dev/
};

###热更新资源表部署
client_build_pro   () {
    cd ${DIR}
    npm install
    npm run build:app:pro
    cd ${DIR}/app/pro
    cordova-hcp build
#    rsync -CKavz --exclude-from=${DIR}/app/pro/exclude.list --progress ${DIR}/app/pro/www/  rsync://121.199.71.142:8873/apphome/jxz/assets/pro/
};

###打包测试安卓包
build_dev    () {
    cd ${DIR}/app/dev
    echo 'android-----dev---------环境'
    echo 'remove android'
    cordova platform remove android
    echo 'add android'
    cordova platform add android@8.1.0
    echo 'build android'
    cordova build android --release
    jarsigner -verbose -storepass 123456 -keystore com.pepm.keystore  -signedjar ${DIR}/output/pepm_test_`date +%Y%m%d `.apk ${DIR}/app/dev/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk  com.pepm.keystore

};


###仅仅打包测试安卓包
build_dev_only    () {
    cd ${DIR}/app/dev
    echo 'android-----dev---------环境'
    echo 'build android'
    cordova build android --release
    jarsigner -verbose -storepass 123456 -keystore com.pepm.keystore  -signedjar ${DIR}/output/pepm_test_`date +%Y%m%d `.apk ${DIR}/app/dev/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk  com.pepm.keystore

};

###打包正式安卓包
build_pro    () {
    cd ${DIR}
    echo ${DIR}'-------android-----pro---------环境'
   # echo 'rm -rf www'
    #rm -rf www 
   # echo 'npm run build www'
   # npm run build
   # rename   www
    echo 'cordova build android --release'
    cordova build android --release
    jarsigner -verbose -storepass 123456 -keystore com.pepm.keystore  -signedjar ${DIR}/output/pepm_pro_`date +%Y%m%d `.apk ${DIR}/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk  com.pepm.keystore
    echo ${DIR}/output/pepm_pro_`date +%Y%m%d `.apk
};


###仅仅打包正式安卓包
build_pro_only    () {
    cd ${DIR}/app/pro
    echo 'build android'
    cordova build android --release
    jarsigner -verbose -storepass 123456 -keystore com.pepm.keystore  -signedjar ${DIR}/output/pepm_pro_`date +%Y%m%d `.apk ${DIR}/app/pro/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk  com.pepm.keystore
};
###运行测试安卓包
run_dev    () {
    cd ${DIR}/app/dev
    echo '运行android-----dev---------环境'
    echo 'remove android'
    cordova platform remove android
    echo 'add android'
    cordova platform add android@8.1.0
    echo 'run android'
    cordova run android

};

###运行正式安卓包
run_pro    () {
    cd ${DIR}/app/pro
    echo '运行android-----pro---------环境'
    echo 'remove android'
    cordova platform remove android
    echo 'add android'
    cordova platform add android@8.1.0
    echo 'run android'
    cordova run android
};
###编译测试ios项目
build_ios_dev    () {
    cd ${DIR}/app/dev
    echo 'ios-----dev---------环境'
    echo 'remove ios'
    cordova platform remove ios
    echo 'add ios'
    cordova platform add ios@5.1.1
    echo 'run android'
    cordova build ios --release
};
###编译正式ios项目
build_ios_pro    () {
    cd ${DIR}/app/pro
    echo 'ios-----pro---------环境'
     echo 'remove ios'
    cordova platform remove ios
    echo 'add ios'
    cordova platform add ios@5.1.1
    cordova build ios --release
};

###运行测试ios
run_ios_dev    () {
    cd ${DIR}/app/dev
    echo 'ios-----dev---------环境'
    echo 'remove ios'
    cordova platform remove ios
    echo 'add ios'
    cordova platform add ios@5.1.1
    cordova run ios
};
###运行正式ios
run_ios_pro    () {
    cd ${DIR}/app/pro
    echo 'ios-----pro---------环境'
    echo 'remove ios'
    cordova platform remove ios
    echo 'add ios'
    cordova platform add ios@5.1.1
    cordova run ios
};
###添加插件
add    () {
    cd ${DIR}/app/dev
    echo 'dev---------环境---添加'${plugins}
    cordova plugin add ${plugins}
    cd ${DIR}/app/pro
    echo 'pro---------环境---添加' ${plugins}
    cordova plugin add ${plugins}
};

###删除插件
remove    () {
    cd ${DIR}/app/dev
    echo 'dev---------环境---删除'${plugins}
    cordova plugin remove ${plugins}
    cd ${DIR}/app/pro
    echo 'pro---------环境---删除' ${plugins}
    cordova plugin remove ${plugins}
};



###################################################################################
case "$1" in
   client_build)
        client_build;
        echo 'dev client build done.';
        ;;
    client_build_pro)
        client_build_pro;
        echo 'pro client build done.';
        ;;     
   build_dev)
        build_dev;
        echo 'dev build done.';
        ;;
   build_dev_only)
        build_dev_only;
        echo 'dev build dev only done.';
        ;;
   build_pro_only)
        build_pro_only;
        echo 'pro build pro only done.';
        ;;
    build_pro)
        build_pro;
        echo 'pro build done.';
        ;; 
        
    run_dev)
        run_dev;
        echo 'dev run done.';
        ;;  
    run_pro)
        run_pro;
        echo 'pro run done.';
        ;;
    build_ios_dev)
        build_ios_dev;
        echo 'build_ios_dev  done.';
        ;;
    build_ios_pro)
        build_ios_pro;
        echo 'build_ios_pro  done.';
        ;;    
    run_ios_dev)
        run_ios_dev;
        echo 'run_ios_dev  done.';
        ;;
    run_ios_pro)
        run_ios_pro;
        echo 'run_ios_pro  done.';
        ;;   
        
    add)
        add;
        echo 'add plugin.';
        ;;
    remove)
        remove;
        echo 'remove plugin.';
        ;;
        *)
        echo -e "\033[5;31;1m 缺少参数 \033[0m"
        echo -e "\033[32;1m 参数说明:\033[0m"
        echo "
       [热更客户端]
         测试:client_build
         正式:client_build_pro
       [安卓打包,重新构建项目]
         测试:build_dev
         正式:build_pro
       [安卓打包,仅打包]
         测试:build_dev_only
         正式:build_pro_only
       [安卓真机运行]
         测试:run_dev
         正式:run_pro
       [ios真机运行]
         测试:run_ios_dev
         正式:run_ios_pro
       [ios编译]
         测试:build_ios_dev
         正式:build_ios_pro
       [add插件]
          add
            "
        exit 1;
        ;;
        
esac;

签名

keytool -genkeypair -alias [Coreqi 别名] -keyalg RSA -validity [400 有效期] -keystore  [fanqi.jks 签名的文件]

jarsigner -verbose -keystore  [fanqi.jks 签名的文件]  -signedjar [OppoSignVerify_signed.apk  签名后的文件地址]    [app-debug.apk 待签名]  [Coreqi  生成 签名文件时输入的别名]

cordova-plugin-camera iOS 闪退

Privacy - Camera Usage Description
cameraDesciption
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容