草庐IT

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

coder 2024-01-28 原文

我使用 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/

有关ios - 在 Debug模式下,API 请求有效。 Release模式,返回 null的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  3. ruby - 为什么 4.1%2 使用 Ruby 返回 0.0999999999999996?但是 4.2%2==0.2 - 2

    为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返

  4. ruby - 如何在续集中重新加载表模式? - 2

    鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende

  5. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  6. ruby - 如何进行排列以有效地定制输出 - 2

    这是一道面试题,我没有答对,但还是很好奇怎么解。你有N个人的大家庭,分别是1,2,3,...,N岁。你想给你的大家庭拍张照片。所有的家庭成员都排成一排。“我是家里的friend,建议家庭成员安排如下:”1岁的家庭成员坐在这一排的最左边。每两个坐在一起的家庭成员的年龄相差不得超过2岁。输入:整数N,1≤N≤55。输出:摄影师可以拍摄的照片数量。示例->输入:4,输出:4符合条件的数组:[1,2,3,4][1,2,4,3][1,3,2,4][1,3,4,2]另一个例子:输入:5输出:6符合条件的数组:[1,2,3,4,5][1,2,3,5,4][1,2,4,3,5][1,2,4,5,3][

  7. ruby - 检查字符串是否包含散列中的任何键并返回它包含的键的值 - 2

    我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案

  8. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  9. ruby-on-rails - ActionController::RoutingError: 未初始化常量 Api::V1::ApiController - 2

    我有用于控制用户任务的Rails5API项目,我有以下错误,但并非总是针对相同的Controller和路由。ActionController::RoutingError:uninitializedconstantApi::V1::ApiController我向您描述了一些我的项目,以更详细地解释错误。应用结构路线scopemodule:'api'donamespace:v1do#=>Loginroutesscopemodule:'login'domatch'login',to:'sessions#login',as:'login',via::postend#=>Teamroutessc

  10. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

随机推荐