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

2020-03-16  本文已影响0人  Shawnnn

本地化

首先需要进入到项目根目录下,检查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打包上架超详细流程(手把手图文教你)

工具:

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

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


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

上一篇下一篇

猜你喜欢

热点阅读