先奉上链接地址:iKiss (一款用于测试HTTP/HTTPS服务器接口的工具)
好久没更新简书内容了,排除个人松懈的因素之外(当然,这点我是不会轻易承认的😆),主要是公司最近一个月连续上马两个项目,除了让人无法拒绝又蛋疼不已需求和欲壑难填的产品人员经常挥斥方遒也是造成掉(延)血(期)伤(更)害(新)的罪魁.好了,不多牢骚,这次来分享一下在开发Mac OSX APP中的技术和非技术的体会,为了不耽误大家的宝贵时间,先列个题目大纲,然后各位挑重点就好了.
技术方面:
1. Mac OSX下的沙盒限制
2. AFNetworking的自签名HTTPS证书设置
3.NSPasteboard 系统剪切板的使用注意
非技术方面
1.获取AppIcon的常用途径
2.如何进行App 测试
3. 推广App的问题
技术正题:
1. Mac OSX 下的沙盒限制
Mac OSX的沙盒是从iOS中借鉴过来的,但又有所不同,而且,OSX下,一款应用是否启用沙盒是可选的,选择的唯一标准就是将来你的这个App是否需要上架Mac OSX App store , 在用Xcode打包上传时,会提示你进行选择,具体的操作入下图:
App Sandbox选择App Sandbox后,设置为ON,系统会在项目的工程目录中生成一个 项目名.entitlements文件
entitlements文件完成这个沙盒设置后,你的App访问的所有资源都将受到限制,这里与iOS不同的是,默认情况下iOS是不需要在这里设置网络权限的,但OSX下,如果你需要进网络访问(例如你试用AFN进行网络请求),请记得勾选网络设置:
网络请求的沙盒设置具体选client还是server要根据你的App功能来确定了,这个就不多说了.
如果你设置后依然无法正常访问网络,可能还需要在Info.plist设置一下ATS:
ATS设置当然,沙盒不仅仅限制网络通信,如果你要对本地文件系统进行访问,也需要在沙盒里进行设置,否则将无法进行访问对应的资源:
File Access2 . AFNetworking的自签名HTTPS证书
这个网络上讲的很多,就不啰嗦了,直接上代码:(注意点是要将服务器给的证书转为cer格式)
设置自签名的HTTPS证书通常自定义HTTPS签名证书时,服务器端往往会生成两个文件(server.crt,client.crt),要注意,客户端需使用的是服务器端的server.crt转换后的cer文件
3. NSPasteboard 系统剪切板使用注意
在iKiss的开发中,用到了将系统剪切板中的内容复制到对应的文本框中,这样可以节省用户输入麻烦操作,点一下粘贴按钮就完成了.
粘贴剪切板中的内容这里的注意点是,系统的剪切板中的内容可能是不同的数据类型(图片,文件,字符串等),因此在获取剪切板内容是,需要进行一下过滤,如果当前剪切板中的内容不是我们需要,那么就忽略,防止造成数据获取错误,苹果提供了常用的类型常量供我们进行判别时使用:
系统提供的选项简单示例代码如下:
实例代码非技术话题:
1. 获取AppIcon的常用途径
这里主要是针对个人开发来说(如果是公司团队,直接找UI就可以了),就我个人的情况说,比较推荐的是阿里图库iconfont,我个人的上架应用XCRegex 和 JProperty 以及现在的iKiss 基本都是从这里找到的(如果图片侵权还望作者告知).
iKiss还在测试阶段,后期也功能稳定也考虑上架Mac OSX App Store,现在是免费内测哦,希望大家多提问题.
另外,如果你精通PS或者熟悉Sketch,那自己动手定制也是非常不错的体验.
关于AppIcon方面基本都是八仙过海,挑喜欢的就好了.
2.如果进行App 测试
一个App的测试阶段还是比较重要的,但对于个人开发的作品,没有公司专业的测试团队支持怎么办?怎么办?怎么办?
一句话: 发动群众
让群众知道的途径: 1.朋友圈 2.技术群.3.平台发文(微博啊,简书啊以及其他你常去的平台或论坛)
因为App还没上架,所以你的提供测试链接可用HockeyApp生成.
3. 推广App的问题
普通来说,技术开发一定就宅或者内向,但从运营的角度看问题,技术人员还是有很大的短板的,关于这方面我也常常困惑,感觉在各个朋友圈或者技术群里推的话,跟生活中到处贴小广告差不多,我又比较爱惜羽翼,只好在自己的技术文章里打打广告,慢慢积累吧.
如果你有好的建议,请留言或评论,让更多有这方面帮助的朋友也可以看到~
网友评论
最近打算做mac应用,准备提交App Store, 所以刚开启了App Sandbox,用户选择的文件是可以访问的,但我存储这个文件路径,下次启动准备自动打开这个文件发现无法访问,不知道怎么办了。
还有一个问题今天我加了自启动,新增了一个helper工程,要提交商店这个也得开启沙箱吗?
2. 用户选择文件时,文件路径是可以访问的,下次启动,如果用户没选择,这时候是不能访问这个路径的.如果你需要获取用户访问过的文件,可以考虑在用户选择文件时,将文件复制一份保存到应用的sandbox中,这样你就可以访问了