沃尔玛电极基本了解

Walmart Electrode basic understanding

我正在尝试使用 Electrode 创建一个基于 ReactNative 的基本 iOS-app(沃尔玛 - http://www.electrode.io/site/docs/introduction.html

虽然我可以让应用程序在我的 Mac 上本地运行,但我很难理解整个无线 (OTA) 更新 can/should 是如何工作的。

这是我到目前为止所做的

但是当我 运行 使用 ern 运行-ios 的应用程序时,它似乎仍然指向我的本地机器(我可以更新索引 -ios.js -文件并在应用程序中更新)。那么,要使整个 OTA 设置运行到另一个程序员可以更新 cloud/bitbucket(我猜)中的索引-ios.js 文件并即时更新应用程序,还缺少什么?

如果我没理解错的话,要让OTA工作,你需要使用code-push命令。

ern code-push <miniapps..>

Options:
  --help                     Show help                                                                                                                                                             [boolean]
  --descriptor, -d           Full native application selector (target native application version for the push)
  --force, -f                Force upgrade (ignore compatibility issues -at your own risks-)
  --appName                  Application name
  --deploymentName           Deployment to release the update to                                                                                                                                    [string]
  --platform, -p             Platform name (android / ios)                                                                                                                                          [string]
  --targetBinaryVersion, -t  Semver expression that specifies the binary app version(s) this release is targeting (e.g. 1.1.0, ~1.2.3)                                                              [string]
  --mandatory, -m            Specifies whether this release should be considered mandatory                                                                                                  [default: false]
  --rollout, -r              Percentage of users this release should be immediately available to                                                                                  [string] [default: "100%"]
  --skipConfirmation, -s     Skip final confirmation prompt if no compatibility issues are detected

More info about this command @ https://electrode.gitbooks.io/electrode-native/content/cli/code-push.html

我最终在第二次尝试中让它工作 - 我正在进行的笔记如下:

我在网上搜索并在这里和那里使用了一些,所以不能真正为您提供一个简单的指南..

先决条件

install Homebrew

https://brew.sh/

install ReactNative-cli-tools and codePush

brew 安装节点

brew 安装守望者

npm install -g react-native-cli

npm install -g code-push-cli

codePush register

代码推送寄存器

(完成注册,再次通过 运行 此命令验证,它应该显示:[错误] 您已经从这台机器登录。)

App

react-native init [AppName] Cd [应用程序名称] npm install — 保存 react-native-code-push npm install(安装code-push时出错,需要重新安装一些react-native元素)

code-push app 添加 ReactApp ios react-native (复制生产部署密钥)

React-native link react-native-code-push (输入生产部署密钥)

Edit App.js

从 'react-native-code-push'

导入 codePush

(从主应用 class 中删除 "export default")

const codePushOptions = {
  checkFrequency: codePush.CheckFrequency.ON_APP_RESUME,
  installMode: codePush.InstallMode.IMMEDIATE
}

导出默认 codePush(codePushOptions)(App);

release app to codePush server

code-push release-react ReactApp ios --deploymentName Production

command to see current status of reactApp codePush server

代码推送部署 ls ReactApp -k

Open xCode project in \ios-folder

Set up signing if needed

edit xCode scheme to Release

edit App.js to make the change visible

Build and app-content should update after open to reflect changes made between version uploaded to codePush-server and local version