react-native android应用程序发布版本上的Graphql网络错误
Posted
技术标签:
【中文标题】react-native android应用程序发布版本上的Graphql网络错误【英文标题】:Graphql Network Error on release version of react-native android app 【发布时间】:2020-02-19 12:30:18 【问题描述】:我开发了一个使用 graphql 的 react-native android 应用程序,我可以连接到 graphql 服务器以及执行突变和查询,但只能在应用程序的调试版本上。当我构建应用程序的发布版本并在我的手机上运行它时,就会出现问题。在执行登录突变时,我面临'networkError: ', '"line":123,"column":7285,"sourceURL":"index.android.bundle"'
Graphql 初始化代码,
const httpLink = createHttpLink(
uri: 'https://<IP>:4050'
)
const authLink = setContext((_, headers ) =>
getMyValue(AUTH_TOKEN)
return
headers:
...headers,
authorization: token ? `Bearer $token` : ''
)
const client = new ApolloClient(
link: authLink.concat(httpLink),
cache: new InMemoryCache()
)
这是引发错误的组件,
<Mutation
mutation=gql`
mutation login($username:String!,$password:String!)
login(username:$username,password:$password)
`
variables= username, password
onError=(err) =>
console.log('err: ', err);
onCompleted=data => ...
>
mutation => (
<Button full style=styles.loginButton
onPress=() =>
mutation()
>
<Text>Login</Text>
</Button>
)
</Mutation>
在应用程序的调试版本上,它转到 onCompleted 代码块,这也是我想要的应用程序的发布版本。相反,在应用程序的发布版本中,它会转到 onError 代码块并引发网络错误。
【问题讨论】:
也许有帮助 [link] (github.com/apollographql/apollo-client/issues/…) 谢谢,这与我的解决方案相同,但更好的解决方案是通过网络安全配置文件。 【参考方案1】:在你的 android manifest 应用标签中添加这一行
android:usesCleartextTraffic="true"
【讨论】:
以上是关于react-native android应用程序发布版本上的Graphql网络错误的主要内容,如果未能解决你的问题,请参考以下文章
React-Native 尝试运行 android,收到有关 /bin/sh 的错误:/usr/local/share/android-sdk/platform-tools/adb: No such
Facebook在android的react-native应用程序中登录
使用 react-native 克隆本机 android 警报屏幕
将 react-native 集成到现有的 android 应用程序中?
React-native run-android 构建了我的应用程序的正确版本,但 assembleRelease/react-native run-android --variant=release