在mac系统下 复制左部生成的bean文件的文本 到idea中会变成65279开头 在idea的开发环境下 会造成报错
Activity
debuggerx01 commentedon May 19, 2018
感谢PR!由于我的日常开发环境是Linux,win和mac版本都是打包后看能运行就没再管了,确实没发现这个相当烦人的问题……
我也google了一下这个问题,然后发现了这样一条qt的bug记录:
https://bugreports.qt.io/browse/QTBUG-61562
看来这个问题确实是mac所独有的,通过代码方式似乎无法避免。你用增加按钮并直接操作系统剪切板的方式确实能够回避问题,只是我觉得稍微有点不爽,因为不想单独为mac版本增加交互去提醒使用者不要直接复制文本框里的内容,而应该点击复制按钮来避免bom。
所以我试着降低了mac版依赖pyqt库的版本,因为根据上面记录里所说,这个问题应该是5.9版本之后才出现的,5.8版本正常——但是我多次尝试之后发现pyqt最后一个正常的版本是5.7.1,之后的5.8版本也是有问题的,估计是pyqt和qt版本号上的差异。我会基于这个正常的pyqt版本再打个包,来确保文本框直接复制也能够正常使用,如果可以的话麻烦你下载试试看是不是还有什么问题。
当然那个复制按钮还是保留,我觉得即使文本框没问题,多一个按钮直接复制简化操作也是很不错的~
CaiJingLong commentedon May 29, 2018
我下载了你
https://github.com/debuggerx01/JSONFormat4Flutter/releases/tag/0.4
中的mac版本打包文件
因为没有扩展名,所以我这里直接双击无法打开直接打开这个文件
我尝试修改扩展名为mac常规的 .app后缀 或 .dmg后缀均无法打开
后来考虑到可能是Unix exec,修改权限为sudo chmod 777 Formater_mac ,然后果然可以双击打开了
我觉得可能需要一个使用说明来帮助使用者
当然,最新的0.4版本中没有发现复制后的bom问题
感谢提供开源工具
@debuggerx01
debuggerx01 commentedon May 29, 2018
@CaiJingLong 我在主页README里加了运行方式说明,最简单的 sudo chmod u+x Formater_mac && ./Formater_mac 就可以了,是不是不够明显?
因为我是直接用pyinstaller打包的,虽然它会生成一个无后缀二进制文件和一个后缀名app的文件(夹?),比如我发布的0.1release里就有Formater4Flutter_mac.app.zip这个下载项。但是不知道为什么我测试下来只要把这个app后缀的复制到其他mac运行就会提示签名损坏,而打包的那台机子却可以直接运行……实在不是很明白mac里各种乱七八糟的限制。。如果你知道该怎么解决打包运行问题的话请告诉我,能方便别人使用那是最好的了
CaiJingLong commentedon May 30, 2018
@debuggerx01
mac中运行.app文件的话需要用户的同意,并且会显示签名信息,如同ios的app打包一个概念,只是使用的打包方式是mac app,理论上使用ios的开发者身份也可以同时申请mac的app签名密钥
你的app签名如果没有经过苹果审核,则签名信息无法通过安全校验,需要在如截图所示的位置开启安全性,才能使用
个人觉得还是二进制文件使用起来方便,毕竟受众是程序员,应该可以理解

debuggerx01 commentedon May 30, 2018
@CaiJingLong 我也稍微搜了下,好像签名需要开发者账号的?我只是偶尔写点ios的demo,只有普通个人账号,看来也搞不来了哈~