IOS开发者自带弱网测试工具界面说明NETWORK LINK CONDITIONER
弱网测试的思路
弱网功能测试:2G/3G/4G、高延时、高丢包
无网状态测试:断网功能测试、本地数据存储
用户体验关注:响应时间、页面呈现、超时文案、超时重连、安全及大流量风险
网络切换测试:WIFI → 4G/3G/2G → 网多状态切换
IOS手机的开发者自带了弱网模拟工具,以下是界面说明,便于大家使用时自行配置使用。 ...
iOS SDK开发
一款好用且设计充分的 SDK 必须要遵循以下 4 条基本原则,即:
1、SDK 安全,稳定2、统一的开发规范3、Library 小而精4、不依赖第三方 SDK安全,稳定:考虑到 SDK 是需要嵌入到 App 里面去的,所以 SDK 最重要的特性就是安全性,不会因为乱开放接口而导致 App 数据泄露;其次重要的是 SDK 的稳定性, SDK 的 Crash 如果没 ...
Swift HTTP加载请求Loading Requests教程
目录正文遵循HTTPLoading协议创建Result用法正文
到目前为止,我们已经看了一个简单的Request/Response的结构体和实现。接下来,我们来讨论一下发送请求和接收响应。
如果我们回想一下第一节,我们会用HTTP回调给他,我们发送了一个请求,并且最终得到了一个响应(忽略Error)没有任何“任务”或者代理亦或其他 ...
Swift中的HTTP模拟测试示例详解
目录正文StarWarsAPI 类MockLoader正文
我们已经了解了单个方法如何为通过网络加载请求提供基础。
然而,网络也是开发应用程序时最大的失败点之一,尤其是在单元测试方面。 当我们编写单元测试时,我们希望测试是可重复的:无论我们执行多少次,我们应该总是得到相同的结果。
如果我们的测试涉及实时网络连接,我们无法保 ...
uniapp ios原生插件开发 (framework,cocopods)
原文地址:https://zhanglei.blog.csdn.net/article/details/123221947
一、了解UniApp 插件的开发方式
Xcode Framework 、 Static Library
基于Cocoapods开发 pod lib
已知UniApp的插件开发方式有两种, 第一种 Xcode Framework的方式,这种方式是官方指定的方式。 这种方式的优点就是简单直接, 但也有不足,比如当插 ...
移动端跨平台开发框架概览(IOS / 安卓)
前言
在移动端开发项目中。开发资源不够时,同时由两个团队维护安卓和IOS两套原生APP是成本很高的。此时,就需要选择一个同时支持多平台的客户端开发框架,能够使用一套代码,编译出多平台的APP。
这样一方面能够缩减开发人数,节省开发成本。另一方面由于代码统一,避免了不同平台版本分支,导致的用户体验差异。
本文简单 ...
Swift中的HTTP请求体Request Bodies使用示例详解
目录正文通用化body空请求体 EmptyBody数据体 DataBodyJSON体 JSONBody表单 FormBody其他Body Other Bodies正文
在进行HTTPRequest请求发送前,我们稍稍改进一下我们的结构体,最后,我们将会以下面的信息输出:
public struct HTTPRequest {
private var urlComponents = URLComponents()
public var method: HTT ...
iOS数据持久化UserDefaults封装器使用详解
目录使用属性封装器来完美创建UserDefaults封装器什么是属性封装器?什么是UserDefault封装器将属性封装器进行通用化处理存储自定义对象使用属性封装器来完美创建UserDefaults封装器
想象一下,你有一个应用想实现自动登录功能。你用UserDefaults封装了关于UserDefaults的读与写逻辑。你会用UserDefaults封装来保持对自动 ...
SwiftUI开发总结combine原理简单示例详解
目录引言SwiftUI是什么?如何理解combine@propertyWrapperPublishers 与 subscribersSubject的使用Operators的使用总结引言
最近在自研一个新的项目,在考虑使用的技术栈时,调研了许多,比如react-native,flutter,以及端原生的oc跟swift,但是最终选择了swiftUI + combine,之所以有如此决定,一方面是希望可以完善自己 ...
iOS数据持久化KeyChain数据操作详解
目录正文保存数据到KeyChain更新KeyChain中已有的数据从KeyChain中读取数据从KeyChain中删除数据创建一个通用的KeyChainHelper 类正文
在我们开发iOS应用的时候,很多时候,我们都需要将敏感数据(password, accessToken, secretKey等)存储到本地。对于初级程序员来讲,首先映入脑海的可能是使用UserDefaults。然而,众所 ...
详解iOS如何让Lottie使用网络资源做动画的实现
目录背景方案1. 实现LOTAnimationDelegate代理2. 生成LOTComposition3. 初始化LOTAnimationView背景
手上有需求需要使用CDN资源来让Lottie做动画,但由于动画需要加载图片,而Lottie提供的初始化接口只能加载json配置,Github上的issues也没人回答,因此特地写下本文记录一下方案。
为了实现这个功能还把Lottie看了一遍也是 ...
iOS13适配三指撤销和文案限长实例详解
目录正文Bugly报错堆栈信息问题定位解决方案数字截断后 crash正文
在适配iOS13的过程中,UITextField输入中文的时候三指撤销产生了 crash。
Bugly报错
NSInternalInconsistencyException
setGroupIdentifier:: _NSUndoStack 0x1206532f0 is in invalid state, calling setGroupIdentifier with no begin group mark
堆栈信 ...
SIGPIPE(Signal 13, Code 0) 异常排查及处理
目录问题现象排查过程原因与处理问题现象
最近一个版本 APP 更新之后,sentry 大量异常数据上报,影响用户的数量非常夸张 10w +,具体报错如下
排查过程
首先查看 SIGPIPE 的报错原因, 在官网搜索到了相关信息
大意是 Socket 连接关闭后,如果客户端仍在发送数据,这个时候就会产生 SIGPIPE 信号,如果信号没有被处理就会 ...
iOS 16 CocoaAsyncSocket 崩溃修复详解
目录背景方案1:fishhook 替换掉 os_unfair_lock_lock方案2: _schedulables 删除 _socket#8 未解析符号: ___lldb_unnamed_symbol8050#3 未解析符号: ___lldb_unnamed_symbol8533逻辑分析方案3:_CFRelease总结背景
iOS 16 版本发布后, 我们监控到 CocoaAsyncSocket 有大量的新增崩溃,堆栈和这里提的 issue 一致:
libsyst ...
99% iOS开发都不知道的KVO崩溃分析详解
目录背景分析堆栈__os_unfair_lock_corruption_abort__os_unfair_lock_lock_slow__NSSetBoolValueAndNotifyos_unfair_recursive_lock_lock_with_optionsobject_getIndexedIvarsdebug 调试object_getIndexedIvarsobjc_allocateClassPair_NSKVONotifyingCreateInfoWithOriginalClass结论背景
crash 监控发现有大量的新增崩溃 ...
仓库模式及其在Swift 项目中的应用详解
目录正文不使用仓库模式时的代码使用仓库有什么好处?设计仓库接口实现仓库接口选择用哪个仓库实现处理数据源的变更总结正文
在现代 Swift 项目中,很流行一种模式叫做仓库模式,英文是 Repository Pattern。这个模式主要用于构建数据层代码。按照一般的 App 层级划分,一般从上到下划分为 UI 层,业务层,数据层,那么仓 ...
swift依赖注入和依赖注入容器详解
目录什么是控制反转(Inversion of Control)?什么是依赖注入?依赖注入的种类初始化器注入属性注入方法注入依赖注入容器实现一个简单的依赖注入容器总结什么是控制反转(Inversion of Control)?
控制反转就是把传统的控制逻辑委托给另一个类或框架来处理,客户方只需实现具体的任务而不需要关心控制逻辑。
举个例子, ...
iOS schem与Universal Link 调试时踩坑解决记录
目录简介AppDelegate和SceneDelegate问题:在iOS13以上冷启动的时候不会走代理函数!如果你用了Scheme方式:iOS13之前会走这个代理函数iOS13之后会走如果你用了Universal Link方式:iOS13之前会走这个代理函数iOS13之后会走总结简介
scheme和Universal Link是在iOS中两种可以在网页中点击回跳到自己预定的APP的两种方式。 ...
iOS APP上架流程(详细)
声明:本文转自http://www.2cto.com/kf/201512/453943.html,侵删。
前言:作为一名iOS开发者,把开发出来的App上传到App Store是必须的。下面就来详细介绍下具体流程。
1.打开苹果开发者中心:https://developer.apple.com
打开后点击:Member Center
如果你的电脑没有保存密码,则会提示你输入开发者帐号和密码,因为我的 ...
iOS通过UIDocumentInteractionController实现应用间传文件
目录引言一、实现效果二、配置工程三、用法1、弹出文件其他打开方式工具栏2、接收文件引言
话开篇:由于iOS沙盒机制,APP文件存储位置只能当前应用访问,这里简单记录一下用 UIDocumentInteractionController 实现APP间传文件。
一、实现效果
两个 APP ,TestProjectA 将文件通过 UIDocumentInteractionController 来传递 ...