美文网首页
expo本地化react-native项目,并打包iOS项目发布

expo本地化react-native项目,并打包iOS项目发布

作者: Shawnnn | 来源:发表于2020-03-16 16:35 被阅读0次

    本地化

    首先需要进入到项目根目录下,检查app.json文件是否已经配置,主要检查一下项:

     "ios": {
          "supportsTablet": true,
          "bundleIdentifier": "开发者账号",
        },
    

    检查正常后执行:

    expo eject
    

    项目将开始准备本地化,这时候会出现三个选项,大概意思就是询问你想本地化成什么项目,这里选择的ExpoKit,这个操作可能会比较漫长,操作完成后项目会多出ios和android文件夹。

    这里只记录iOS打包过程
    接下来需要先安装CocoaPods

    sudo gem install cocoapods
    

    安装完成后

    cd ./ios
    pod install
    

    这又是一个很漫长的过程,可能会出现一些资源包请求超时,可以执行一下命令

    brew install git-lfs
    git lfs install
    pod update again
    

    还有些需要命令行翻墙的情况,如果你使用的是zsh

    vi ~/.zshrc
    

    加入以下配置

    alias pon='export http_proxy=127.0.0.1:1087;export https_proxy=$http_proxy'
    alias poff='unset http_proxy;unset https_proxy'
    alias git_pon='git config --global http.proxy http://127.0.0.1:1087;git config --global https.proxy https://127.0.0.1:1087'
    alias git_poff='git config --global --unset http.proxy;git config --global --unset https.proxy'
    

    注意端口号设置正确

    source ~/.zshrc
    pon
    git_pon
    

    测试是否成功

    curl -I https://google.com
    
    <!--成功-->
    HTTP/1.1 200 Connection established
    
    HTTP/2 301 
    location: https://www.google.com/
    content-type: text/html; charset=UTF-8
    date: Mon, 26 Aug 2019 09:45:33 GMT
    expires: Wed, 25 Sep 2019 09:45:33 GMT
    cache-control: public, max-age=2592000
    server: gws
    content-length: 220
    x-xss-protection: 0
    x-frame-options: SAMEORIGIN
    
    

    构建成功会输出

    Generating Pods project
    Integrating client project
    Sending stats
    Pod installation complete! There are 47 dependencies from the Podfile and 55 total pods installed.
    

    在Xcode中打开构建成功的ios文件,开始build,这个时候需要在项目目录下执行yarn eject 这条命令是在eject的时候创建的文件中自动生成的,因为这个是我们已经是一个本地化的项目了,所以需要按照这个命令执行程序,配置地址。

    打包

    因为网上已经很多react-native项目发布iOS平台的贴,但是又比较老了,这里贴一个老版教程,有些没讲到的可以参考:iOS App打包上架超详细流程(手把手图文教你)

    工具:

    • Apple开发者账号
    • Xcode

    打开 苹果开发者中心(最好是手机热点开启供电脑访问,局域网我基本没有访问成功过),登陆上述的开发者账号

    Account-> Certificates, Identifiers & Profiles -> Identifiers -> App IDs -> 填写你的描述信息和 ID名,并且在下方选择这个ID需要的服务,如 iCloud,Push Notifications,按需开启。

    创建完成回到 Identifiers,从列表进入刚才创建的ID,下方配置你的服务证书(我只配置了2项):

    iCloud -> Configure -> 选择对应项。

    Push Notifications -> Configure -> 这里需要根据需求配置证书,有两个场景(开发,发布) -> Create Certificate -> Choose File -> 打开本地钥匙串访问程序,钥匙串访问 -> 证书助理 -> 从证书颁发机构请求证书 -> 填写好相应信息 -> 存储到磁盘 -> 在choosefile中选择刚才生成的请求文件 -> Download -> 打开到钥匙串。

    至此,证书和ID已经配置完成,但是还需要配置相关描述文件。

    Account-> Profiles ->
    新建 -> 根据你当前的ID类型确定你的选项,Ad Hoc是调试内测版,如果是上架ID,就选择App Store -> 选择对应ID -> 选择你需要包括在此配置文件中的证书 -> 选择可安装的设备(没有的话就在Devices添加) -> 输入文件名称 -> Download -> 双击打开在Xcode

    打开Xcode:

    Project - Info -> Configurations -> 添加宏(dev pro test )

    打开目录下的info.plist文件:

    Bundle display name - $(Bundle_Name)

    Targets -> BuildSettings -> Packaging -> Product Bundle Identifier -> 根据不同的环境配置不同的ID

    Targets -> BuildSettings -> Use-Defined -> 添加环境变量名称 -> Bundle_Name -> 各个环境配置好。

    Product -> Scheme -> ManageScheme -> 添加 -> 输入scheme名称 -> 编辑刚才添加的scheme.

    我主要更改的是:

    Run(就是平时运行的配置) -> info -> Build Configuration -> 选中对应的scheme 。

    Archive(构建,发布) -> info -> Build Configuration -> Archive Name -> 就是你要打包出来的包名。

    ==!!EXShell.plist文件中的manifestUrl 对应的地址,现在应该是我们本地调试地址,有需要的话应该更改成不同环境的线上地址。==

    当前设备选择 -> Generic iOSDevice.

    Product -> Archive.

    打包完成后,选择export。
    可以通过Xcode上传到App Store,但是我选择的是Application Loader,需要开发者账号生成一个app的生成专用密码,选取你的app,即刻上传(需要先在App Store Content中添加你的app信息,不然会上传失败)。

    关于推送配置

    首先需要先行创建好一个Identifier

    到 Certificate,创建你的Certificate证书,根据场景选择类型

    本地调试--选择iOS App Development

    发布到蒲公英或者App Store -- 选择Apple Push Notification service SSL (Sandbox & Production)

    到Profiles,创建你的Profile描述文件

    本地调试--选择iOS App Development

    发布到蒲公英或者App Store -- 选择Ad Hoc


    以上是我自己在项目中实验得出的总结,有问题的希望大家指出~

    相关文章

      网友评论

          本文标题:expo本地化react-native项目,并打包iOS项目发布

          本文链接:https://www.haomeiwen.com/subject/bohnehtx.html