0%

反馈请联系hertz@hertzwang.com,谢谢

前言:

苹果审核变严之时,“糖护士”发布3.7.7版本时多次被拒,本文主要记录问题及解决识方案。

总结

  1. 苹果终结了prefs:私有方法的使用;
  2. Info.plist中准确描述授权的用途,不能含糊描述了,不要请求用不到的授权;
  3. 应用截图要符合实际;
  4. App IDs Identifiers中不要开启用不到的功能。

2018年9月21日

2.5.1:由于使用了苹果私有方法prefs:root=被拒,项目中删除prefs:root=相关代码。

5.1.1:有个图片附件,是说请求授权描述不够清晰,如“点击允许使用相机”,应该写为“允许后可使用扫一扫功能”,需要明确告知用户,更新Info.plist文件中的描述。

阅读全文 »

反馈请联系hertz@hertzwang.com,谢谢

参考:XCode9插件安装,XCode9.2插件安装,XCode8和XCode9的Alcatraz安装

手动操作

  1. 删除旧版 Alcatraz

     $ rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin
     $ rm -rf ~/Library/Application\ Support/Alcatraz/
     
    
  2. 安装最新版 Alcatraz (需要科学上网)

     $ curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
     
    
  3. 安装 update_xcode_plugins (请检镜像)

     $ sudo gem install -n /usr/local/bin update_xcode_plugins
     
    
    • 运行结束后执行下 $ update_xcode_plugins,此时会检查出本地的插件
    • 按照提示操作 Run update_xcode_plugins --unsign to fix this,执行后忽略提示
阅读全文 »

反馈请联系hertz@hertzwang.com,谢谢

直接使用 UIImagePickerController 打开照片

版本
需要权限
重新安装授权提示
Privacy - Photo Library Usage Description
iOS 8.4
iOS 9.3
iOS 10.3.1
iOS 11.4
iOS 12.0
阅读全文 »

反馈请联系hertz@hertzwang.com,谢谢

本文参考

iOS绘图技术(一、简单介绍和绘制视图)

iOS绘图框架CoreGraphics分析

简要说明

  • iOS 在运行循环中会整合所有的绘图请求,并一次性将它们绘制出来
  • 不能在子线程中绘制,也不能进行复杂操作,否则会造成主线程卡顿
  • 调用 UIView 的 drawRect: / draw(_:) 方法进行绘制
  • setNeedsDisplay 该方法标记为整个视图重新绘制,并且会在下一次绘制周期中重新绘制,自动调用 drawRect: / draw(_:)方法
  • setNeedsDisplayInRect: 该方法标记为视图部分区域重新绘制,周期同上。从绘制带来的开销角度,不推荐整个视图的重新绘制。

UIKit部分

UIKit是高级的图形接口,它的 API 都是基于 Objective-C的。它能够访问绘图、动画、字体、图片等内容。

阅读全文 »

前言:

方便icon出图,采用 Python 交付自动生成。

参考文章[Python]改变图片的分辨率大小

反馈请联系hertz@hertzwang.com,谢谢

依赖

  1. python 环境
  2. python 图像处理库 pillow 支持

python脚本

#coding=utf-8
import os  # 打开文件时需要
from PIL import Image # 图片处理

# 设置原图路径
icon_path = './icon.png'
# 生成像素列表
pixel_array = [480, 240, 180, 171, 120, 167, 152, 144, 114, 108, 87, 80, 76, 72, 60, 58, 40, 28]

# 校验原图是否为 512 x 512 px
def check_icon():
    if os.path.exists(icon_path) == False:
        os.system('操作失败:未找到原图片')
    else:
        print('校验原图像素...')
        im = Image.open(icon_path)
        width = im.size[0]
        height = im.size[1]
        if (width == 512 and height == 512):
            out_image()
        else:
            print('操作失败:原图需要512x512像素')

# 输出不同像素
def out_image():
    print('生成中...')
    im = Image.open(icon_path)
    for pixel in pixel_array:
        w_new = pixel
        h_new = pixel
        out = im.resize((w_new, h_new), Image.ANTIALIAS)
        new_path = './icon%sx%s.png' % (w_new, h_new)
        out.save(new_path)
    print('完成')
    os.system('open .')

def main():
    check_icon()


main()
阅读全文 »

反馈请联系hertz@hertzwang.com,谢谢

前提:有一个非位于大陆的云主机

示例环境:Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-1045-aws x86_64)

安装 Shadowsocks

Ubuntu下安装SS比较简单,执行以下命令即可:

  1. 更新软件包: $ sudo apt-get update
  2. 安装 python-pip 运行 环境:$ sudo apt-get install python3-pip
  3. 安装 shadowsocks 服务端: $ sudo pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip

配置信息

开放端口:$ sudo ufw allow 8389

执行 sudo vi /etc/shadowsocks.json,并输入以下信息:

{
    "server":"0.0.0.0",
    "local_address": "127.0.0.1",
    "local_port":1081,
    "timeout":300,
    "method":"aes-256-gcm",
    "port_password":{
        "8380":"Ss@8380",
        "8381":"Ss@8381",
        "8382":"Ss@8382",
        "8383":"Ss@8383",
        "8384":"Ss@8384",
        "8385":"Ss@8385"
    }
}

启动与停止

$ sudo ssserver -c /etc/shadowsocks.json -d start
$ sudo ssserver -c /etc/shadowsocks.json -d stop

ping IP Request timeout

AWS 安全组编辑入站规则,添加“所有流量”