gpt4 book ai didi

ios - 在 Debug模式下,API 请求有效。 Release模式,返回 null

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:05 24 4
gpt4 key购买 nike

我使用 iOS 模拟器来测试我的 react-native 应用程序已经接近完成。在 Debug模式下,api 请求成功工作并显示在应用程序上。但是,在 Release模式下,只有登录请求有效。

我目前的详细信息如下:

 react-native: 0.60.3,
native-base: 2.13.5,
react-native-cli: 2.0.1,

Visual Studio Code 1.36.1
Xcode 11 beta 7

我做了以下事情:

  • 将域添加到 info.plist 中的权限
  • 使用不同的 API 服务器来查看是否是我使用的服务器导致了问题
  • 尝试在 Xcode 中使用调试和 Release模式进行不同的优化

此登录 API 请求有效并返回我想要的 token :

async(data) => {
try{
const url = 'https://assets.breatheco.de/apis/credentials/auth'
let response1 = await fetch(url, {
method: 'POST',
body: JSON.stringify(data),
headers: {
'Authorization':'application/json',
'Content-Type':'application/json'
},
});
// console.log(response)
let res = await response1.json();
if (response1.status >= 200 && response1.status < 300) {
data.error = "";
let user = res;
console.log('userToken: ', user, typeof(user))
getActions().userToken.store(user);
} else {
let error = res;
console.log("something went wrong in getting userToken", error, getStore().userToken);
return false;
throw error;
}

} catch(error) {
{() => getActions().userToken.remove()};
console.log("Email: ", data.username);
console.log("Password: ", data.password);
console.log("Error: ", error);
throw data.error;
}
}

这就是我的项目接收分配的方式。

async() => {
console.log('entering get Tasktoken')
try {
let store = getStore()
let session = store.userToken;

let accessToken = session.access_token;
let student_id = session.id;
console.log(student_id)

const taskURL = "https://api.breatheco.de/student/" + student_id + "/task/"
console.log('link is '+ taskURL);

let response2 = await fetch(taskURL, {
method: 'GET',
cache: 'no-cache',
headers: {
'Authorization': 'Bearer ' + accessToken,
'Content-Type': 'application/json',
'Cache-Control': 'no-cache'},
body: JSON.stringify(),

});
let tasks = await response2.json();
console.log('tasks:',tasks)
getActions().taskToken.store(tasks);

} catch(error) {
console.log('something went wrong in getting taskToken', error)
}

归结为接收项目和任务。

在 Debug模式下,我得到了所需的数组输出,并期望在 Release模式下也能得到同样的结果:

https://imgur.com/a/nkHh5LU

但相反,我收到的输出返回为 null,在 Release模式下是这样的:

Error: { [Error: No input to stringify] }

https://imgur.com/a/3Sm1Y9t

最佳答案

这是我解决这个问题的分步过程。

  1. 恢复出厂设置

    • 我最终不得不恢复出厂设置
    • 还必须再次升级到最新的 Catalina/Xcode。
  2. 开始新项目

    • 我保存了 src 文件、package.json、应用程序图标和其他细节
    • react-native init AwesomeNativeBase 的新项目构建它
  3. 更改部署目标

    • 我在文件程序中搜索了所有IOS_DEPLOYMENT_TARGET = {version number here}并将其更改为11.0。
    • 通过 pod install 启动它
  4. 更新 React 和 React-Native

    • 最重要的是您拥有最新版本的 React 和 React-Native。
    • 一定要检查他们的网站

这不是最干净的解决方案,但它对我有用。

关于ios - 在 Debug模式下,API 请求有效。 Release模式,返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57750272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com