iOS
ioszhanghui
这个作者很懒,什么都没留下…
展开
-
iOS 瘦包优化未使用的图片资源
在工程瘦包中,包含着一些,在业务更新过程中未被使用的图片资源文件,可以使用工具,LSUnusedResources.一.下载运行在Mac上的工具LSUnusedResources下载地址二.通过Xcode打开运行工程在工程中,往往添加有序列号的图片,比如,loading_1,loading_2,loading_3,loading_4,但是在使用时,可能不是直接引用的而是通过字...原创 2019-11-26 16:06:16 · 367 阅读 · 0 评论 -
iOS 瘦包使用的工具Linked-Map
Linked-Map工具主要是查看,当前工程的.o目标文件的大小,系统库的大小。根据文件的大小,进而进行瘦身,比如,合并静态库,减少工程类和方法Method。使用1.在Xcode工程中,打开Write Linked Map File功能,Xcode->Target->Build Setting ->Write Linked Map File2.查找编译之后的Link...原创 2019-11-26 15:04:50 · 970 阅读 · 0 评论 -
iOS提升编译和打包速度(一)
CCache是可以把编译的中间产物.o,缓存起来的工具。在首次编译时,如果工程中配置了CCache,就会把CCache作为C编译器,同时,编译生成的目标文件进行缓存,在下一次编译时,会使用缓存的.o目标文件。安装ccache工具//打开终端执行 如下命令 HomeBrew可能 更新的时间 会比较长brew install ccache//安装完毕查看ccache --help /...原创 2019-11-22 22:51:38 · 837 阅读 · 0 评论 -
iOS 通用链接(Universal Link)唤起APP
APP端的配置Xcode 11.0以下的 在Target ->Capabilities中,打开Associated Domains配置 在Associated Domains中配置,支持的域名,在配置时,必须是applinks: 开头,比如:支持的域名是meilikongjian.resolr.com,需要配置的写法:applinks:meilikongjian.resolr.com...原创 2019-11-13 15:33:40 · 1244 阅读 · 0 评论 -
iOS关于testFlight测试学习
testFlight测试,相比于打包addhoc减少打包的频率,只需要打包AppStore的包,添加要参与测试的人员的姓名和邮箱,就可以参与测试。添加测试人员的入口有两个AppStore Connect 用户 就是你在iTunesconnect的用户和访问中添加的账户,这种方式最多可以添加25个,优点是不需要等待testFlight审核通过,可以直接在testFlight中,输入邀请码安...原创 2019-10-30 11:45:08 · 1106 阅读 · 0 评论 -
iOS Jenkins自动化打包配置学习记录
1.安装java JDK环境1.1检测java JDk 安装的版本//Java环境查看java -version1.2如果当前环境没有下载安装,可以下载并安装。下载地址2.下载安装Jenkins。2.1在官网下载安装,下载地址,下载之后双击安装,pkg文件。安装之后,会默认自动打开浏览器,打开的默认地址是:http://localhost:8080,并让你输入密码,...原创 2019-10-25 23:18:31 · 1020 阅读 · 0 评论 -
iOS组件化中.framework静态库的制作学习记录
1.创建一个Cocoa Touch Framework的工程。2.选择编译的方式 TARGETS->Build Setting -> Mach-O Type ,选择编译方式为Static Framework,默认为Dynamic Framework3.修改编译成库时的架构,TARGETS->Build Setting ->Build Active Archit...原创 2019-10-13 14:22:31 · 1410 阅读 · 0 评论 -
iOS keychain在同一个开发者账号的数据共享
keychain数据存特点独立于sandbox沙盒之外,APP被卸载的时候,sandbox沙盒内容被清除,但是keychain依然存在,因为它是存在于系统级别的 存于keychain的数据是被加密保存的,相对于来说比较安全 在同一个teamID的APP,可以共享keychain的数据,不是同一个teamID的keychain数据是无法共享的。 keychain存储存在着私有区和共有区,每一...原创 2019-10-12 14:50:51 · 812 阅读 · 0 评论 -
iOS 脚本自动化打包
目前,在打包的时候,可能会用到测试环境、生产环境、或者企业版打包,总是使用archive打包导出比较麻烦,所以,就鼓捣自动化打包。打包测试环境,并上传到蒲公英packaging(){#ProjectName Scheme Configuration Workspace不能留空格#***********配置项目#工程名称(Project的名字)ProjectName=GomeSho...原创 2019-06-10 15:16:30 · 6315 阅读 · 1 评论 -
iOS layoutSubviews 调用
在初始化时,使用init和-(instancetype)initWithFrame:(CGRect)frame,但是,在调用时是有系统区分的,iOS 11.0以下,调用init 和-(instancetype)initWithFrame:(CGRect)frame 当frame为CGRectZero是不会调用的, 在调用addSubView时,这个跟添加的subView尺寸大小没有关系。 改变...原创 2019-05-29 18:22:11 · 1060 阅读 · 0 评论 -
iOS 自动化打包--(手动运行xcodebuild命令)
无论是Xcode的Archive打包和导出还是运行脚本xxx.sh文件,基本都是基于xcodebuild工具,只是在Xcode 8.3之前通常使用的是xcodebuild archive 和xcodebuild xcrun ,在之后的Xcode8.3以后的版本 9.0,10.0,都是基本基于xcodebuild archive 和xcodebuild -exportArchive 来实现自动化打包...原创 2019-06-06 19:05:22 · 7137 阅读 · 0 评论 -
iOS xcodebuild命令行打包的坑
1.在使用xcodebuild archive进行编译时,需要配置运行文件,需要配置运行文件解决方案:在导出的plist文件exportOptionsPlist配置provisioningProfiles属性配置的内容:就是你的运行文件的名字,如下图所示:2.在xcodebuild进行进行编译时,如果当前的workspace工程,不能配置Target变量3.expo...原创 2019-06-06 16:34:56 · 1561 阅读 · 0 评论 -
Xcode 一个项目下创建多个Target
在实际项目开发的过程中,可能会存在一个项目中,需要打包多个类型,比如,你要发包一个AppStore,还发包一个企业环境的,你就可以创建多个Target,每一个Target配置一个证书环境。创建Target有两种方式:在XCode工具栏1) 在Xcode工具栏 选择Xcode->New->Target2)选Application中的Single Applicatio...原创 2019-05-31 18:26:36 · 2227 阅读 · 0 评论 -
iOS APP项目接触Cocoapod库的安装
移除cocopods后重新安装1、打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库2、安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖3、运行pod install,重新安装cocopods...原创 2019-05-13 11:25:30 · 182 阅读 · 0 评论 -
iOS可变参数(不定参数的用法)
之前看到UIALertView,在传递按钮的个数时,...NS_REQUIRES_NIL_TERMINATION,只知道这个可以传入多个参数,没有仔细看这个传入的参数是怎么拿到的。- (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message delegate:(nu...原创 2019-05-26 10:25:05 · 1694 阅读 · 0 评论 -
CocoaPods清理本地缓存
最近 在做一个组件化,发现如果我发布了一个组件版本号,比如1.0.0,但是,如果发现发布之后还有一些小瑕疵,需要更新一下,但是,又不想新建一个新的版本号,毕竟,之前的版本是有问题的,如果别人引用了那个版本号,还是有错误的。结果发现,发布上去之后,再安装更新还是还之前的内容,冲突还是存在。问题:cocoapod 本身有一份自己的缓存查找本地的cocoapod缓存pod cache li...原创 2019-05-25 11:24:16 · 5219 阅读 · 0 评论 -
WKWebView遇到_blank的处理方法
在做WKWebView加载的时候,有时候,会发现一个超链接加载不了,或者对应的点击事件,执行不行,实际上跟target='_blank'有着莫大的关系。target='_blank'在HTML中,意味着新创建一个window窗口加载,也就是,不再是mainframe了。但是在UIWebView中,只有一个页面,所以,UIWebView会自动的在当前页面渲染新的链接内容。解决思路有两个。一)...原创 2019-04-18 01:20:06 · 1877 阅读 · 0 评论 -
iOS 多个WKWebView共享加载的资源
在项目中,如果使用了多个WKWebView,但是,有想要这些个WKWebView共享资源的话,就是需要使用WKProcessPool(进程池),创建成一个单例。//// WKProcessPool+SharedProcessPool.h// HandleCookies//// Created by 小飞鸟 on 2019/04/17.// Copyright © 2019 小...原创 2019-04-18 01:29:40 · 2054 阅读 · 0 评论 -
iOS WKWebView学习笔记(二)
在实际开发中,会存在交互,就是原生和h5页面数据同步,比如登录同步。就可以使用Cookie进行信息同步。WKWebViewcookie注入,一共是三种方式,一)在请求的请求头中设置Cookie二)在WKWebViewConfiguration中,通过js注入document.cookie三)注入WKWebsiteDataStore中的WKHTTPCookieStore方案1:W...原创 2019-04-20 15:03:27 · 161 阅读 · 0 评论 -
iOS UDP和TCP测试工具sokit
学习备注地址:https://www.jianshu.com/p/d21006dcc4b7sokit是一款非常简单易用的tcp、udp调试工具,主要适用于专业的网络管理使用,它可以轻松查看网内的数据情况,能够有效地接收、发送、转发TCP或UDP数据包。网上大多数版本是基于win下的,linux下也可以编译。主要特色服务器模式 用来监听本地端口,接收外部数据包,并且可以回复自定义数据...转载 2019-04-25 04:23:11 · 2104 阅读 · 0 评论 -
Guideline 4.1 - Design - Copycats解决
Guideline 4.1 - Design - CopycatsYour app or its metadata appears to contain potentially misleading content. Specifically, your app includes content that resembles 国美 without the necessary authoriza...原创 2019-04-29 21:07:04 · 6484 阅读 · 0 评论 -
Cocoapods 安装问题集合
在cocoapod安装和使用过程中,初次安装或者更新cocoapod库,总是会遇见各种问题。1、通过命令$ gem sources -l查看当前你的ruby源2.删除默认的ruby 源码地址或者当前使用的ruby源码地址,添加要使用的ruby源码地址在添加淘宝镜像源码的时候,会报一下错误原因是淘宝的ruby镜像源码停止服务维护,更新到了ruby-china,即需要使用新的...原创 2019-04-30 11:34:57 · 110 阅读 · 0 评论 -
提交版本-ERROR ITMS-90475
报错文本ERROR ITMS-90475: "Invalid Bundle. Your app supports Multitasking on iPad, so you must include the UILaunchStoryboardName key in your bundle, 'com.shenhuan.HaiTianQi’. Learn more (https://develop...原创 2019-05-06 07:48:47 · 576 阅读 · 0 评论 -
iPhone XR/XS/XS Max 适配,最全iPhone尺寸
最新的苹果开发适配屏幕。学习博客https://blog.csdn.net/sinat_15735647/article/details/82762238转载 2019-05-06 07:55:46 · 388 阅读 · 0 评论 -
ios客户端学习-ERROR ITMS-90101 this bundle does not support one or more
在一个程序被重新发布的时候,尤其是,这个程序之前是别的公司发布,现在转到你的公司发布的时候,第一次发布可能遇到这个问题:解决方案:1.之前的下架了,重新上传这个新包2.重新创建一个新的bundleID提交3.配置 AppIcon 和LaunchImage 支持 iPad...原创 2019-05-06 08:17:31 · 1286 阅读 · 0 评论 -
Jenkenis报错:该jenkins实例似乎已离线
初始使用安装Jenkenis,安装配置的过程中,发现无法正常安装插件,显示已离线。解决方法:1. 保留此离线页面,重新开启一个浏览器tab标签页2.输入输入网址http://localhost:8080/pluginManager/advanced3.进入该页面最底下,找到【升级站点】,把其中的链接改成http,http://updates.jenkins.io/update-ce...原创 2019-05-14 00:54:51 · 501 阅读 · 0 评论 -
Jenkins的关闭、重启、重载
Jenkins的访问地址配置基于Apache本地服务器,所以,一般,Jenkins默认的访问地址就是http://localhost:8080,关闭已经开启的Jenkins服务只需要在访问的地址后面,加上exit http://localhost:8080/exit,按下enter进行刷新页面。关闭之后,会出现Shutting down 字样。Jenkins重启只需要在访...原创 2019-05-14 01:18:16 · 987 阅读 · 0 评论 -
iOS 获取连接的WiFi和Mac地址
最近做了一个WiFi的硬件APP,需要用到当前手机链接的WiFi名字和Mac地址,这种场景使用,其实,在打卡软件中,应该比较常用,比如打卡需要连接到公司的WiFi,就是保证你在办公室打的卡。刚开始使用的时候,以为就像别人说的需要,想苹果申请访问权限,实际上如果只是想获取当前访问的WiFi名称和Mac地址,是不用申请的。使用需要添加系统库SystemConfiguration.framew...原创 2019-05-15 15:14:36 · 8304 阅读 · 2 评论 -
iOS中通过长短连接打开到APP的特定页面
学习参考地址:https://www.jianshu.com/p/01a77fcbf00c在APP分享的过程中,经常会分享到微信上,但是,很多公司都会考虑打开在浏览区打开的时候,能跳转到APP的特定页面。比如电商页面,分享出来之后,在微信的内置浏览器中打开,没办法直接打开APP,可以像简书一样做一个引导页面,提示用户在微信的内置浏览器中使用Safari浏览器打开页面。如果分享出来的链接...原创 2019-05-10 17:16:58 · 1390 阅读 · 0 评论 -
iOS WKWebView学习记录(三)
在WKWebView开发者中,有时候,在APP端嵌套h5页面的时候,为了区分去WAP端还是APP端,通常需要做区分标示,这样一般,是通过修改UserAgent来做区分标示,比如,我们项目中使用gomeshop来区分,-(void)changeUserAgent{ if (@available(iOS 9.0, *)) { //设置setCustomUserAgent 这...原创 2019-04-20 18:48:23 · 295 阅读 · 0 评论