
iOS开发大揭秘
文章平均质量分 66
讲解基于mac平台ios入门到高级的开发技术,讲解最新的基于swift语言在ios开发的技巧和实战,讲解ios开发中遇到的常见问题。
优惠券已抵扣
余额抵扣
还需支付
¥19.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
xiangzhihong8
著有《React Native移动开发实战》1,2,3版本、《Kotlin入门与实战》1,2版本、《Weex跨平台开发与实战》、《React Native开发进阶》和《Flutter跨平台开发实战》和《Android应用架构实战》和《鸿蒙应用开发与实战》、《Vue3 项目开发实战》即将出版
展开
-
企业邓白氏编码申请流程
邓白氏编码是注册苹果企业账户时验证流程的一部分。关于邓白氏编码,苹果官网有对它的。D-U-N-S 编号是一组唯一的九位数,用于根据具体位置识别企业实体。D-U-N-S 编号由 Dun & Bradstreet (D&B) 进行分配和维护,广泛用作标准的企业识别码。作为你注册 Apple Developer Program 或 Apple Developer Enterprise Program 时验证流程的一部分,D-U-N-S 编号会被用于检查你所在组织的身份和法人实体状态。原创 2024-01-18 11:28:48 · 697 阅读 · 0 评论 -
iOS报错命名空间“std”中的“unary_function”
选择 Pods > 构建设置 > 在“Apple Clang - 预处理”部分 > 在“宏”部分下 添加发布和调试 :_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION。我尝试删除缓存数据和派生数据并清理构建。也尝试删除 pod 和 node_modules。刚刚将我的 Xcode 升级到 15.0,突然它开始在 RCT_Folly 中出现以下错误。原创 2023-11-02 11:20:46 · 3766 阅读 · 0 评论 -
关于 iOS 报Multiple commands produceMultiple 错误的解决方案
对于这种问题,我们只需要点击工程targets,然后在copy bundle resource 找到对用的资源文件路径,删除后运行即可。今天在运行一个RN老项目的时候,报了一个下面的错误。原创 2023-11-02 10:51:53 · 832 阅读 · 0 评论 -
Airbnb 迁移 SwiftUI 实践
为此,他们为每个定义的视图变体起了一个名字,以便与他们的快照测试服务一起使用,并让所有视图变体遵循 Xcode 的 PreviewProvider 协议,以便使用 Xcode 预览。Airbnb 的工程师认为,SwiftUI 的主要优势是它的灵活性和可组合性、声明性、简洁性和惯用性,他们希望这些优势可以改进开发者体验,同时不会在用户体验方面有所损失。Bodayle 解释说,与 UIKit 实现相比,现在的代码量大约减少到原来的六分之一,而且没有出现与 SwiftUI 响应性相关的性能损失,除了。原创 2023-10-18 10:06:16 · 280 阅读 · 0 评论 -
error: DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead
事实上,对于 error: DT_TOOLCHAIN_DIR cannot be used to evaluate LIBRARY_SEARCH_PATHS, use TOOLCHAIN_DIR instead 的解决办法。然后,打开Xcode,点击Runner,点击【Targets】 -> 【Runner】 -> 【Build Phases】,“Embed App Extension” (or “Embed Foundation Extension”。原创 2023-09-27 14:42:57 · 1885 阅读 · 0 评论 -
关于Github报SSL_ERROR_SYSCALL的解决方案
最近在运行RN项目的时候发现,在我pod install命令安装pod包时产生了 SSL_ERROR_SYSCALL 的错误,如下所示。原创 2023-09-19 17:37:42 · 1095 阅读 · 0 评论 -
Beacon低功耗蓝牙基本使用
iBeacon是基于Android的低功耗蓝牙BLE,和蓝牙不同的是iBeacon不用配对和连接过程,iBeacon基站通过BLE蓝牙的广播频道不断向外发送位置信息,当智能设备进入设定区域时,只要满足iBeacon技术标准,不需要连接就能够收到信号。事实上,IBeacon最早的提出是苹果公司,它们在2013年9月发布的移动设备上就已经使用了IBeacon技术,随后,许多组织开始着力开发蓝牙 Beacon 试点项目,到 2015 年,已经有许多公司开始尝试利用部署好的蓝牙 beacon 探索新的服务模式。原创 2023-07-18 13:55:03 · 1003 阅读 · 0 评论 -
走进 WWDC 2023 苹果开发者大会
6 月 6 日凌晨开始,苹果在加州总部举行了 WWDC 2023 开发者大会的主题演讲,向全球观众展示了 iOS 17、iPadOS 17、tvOS 17、watchOS 10 和 macOS 14 这五大新系统,以及备受期待的混合现实头显 Apple Vision Pro 和 Mac Pro 等硬件。以下是对发布会的主要内容和亮点的总结和分析,更多细节的内容也可以观看的回放。原创 2023-06-10 11:40:21 · 1352 阅读 · 0 评论 -
实战iOS App 重签名
在签名的流程中,有一个App重签名的步骤,主要针对的是一些大公司有多个App的情况,多个App一个申请主体的情况。下面我们通过Donut App来说明iOS App重签名上架的步骤。原创 2023-04-20 19:53:09 · 859 阅读 · 0 评论 -
网易严选APP工程架构演进
架构指导设计思想,处于不同的阶段,不同的业务形态下会有不同的实现。在阅读本文之前,我们可以先思考一下什么是APP架构?它有什么标准?指导设计的基本原则是什么?工程项目的组件化、容器化是一个系统性、持续性的工作。涉及工程架构的改造、CI/CD 研发工具链的支撑、本地研发工具链的支撑,业务架构的设计优化,需要从各个方面综合考虑成本和收益。架构是一个循序渐进的过程,没有最好的架构,只有更好的架构,在架构演进的过程中,我们需要充分考虑架构的改动对业务的影响以及能给业务带来的收益。转载 2022-10-28 12:25:32 · 1093 阅读 · 0 评论 -
关于iOS的CocoaPods版本冲突的解决方案
意思是,安装了CocoaPods,但它不工作。如果安装CocoaPods的Ruby版本与用于调用它的版本不同,就会发生这种情况。1,首先查看CocoaPods的版本。原创 2022-09-15 19:49:29 · 1393 阅读 · 0 评论 -
关于iOS报Could not find ‘minitest‘ (>= 5.1) among 39 total gem(s)的错误
原因是,指定的ruby路径不对,应当使用更新版本的ruby。然后,使用下面的命令默默的指定ruby 版本。也没有其他的办法,直接卸载掉,然后重新安装。我们使用下面的命令安装最新的3.1.2版本。然后,将它添加到PATH的环境变量中。原创 2022-08-24 13:51:25 · 2134 阅读 · 0 评论 -
字节开源视频动画特效 SDKAlphaPlayer
AlphaPlayer是直播中台使用的一个视频动画特效SDK,可以通过制作Alpha通道分离的视频素材,再在客户端上通过OpenGL ES重新实现Alpha通道和RGB通道的混合,从而实现在端上播放带透明通道的视频。这套方案对设计师而言明显降低了特效的制作成本,对于客户端而言有着更可靠的性能和稳定性,且相比cocos2d引擎有着更低的入门门槛和维护成本,为复杂动画的实现提供了一种全新的方式,新的复杂动画开发将会变得更加简单高效。在直播项目的原有礼物动画实现效果是通过cocos引擎实现的,大部分动画都是通过一原创 2022-07-03 20:07:48 · 688 阅读 · 0 评论 -
关于iOS 报Command failed with exit 128: git错误额解决方案
最近在运行pod install 命令报了一个错误,日志如下:然后,我又使用命令重新安装了一下brew工具,报了一个错误,日志如下。解决办法:执行命令时会有两个提示,提示用户设置 homebrew-cask 和 homebrew-core 的文件路径为设置为safe.directory。然后我们按照提示运行上面的提示:接着命令就能够正常安装了。...原创 2022-06-15 12:24:37 · 2186 阅读 · 0 评论 -
WWDC 2022 开发者大会
2022年6月7日凌晨一点,苹果正式召开了WWDC 2022,在本次的WWDC上,苹果发布了一系列的新内容,涵盖软件更新和硬件产品。在WWDC 2022一开始,苹果CEO——蒂姆库克首先介绍了,苹果为开发者的应用开发所做的努力,包括建立一对一的沟通,让苹果工程师进行支持,对少数族裔进行扶持等一系列的措施。库克宣布,目前苹果的开发者社群已经超过了3400万人。在库克介绍完苹果在社群开发方面的一系列举措及成就后,苹果发布了iOS 16的更新。iOS 16首先被介绍的更新就是在锁屏界面的更新,苹果认为原创 2022-06-08 11:13:14 · 487 阅读 · 0 评论 -
iOS最新打包发布流程
关于如何发布iOS应用到App Stroe,苹果开发者中心已经给出了很详细的说明。和普通的iOS应用一样,使用React Native开发的iOS应用也需要使用普通的iOS应用的发布流程,总的来说,主要涉及以下几步:加入苹果开发者计划,申请成为开发者;生成和配置开发者证书;打包iOS应用;上传应用并发布到App Store。如果想要将iOS应用发布App Store,那么加入开发者组织,并且需要拥有会员资格。如果还没有会员资格,那么可以使用Apple Developer app程序进行注册和购原创 2022-04-17 23:24:52 · 2415 阅读 · 0 评论 -
There are no devices registered in your account on the developer website
如果打包时遇到下面的错误,There are no devices registered in your account on the developer website一般是首次调试,左上角没有选择真机iPhone,所以才会报错 。原因是:苹果要求我们打包上架之前至少要在开发者网站注册一台真机,大多数人都不会遇到这种情况,因为在上架前我们肯定会真机调试一下,在调试的时候Xcode就自动帮我们注册了。解决的办法是,连上iPhone,并在左上角这里选择真机iPhone运行一次,然后Xcode就自动帮我原创 2022-04-17 18:45:52 · 2970 阅读 · 0 评论 -
如何获取iphone的UUID
开发的iOS应用如果再测试环境需要运行在真机设备上,那么需要在苹果的开发者后台注册测试的设备,此时需要用到UUID,下面是罗列的获取UUID的常见方法:1, 用iTunes获取手机连接电脑,打开iTunes软件,然后点击序列号字母处即可获取,如果没有安装iTunes需要先安装一个。2,通过第三方工具iTools获取手机连接电脑,打开iTools软件,点击更多。出现设备标识即为手机的UDID,单击复制即可。3,通过第三方工具PP助手获取手机连接电脑,打开PP助手软件,设备标识即为手机的原创 2022-04-16 10:22:44 · 10089 阅读 · 2 评论 -
iOS 组件化/模块化架构设计实践
一、背景业务组件化(或者叫模块化)作为移动端应用架构的主流方式之一,近年来一直是业界积极探索和实践的方向。有赞移动团队自16年起也在不断尝试各种组件化方案,在有赞微信商城,有赞零售,有赞美业等多个应用中进行了实践。我们踩过一些坑,也收获了很多宝贵的经验,并沉淀出 iOS 相关框架 Bifrost (雷神里的彩虹桥)。在过程中我们深刻体会到“没有绝对正确的架构,只有最合适的架构”这句话的意义。iOS 组件化/模块化的方案有很多,我们只提供一种实现思路,对遇到类似问题的同学能有所启发,并不准备对组件化架构设原创 2021-10-25 22:54:27 · 1980 阅读 · 0 评论 -
Apple Developer支持大陆开发者注册苹果开发者计划
苹果在上月举行的全球开发者大会(WWDC)上宣布启用官方APP,名称“苹果开发者应用”(Apple Developer App),并在昨日的版本更新中苹果放出了针对中国开发者的一项福利。自今天开始,中国大陆地区的开发者可以通过这款APP更加轻松地注册 Apple Developer Program,并在 iPhone 或 iPad 上使用当地付款方式购买会员资格,因此对于没有Visa信用卡的开发中...原创 2019-12-18 15:24:53 · 1458 阅读 · 3 评论 -
使用podspec创建iOS插件
概述在WWDC 2014全球开发者大会上,苹果开放了动态库、App Extension等全新的功能,这为iOS插件化开发带来了可能。在iOS开发中,动态库是iOS提供的一种资源打包方式,可以将代码文件、头文件、资源文件和说明文档等集中在一起,并且可以在运行时进行动态加载。目前,很多应用越做越复杂,应用程序也显得越来越臃肿。试想一下,如果将一些不常用的功能做成一个插件,然后根据用户的需求从网络中...原创 2018-12-20 19:47:55 · 712 阅读 · 0 评论 -
HandyJSON库简介
背景JSON是移动开发中常用的应用层数据交换协议。最常见的场景便是,客户端向服务端发起网络请求,服务端返回JSON文本,然后客户端解析这个JSON文本到具体的Model,再把对应数据展现到页面上。但在编程的时候,处理JSON是一件麻烦事。在iOS开发中,在不引入任何轮子的情况下,通常需要先把JSON转为Dictionary,然后还要记住每个数据对应的Key,用这个Key在Dictionary中...原创 2018-10-12 10:12:47 · 7983 阅读 · 0 评论 -
iOS 12正式版新特性总结
距离苹果WWDC发布会举行已久,苹果在昨日(9月18)开始向用户推送iOS 12 GM版,据称本次iOS的更新内容主要是性能方面的提升,打开相机的速度提升70%,屏幕键盘呼出速度提升50%,其它App启动速度提升2倍。下面让我们看看究竟哪些设备将支持iOS 12 :iOS 12 新特性##1, 性能据苹果介绍,iOS 12 将使得 iPhone 或 iPad 的操作更加快速和灵敏,比如应...原创 2018-09-19 11:51:13 · 1098 阅读 · 0 评论 -
基于UIScrollView控件实现的滑动引导页
在很多的app应用开发中,当第一次启动应用的时候都会来一个引导页,其效果如下图所示。 此处,我们使用UIScrollView来实现一个这样的效果,涉及的代码有。 WelcomeViewController.h#import <UIKit/UIKit.h> @interface WelcomeViewController : UIViewController @e...原创 2018-06-11 22:12:36 · 527 阅读 · 0 评论 -
iOS关键组件iBoot源代码泄露
昨天(2月7日),有匿名开发者在 GitHub 上传了 iOS 核心组件的源代码,这可能会促进黑客和安全研究人员找到 iOS 漏洞,并使 iPhone 陷入危险境地。git地址:https://github.com/h1x0rz3r0/iBoot。 不过,8日早上已经看不到相关的源码信息了,该项目已经转为Private,相关信息可以查看下面的链接: https://github.com/g...转载 2018-02-08 22:18:39 · 2588 阅读 · 1 评论 -
IOS开发之逆向分析
首先,本逆向分析是系列文章,会分别从常见的逆向技巧来介绍iOS开发中常见的逆向技术。网络分析在逆向过程中很多时候需要分析APP和Web端数据交互的内容那么最简单的方式即是抓包网络分析,而使用Charles、Tcpdump也是逆袭分析最基本的手段。本文以Charles为例来介绍网络相关的内容。Charles 是在 Mac 下常用的网络封包截取工具,在做 移动开发时,我们为了调试与服务转载 2018-02-01 20:23:14 · 5284 阅读 · 0 评论 -
iOS WebDriverAgent 环境搭建
WebDriverAgent简介WebDriverAgent是Facebook 在去年的 SeleniumConf 大会上推出了一款新的iOS移动测试框架。当时的推文申明,还只支持模拟器,不过在今年4月更新的版本中,官方宣称支持真机测试了,大家可以查看官方github 的介绍:https://github.com/facebook/WebDriverAgent下面摘录一段官方对于WebDriverA原创 2017-12-31 21:35:03 · 3444 阅读 · 2 评论 -
使用多个Target去管理项目版本环境
在实际开发中,为了保证所开发的产品能够尽量完美上线,在上线前会特意测试几轮,保证所开发的应用没有问题。据此,在实际的开发过程中,往往需要区分测试环境和线上环境,在Android开发中,可以通过gradle脚本来识别,并在代码中体现出来。 在ios开发中,如果一个包需要同时包含debug和线上的relase环境,则需要打两个.a文件,然后合并在一起。除了上述情况之外,有一些App还分为专业版与普通版原创 2017-11-28 14:53:42 · 1678 阅读 · 0 评论 -
解决低版本Xcode不支持高版本iOS真机调试的问题
今天在做真机调试的时候,遇到下面的一个问题: Could not locate device support files. This iPhone 6s is running iOS 11.1 (15B93), which may not be supported by this version of Xcode.上面的意思是,在调试前我将我手机的iOS系统 升级到了最新版11.1版本,而我的原创 2017-10-26 23:40:06 · 23664 阅读 · 3 评论 -
iOS入门之打包静态库
在项目开发中,或多或少的都会使用第三方库,有时候也会将自己项目中独立于业务的相关代码打包成库以供别人使用。在Android开发中,一般打包为aar或者jar文件以供第三方使用。iOS开发中,则可以直接打包为.a文件,iOS内置了Static Library的模板,所以使用上也是十分的方便。 在正式讲解打包.a静态库之前,首先来看一些概念:什么是库?所谓库就是程序代码的集合,是共享程序代码的一种方式原创 2017-09-09 13:56:05 · 2125 阅读 · 0 评论 -
iOS开发证书管理
最近,没啥事情,就逛逛论坛,研究一些新技术,偶尔导入github上一些开源的iOS项目学习学习别人的一些写法。不过有时间,在运行别人的项目的时候,总会报一些错误,有些是语法上的错误,老的代码在新的编译环境下不通过,还有的因为因为签名导致的错误,如常见的错误提示:“Failed to create provisioning profile.”,ios的证书管理是ios开发中必须掌握的技能,本文先简单的原创 2017-09-07 23:28:36 · 5840 阅读 · 1 评论 -
iOS开发技巧篇
在iOS开发中,有一些技巧可以提高程序猿的开发效率。1,Xcode真机调试Xcode 7推出之前,想要真机调试,iOS开发者必须花$99购买苹果开发者账号,而且步骤繁琐,需要下载证书认证。随着苹果公司推出了Xcode 7之后,大幅度的简化了真机调试的步骤。但是如果要测试推送等,还是需要证书的。第一步:准备Mac电脑,Apple ID, iPhone手机,Xcode 集成开发环境; 第二步:打开X原创 2017-09-05 10:24:26 · 1088 阅读 · 0 评论 -
iOS AutoLayout全解
AutoLayout简介Autolayout是一种全新的布局技术,专门用来布局UI界面的,用来取代Frame布局在遇见屏幕尺寸多重多样的问题。Autolayout自iOS 6开始引入,但是由于Xcode 4的不给力,当时并没有得到大规模推广。在iOS 7(Xcode5)开始,Autolayout的开发效率得到很大的提升,苹果官方也推荐开发者尽量使用Autolayout来布局UI界面,减少纯代码的方式原创 2017-09-04 11:28:43 · 4610 阅读 · 0 评论 -
ARKit 简介
ARKit 简介苹果在AR一直布局VR,最近的苹果开发者大会上,果家终于放出大招:iOS移动端ARKit平台以及VR兼容新桌面操作系统macOS High Sierra。 增强现实(AugmentedReality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。说起AR,其实它并不是第一次出现,不管在国内还是国外原创 2017-09-01 11:00:48 · 4037 阅读 · 0 评论 -
iOS自动布局框架之Masonry
目前iOS开发中大多数页面都已经开始使用Interface Builder的方式进行UI开发了,但是在一些变化比较复杂的页面,还是需要通过代码来进行UI开发的。而且有很多比较老的项目,本身就还在采用纯代码的方式进行开发。而现在iPhone和iPad屏幕尺寸越来越多,虽然开发者只需要根据屏幕点进行开发,而不需要基于像素点进行UI开发。但如果在项目中根据不同屏幕尺寸进行各种判断,写死坐标的话,这样开发起原创 2017-08-26 11:25:19 · 3196 阅读 · 3 评论 -
iOS开发入门笔记
iOS开发入门笔记本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于让我的同事一小时内了解如何开始开发iOS App,学习目标包括:能使用Xcode IDE、模拟器能修改、调试已有iOS App能在已有应用内创建新模块能创建新应用能发布应用到App Store本文不包含任何高级的iOS开发知识,已学会iOS开发的同学不要看,看完这篇文原创 2017-08-21 13:52:42 · 4698 阅读 · 2 评论 -
Swift 4.0 新特性
WWDC 2017 带来了很多惊喜,在这次大会上,Swift 4 也伴随着 Xcode 9 测试版来到了我们的面前,虽然正式版要8月底9月初才会公布,但很多强大的新特性正吸引我们去学习它。根据大会上已经开放的新特性,先一睹为快。体验Swift 4包含在Xcode 9中,您可以从Apple的开发者门户下载最新版本的Xcode 9(您必须拥有一个活跃的开发者帐户)。 每个Xcode测试版将在发布时捆绑最原创 2017-08-15 11:23:18 · 3492 阅读 · 0 评论 -
iOS如何实现多个环境一次打包
概述偶然看到一个很有趣的问题:如何在ios环境下实现多个环境同时打包。谈到多环境,我想大多公司都至少有2-3个环境,比如Test环境,UAT(User Acceptance Test)用户验收测试环境,Release环境等等。当需要开发打多个包的时候,一般常见做法就是直接代码里面修改环境变量,改完之后Archive一下就打包了。或者在App中内置一个切换的按钮,实现环境的切换。或者,你们公司已经搭建原创 2017-07-17 10:26:34 · 5163 阅读 · 1 评论 -
iOS之Runtime原理解读
Runtime简介做过Android开发的同学都知道,早期的Android系统采用的是Dalvik机制,应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,大大的降低了app的运行效率。在Android 5.0系统之后,系统采用了ART机制,应用在第一次安装的时候,字节码就会预先编译成机器码,以后每次运行速度大大的提高了。OC是一门动态语言,所以它总是想办法把一些决定工作从编译推迟到运行时,原创 2017-06-12 22:03:47 · 3290 阅读 · 0 评论 -
CocoaPods使用详解
CocoaPods简介什么是CocoaPods?每种语言发展到一个阶段,就会出现相应的依赖管理工具。好比Java 语言的 Maven,nodejs 的 npm,Android的grandle。而对于ios平台来说,CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用C原创 2017-06-01 22:51:30 · 2178 阅读 · 0 评论