Xcode 9 在 Jenkins 中使用 Xcode integration 插件打包失败的处理

问题概述

自己使用 Jenkins 来做 iOS 项目的持续集成,升级 Xcode 9 之后,编译完成之后打包会一直报如下所示的错误:

error: exportArchive: "APPNAME.app" requires a provisioning profile with the Push Notifications feature.
Error Domain=IDEProvisioningErrorDomain Code=9 ""APPNAME.app" requires a provisioning profile with the Push Notifications feature." UserInfo={NSLocalizedDescription="APPNAME.app" requires a provisioning profile with the Push Notifications feature., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}
** EXPORT FAILED **
Failed to build /Users/Tolecen/.jenkins/workspace/APPNAME/build/APPNAME_release.ipa
Build step 'Xcode' marked build as failure
Finished: FAILURE

因为 Xcode 9 默认不允许访问钥匙串的内容,必须要设置 allowProvisioningUpdates 才会允许,但是由于 Xcode integration 插件封闭,并不能对其进行修改加上这个属性,所以决定使用 Shell 脚本代替插件。

继续阅读

iOS Action Extension 使用文字识别 OCR

因为女票经常使用图片转文字的功能,有道笔记,扫描全能王什么的都是付费功能,识别率也就那么回事,就对市面上的文字识别API试用了一下,发现还是百度的准确度比较高,于是基于百度文字识别做了一个应用。

比较方便的是,使用了iOS的扩展,可以直接在相册里使用直接识别。比锤子的大爆炸步骤多一些。。不过也还算方便了。

继续阅读

我一直是一个反加班主义者

互联网圈子里,技术人员加班已是家常便饭,似乎每个老板对外吹自己的技术团队怎么怎么牛,都会少不了这么一句:他们每天晚上工作到很晚很晚,非常敬业,所以我们的团队真的是无与伦比。当每个公司都把加班当成一件荣耀的事以后,就是整个行业的悲哀了。先不说加班有什么卵用,从人的个体来说,这是一种反人类的行为。

继续阅读

聊聊 App Store 审核中的那些坑

对于iOS的开发者来说,想要顺利的上架 App Store,并不是把程序做出来没有bug就完事了,还要时时刻刻记着应对 App Store 各种奇葩的审核人员。下面,慢慢来梳理一下我曾经遇到过的那些坑,也为其他经验尚浅的童鞋们提供一些经验。下面说的大部分应该是 App Store 审核规则里说明过的一些条款,有几个是因为审核人员奇葩。

7D44733B-EC82-44D7-9EFE-D6D2B94FCD9C

继续阅读

三个在编程中最容易忽略的安全性措施

近日,由于很多应用基于非官方渠道下载的Xcode打包的APP,被嵌入了恶性代码,将很多软件包括多个知名软件推向了风口浪尖,在iOS上造成如此大范围影响的安全事件,还是极少见的。但是,事情已经发生,也许已经造成严重损失,也许还没有产生太恶劣的后果,不管哪种,总归要面对,要本着对用户负责的态度妥善解决。很多厂商应该已经在抓紧修复这个问题,但是有一些却还在说风凉话,比如网易云音乐。

继续阅读