使用Reveal调试和分析iOS应用UI
Reveal是分析、调试iOS应用UI的利器。
Reveal能够在运行时调试和修改iOS应用程序。它能连接到应用程序,并允许开发者编辑各种用户界面参数,这反过来会立即反应在程序的UI上。就像用FireBug调试HTML页面一样,在不需要重写代码、重新构建和重新部署应用程序的情况下就能够调试和修改iOS用户界面。
Reveal是分析、调试iOS应用UI的利器。
Reveal能够在运行时调试和修改iOS应用程序。它能连接到应用程序,并允许开发者编辑各种用户界面参数,这反过来会立即反应在程序的UI上。就像用FireBug调试HTML页面一样,在不需要重写代码、重新构建和重新部署应用程序的情况下就能够调试和修改iOS用户界面。
直播开发流程:
数据采集→ 数据编码 → 数据传输(流媒体服务器) → 解码数据 → 播放显示
本文主要介绍如何搭建RTMP直播服务器以及测试流媒体服务器是否搭建成功。
面向过程是祈使句,面向对象是主谓(宾)结构。
面向过程注重数据的存储和操作,面向对象注重用程序模拟生活逻辑。
面向过程数据和操作数据的过程是分离的,没有逻辑上的必然联系;面向对象中数据和操作数据的方法是逻辑上的整体,称之为对象。
对象:现实世界中的对象是我们认识世界的基本单元,世界就是由这些基本单元组成的。一切皆为对象;每个对象都是独一无二的;对象都有属性和行为;对象都属于某个类。
类:类是对一组具有共同属性和行为的对象的抽象,它是对象的蓝图和模板。
消息:对象与对象之间存在着一定的联系,这种联系通过消息的传递来实现。程序中的一切操作都通过向对象发送消息来实现,对象接收到消息后,调用有关对象的行为来完成相应的操作。
封装是把一个事物包装起来,使外界不了解它的内部的具体情况。在面向对象的程序设计中,封装就是把相关的数据和代码结合成一个有机的整体,形成数据和操作代码的封装体,对外只提供一个可以控制的接口,内部大部分的实现细节对外隐蔽,达到对数据访问权的合理控制。封装使程序中个部分之间的相互联系达到最小,提高了程序的安全性,简化了程序代码的编写工作。
继承是从已有的类创建新类的过程,提供继承信息的称为父类,得到继承信息的称为子类,子类和父类之间是IS-A关系,继承使得类与类之间形成一个层次结构。
多态是不同结构的对象可以以各自不同的方式响应同一个消息,或者说同一个消息可以根据发送消息的对象的不同而采用多种不同的操作行为,这是面向对象最精髓的部分。
为了帮助你的应用能够尽可能顺利的过审,请查看下面列出来的可能降低审核速度或者被拒绝的常见失误。本清单无法代替审核条款,但你需要确保你已经达到了清单的要求作为良好的开始。
确保你已经:
测试你的应用程序,保证它不会发生崩溃和错误
确保你的应用程序的信息和应用内容保持完整和准确
保证联系人信息始终有效,审核团队可以及时联系到你
提供一个有效的测试帐号以及登录信息,并提供测试功能必要的的硬件和资源(例如,一个测试用的二维码)
保证后台服务在审核期间运行正常
如果应用的某些功能和应用内付费隐藏较深,需提供详细的描述文档和支持文档。如果因为地域的原因我们无法正常使用该功能,请提供该功能的描述视频链接。
请检查你的应用程序是否符合其他规范,包括(注意文中部分内容也有对应的条款和说明,请注意查看)
开发指南
应用程序编程指南(App Programming Guide)
应用扩展编程指南(App Extension Programming Guide)
iOS数据存储条款(iOS Data Storage Guidelines)
Mac OS X文件系统文档(Mac OS X File System Documentation)
Safari扩展开发指南(Safari Extensions Development Guide)
iTunes Connect开发指南(iTunes Connect Developer Guide)
设计指南
iOS人机交互界面条款(iOS Human Interface Guidelines)
Mac OS人机交互界面条款(Mac OS Human Interface Guidelines)
tvOS人机交互界面条款(tvOS Human Interface Guidelines)
watchOS人机交互界面条款(watchOS Human Interface Guidelines)
品牌营销指南
App Store市场营销条款(App Store Marketing Guidelines)
苹果支付身份条款(Apple Pay Identity Guidelines)
加入苹果支付许可条款(Add to Apple Wallet Guidelines)
使用Apple商标和版权的条款(Guidelines for Using Apple Trademarks and Copyrights)
URL:只有字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*'(),[不包括双引号]
、以及某些保留字,才可以不经过编码直接用于URL。
1 | // 废弃接口 |
1 | // 废弃接口 |
平台 | 作用 | 链接 |
---|---|---|
LeanCloud | 存储、消息推送、用户分析、扩展模块 | https://leancloud.cn/ |
Bmob | 云数据库、文件服务、消息推送、短信验证码 | http://www.bmob.cn/ |
七牛 | 云存储 | http://www.qiniu.com/ |
环信 | 即时通讯 | http://www.easemob.com/ |
融云 | 即时通讯 | http://www.rongcloud.cn/ |
CloudKit | iCloud 的 SDK,使用 CloudKit 让开发者的 iOS 应用和 OS X 应用共享数据 | https://developer.apple.com/icloud/index.html |
友盟 | 为中国移动开发者提供免费的统计分析服务及开发者工具 | http://www.umeng.com |
极光推送 | 专注推送的 BasS 服务提供商 | https://www.jpush.cn |
Flurry | Yahoo的App分析统计工具集 | https://developer.yahoo.com |
Google Analytics | Google的移动分析统计 | http://www.google.com/intl/zh-CN_ALL/analytics/index.html |
MTA | 腾讯云统计 | http://mta.qq.com |
App Annie | 数据统计分析 | https://www.appannie.com/cn/ |
ThemeEngine:Mac下的Assets.car文件查看工具,能够将图片导入到PhotoShop中进行编辑,提供了导出图片的功能。ThemeEngine拥有命令行版和图形界面版。使用私有APICoreUI开发。 下载地址:https://github.com/alexzielenski/ThemeEngine
cartool:Mac下的命令行小工具,能够将Assets.car文件解包到指定文件夹。目标文件夹需要事先创建好。该工具使用私有API中的CoreUI进行开发。 下载地址:https://github.com/steventroughtonsmith/cartool
1 | ./cartool Assets.car outputDir |
acextract:Mac下的命令行工具,Swift版。 下载地址:https://github.com/bartoszj/acextract
1 | POST https://itunes.apple.com/CN/lookup?id=978591579 |
使用POST方法,id 是iTunes connect里APP信息的Apple ID:为APP自动生成的id
首先确认是否安装了 Charles 的证书,该证书在菜单 Help -> SSL Proxying 下,需要同时安装在 Mac 和 模拟器或者设备上,具体使用方法参见子菜单。其次因为 10.3 以上系统需要你在“证书信任设置”中信任 Charles 的证书。在设备上点击设置 -> 通用 -> 关于本机 -> 证书信任设置 -> 选择 Charles 的证书打开。
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/
就可以看到你刚下载的 ipa 包。这个是临时文件,你关闭 Apple Configurator 或者点选后会自动消失的。1 | # 只显示常规目录 |
来自runyf
来自Coding
1 | sudo dscacheutil -flushcache |
以下命令将文件名中包含~iphone
的文字替换为空字符
1 | for i in `ls`; do mv -f $i `echo $i | sed 's/~iphone//g'`; done |
.gitmodules
文件中关联内容;git add .gitmodules
.git/config
文件中关联内容;git rm --cached path_to_submodule
(不包含尾部斜线)rm -rf .git/modules/path_to_submodule
git commit -m "Removed submodule <name>"
rm -rf path_to_submodule
You should just be able to edit the .gitmodules file to update the URL and then run git submodule sync to reflect that change to the superproject and your working copy.
1 | git config --file=.gitmodules submodule.Submod.url https://github.com/username/ABC.git |
参考链接:http://stackoverflow.com/questions/913701/changing-remote-repository-for-a-git-submodule
1 | du -sh * |
程序员要提高自己的编程能力,有两个捷径:一、多写代码不断做个人项目;二、多看多学习别人的代码,看代码要比写代码难很多倍。