<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[郑亚恒的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jiisd</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jiisd]]></copyright><item><title><![CDATA[Swift 运行 shell 命令(可实时输出Log)]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/90047799</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/90047799</guid><author>jiisd</author><pubDate>Thu, 09 May 2019 21:00:19 +0800</pubDate><description><![CDATA[//
//  CommandRunner.swift
//  zhengyh
//
//  Created by zhengyh on 2019/5/9.
//  Copyright © 2019 zhengyh. All rights reserved.
//

import Cocoa

class CommandRunner: NSObject {
    
    /** 同步执行
  ...]]></description><category></category></item><item><title><![CDATA[iOS 开发之仿咸鱼初期在老项目引入集成 Flutter【生产中不建议采用此方案】]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/83957608</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/83957608</guid><author>jiisd</author><pubDate>Sun, 11 Nov 2018 13:16:30 +0800</pubDate><description><![CDATA[ 

【Flutter 环境配置传送门】

 

1、在工程目录执行如下命令引入 flutter 配置


flutter create -t module flutter_module

补充：添加 flutter 依赖库流程：


cd flutter_module

vim pubspec.yaml // (编辑 pubspec.yaml（类似于iOS Podfile） 添加需要引入的库，例...]]></description><category></category></item><item><title><![CDATA[Mac下使用命令行安装 jenkins 方法]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/60878398</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/60878398</guid><author>jiisd</author><pubDate>Wed, 08 Mar 2017 18:45:41 +0800</pubDate><description><![CDATA[首先说明不建议使用官网 dmg 形式的安装包，搭建环境什么的强烈建议使用
**命令行**。


1. 安装 brew  
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 升级 java
brew cask install ja]]></description><category></category></item><item><title><![CDATA[iOS开发APP瘦身之PDF图片资源加载框架]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/52855125</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/52855125</guid><author>jiisd</author><pubDate>Wed, 19 Oct 2016 01:06:16 +0800</pubDate><description><![CDATA[本文介绍的是一个用于在iOS项目中高效加载PDF矢量图标(尺寸可以无限放大)的工具。我们知道在 Xcode 6 及以上版本可以在 Asset Catalog 中使用 PDF 格式的矢量图资源。 YHPDFImageLoader 这个工具，它旨在解决 Asset Catalog 中后期动态调整放大图片发虚的问题，与系统调用加载图片兼容，并具有三级加载两级缓存功能，以减少重复性质的运算并提高加载效率]]></description><category></category></item><item><title><![CDATA[iOS运行时编程(Runtime Programming)和Java的反射机制对比]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/52213826</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/52213826</guid><author>jiisd</author><pubDate>Mon, 15 Aug 2016 19:06:37 +0800</pubDate><description><![CDATA[运行时进行编程，类似Java的反射。运行时编程和Java反射的对比如下：

 

1.相同点

  都可以实现的功能：获取类信息、属性设置获取、类的动态加载(NSClassFromString(@“className”))、方法的动态调用

 

　下面是iOS中涉及到的相关使用方法

 

  类的动态加载:NSClassFromString(@“className”]]></description><category></category></item><item><title><![CDATA[在 Mac 端获取【网易云音乐】付费音乐的播放地址（注意下载要坚决支持正版！）]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/52207199</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/52207199</guid><author>jiisd</author><pubDate>Sun, 14 Aug 2016 23:51:40 +0800</pubDate><description><![CDATA[1. 查看本地日志文件
2. 网络抓包
3. 直接定位缓存

不过到最后还是要说，这属于一次好奇心“研究”，生命在于折腾寻找不同的可行路线嘛。

大家下载音乐还是要支持正版啊，支持辛苦创作的音乐人！]]></description><category></category></item><item><title><![CDATA[移动应用测试框架——Appium篇]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/51883004</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/51883004</guid><author>jiisd</author><pubDate>Mon, 11 Jul 2016 18:13:37 +0800</pubDate><description><![CDATA[免费移动应用测试框架]]></description><category></category></item><item><title><![CDATA[iTunes Connect Developer]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/51659173</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/51659173</guid><author>jiisd</author><pubDate>Mon, 13 Jun 2016 17:13:33 +0800</pubDate><description><![CDATA[iTun]]></description><category></category></item><item><title><![CDATA[结构体在内存中占的空间大小详解]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/51585716</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/51585716</guid><author>jiisd</author><pubDate>Sat, 04 Jun 2016 19:18:09 +0800</pubDate><description><![CDATA[C 语言中结构体在内存中占的空间大小详情的计算方法，先确定模数，再依次依据如下相应规律相叠加。]]></description><category></category></item><item><title><![CDATA[移动开发用户行为分析神器之--AppSee！]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/51585714</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/51585714</guid><author>jiisd</author><pubDate>Sat, 04 Jun 2016 19:17:17 +0800</pubDate><description><![CDATA[一是点击热图(Touch Heatmaps）
二是用户记录(User Recordings）]]></description><category></category></item><item><title><![CDATA[iOS 打包提示 Command/usr/bin/codesign failed with exit code 1 并且钥匙串中证书全部无效的解决方案]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/50682291</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/50682291</guid><author>jiisd</author><pubDate>Wed, 17 Feb 2016 19:40:28 +0800</pubDate><description><![CDATA[一、问题描述
由于苹果的根证书失效打企业包时发现提示报错
    1akis25FC97FA851693DEEB23A01AD91B2D0ro09: no identity found
    Command /usr/bin/codesign failed with exit code 1

查看相关的证书配置并没有错误，打开钥匙串发现里面的证书都爆红显示此证书的颁发者无效。


不使用签名强行]]></description><category></category></item><item><title><![CDATA[iOS开发之内购完全笔记（您已购买此 App 内购买项目。此项目将免费恢复。）]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/50527426</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/50527426</guid><author>jiisd</author><pubDate>Sat, 16 Jan 2016 11:43:07 +0800</pubDate><description><![CDATA[iOS开发之内购完全笔记 
解决无限提示 --（您已购买此 App 内购买项目。此项目将免费恢复。）的问题
梳理内购逻辑
记录个人集成过程中遇到的问题点与大家分享]]></description><category></category></item><item><title><![CDATA[富文本之某些字体之间的间距特殊调整]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/49980497</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/49980497</guid><author>jiisd</author><pubDate>Sun, 22 Nov 2015 19:36:08 +0800</pubDate><description><![CDATA[近期业务要求金额的文案展示风格借鉴微信红包的样式，因多处使用故抽取处如下的分类方便后续使用。

//
//  UILabel+XYMoneyAmountDisplay.m
//  yaheng
//
//  Created by 郑亚恒 on 15/11/22.
//  Copyright © 2015年 yaheng. All rights reserved.
//

#import "UI]]></description><category></category></item><item><title><![CDATA[iOS 字符串常用编码互相转换]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/49281317</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/49281317</guid><author>jiisd</author><pubDate>Tue, 20 Oct 2015 19:18:03 +0800</pubDate><description><![CDATA[在日常的网络请求中难免 URL 中会有汉字的内容，若不做相应的处理直接将字符串转换成 URL 来加载是有问题的，至于文字编码的基本知识请参考这里 Unicode与UTF-8互转(C语言实现)，现整理下几种常用的转换方法的代码如下，另推荐一个在线转换的网页{这里传送门}。


/// 汉字 UTF8 互转
    NSString* strA = [@"%E4%B8%AD%E5%9B%BD"]]></description><category></category></item><item><title><![CDATA[互联网推送服务原理：长连接+心跳机制(MQTT协议)]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/49275409</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/49275409</guid><author>jiisd</author><pubDate>Tue, 20 Oct 2015 11:55:13 +0800</pubDate><description><![CDATA[互联网推送消息的方式很常见，特别是移动互联网上，手机每天都能收到好多推送消息，经过研究发现，这些推送服务的原理都是维护一个长连接（要不不可能达到实时效果），但普通的socket连接对服务器的消耗太大了，所以才会出现像MQTT这种轻量级低消耗的协议来维护长连接，那么要如何维护长连接呢:






  在写之前，我们首先了解一下为什么android维护长连接需要心跳机制，首先我们知道，]]></description><category></category></item><item><title><![CDATA[iOS9 适配中遇到的问题记录]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/49100253</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/49100253</guid><author>jiisd</author><pubDate>Tue, 13 Oct 2015 16:20:14 +0800</pubDate><description><![CDATA[1>网络访问默认使用HTTPS请求
由于iOS9改用更安全的https，为了能够在iOS9中正常访问http类型网络，需要在"Info.plist"中进行添加如下配置。


NSAppTransportSecurity
    
        NSAllowsArbitraryLoads
        
    2>应用程序之间跳转需要添加进跳转白名单，否则不能够成功跳转

如果在]]></description><category></category></item><item><title><![CDATA[Xcode7 集成百度地图静态库以及百度坐标火星坐标的互相转换]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/48712473</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/48712473</guid><author>jiisd</author><pubDate>Thu, 24 Sep 2015 16:23:46 +0800</pubDate><description><![CDATA[最近项目中需要集成百度地图的 SDK，但是设置完毕后发现在 Xcode7 中真机调试一直出现静态库报错的问题


可是用终端查看支持的系统架构也是含有当前类型的


架构补充：
//模拟器架构: i386 / x86_64
//真机架构: armv7/armv7s/arm64

另模拟器正常。相同的项目改用 Xcode6.4 打开也是一切正常，真机调试完全没有问题，前段时间发现]]></description><category></category></item><item><title><![CDATA[去掉 TabBar 上部横线以及 navigationBar 下部横线的方法探讨]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/48624505</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/48624505</guid><author>jiisd</author><pubDate>Mon, 21 Sep 2015 13:36:10 +0800</pubDate><description><![CDATA[在一些应用中需要将 TabBar 上部横线或者 navigationBar 下部横线取消掉，之前也尝试了多种方法，现将个人目前使用的方法列举如下，各位看官若是有更好的方案欢迎补充。
tabBar：
直接将系统 tabBar 中所有的控件打印输出，会发现有如下控件（数量依据标签栏的数量不同而不同）
(
    ">",
    ">",
    ">",
    ">"
)



再结合]]></description><category></category></item><item><title><![CDATA[旧项目适配 iOS9 时 .dylib 系统库文件的链接报错的问题处理]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/48597887</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/48597887</guid><author>jiisd</author><pubDate>Sun, 20 Sep 2015 16:59:49 +0800</pubDate><description><![CDATA[今天将公司的项目改用 Xcode7 开发，刚打开项目就有醒目的四个地方爆红




但是在模拟器环境的依旧能够正常的运行，一旦连接到真机（非 iOS9 系统）就提示有两个库文件找不到，如下所示：




难道 iOS9 苹果的库文件也发生了相应的变化？查看 8.4 与 9 的模拟器中的库文件存放文件夹发现果真苹果在iOS9的情况下将库文件的后缀由 .dylib 更改为了 .tb]]></description><category></category></item><item><title><![CDATA[静态库编译命令-ObjC, -all_load, -force_load]]></title><link>https://blog.youkuaiyun.com/jiisd/article/details/48597631</link><guid>https://blog.youkuaiyun.com/jiisd/article/details/48597631</guid><author>jiisd</author><pubDate>Sun, 20 Sep 2015 16:15:34 +0800</pubDate><description><![CDATA[有时在做项目的时候会涉及到使用第三方的库，有些库的添加说明中有时会让在Xcode的Build Settings下Other Linker Flags 中添加 -ObjC、
 -all_load 或者 -force_load 命令，现在对这三个指令做一个简单的辨别：
-ObjC：

This flag causes the linker to load every object file i]]></description><category></category></item></channel></rss>