iOS开发月报#10|201904
這里記錄過去一個(gè)月,我看到的值得分享的內(nèi)容,包含但不限于iOS知識(shí),每個(gè)月的最后一天發(fā)布。 歡迎推薦內(nèi)容,可以前往zhangferry/iOSMonthlyReport提交issue。
Tips
關(guān)于分享中的一些問題
微博
- 多媒體內(nèi)容的縮略圖,即thumbnialData的大小應(yīng)小于32K。否則會(huì)導(dǎo)致分享失敗
- 微博分享的AppStore下載鏈接無法打開,這是因?yàn)槲⒉┢帘瘟酥赶駻ppStore的鏈接。一個(gè)可行的做法的將微博的下載鏈接增加一個(gè)引導(dǎo)頁(yè),提醒用戶通過Safari打開。
微信
- 多媒體縮略圖不能超過64K。
- 微信分享從6.7.2之后無法獲知是否真的分享成功。這個(gè)是官方的調(diào)整,旨在減少“強(qiáng)制分享至不同群”等濫用分享能力。
關(guān)于facebook分享的采坑可以查看這篇文章,基本也都是我遇到的問題。iOS Facebook 分享中的坑
相同內(nèi)容分享兩次之后再分享將失敗。
SWIFT_VERSION '5.0' is unsupported, supported versions are: 3.0, 4.0, 4.2. (in target 'SwiftyJSON’)
這個(gè)問題是多人寫作開發(fā)引起的,有一個(gè)同事將SwiftJSON的版本升級(jí)至4.3.0,使其支持Swift5.0,但是Swift5.0跟Swift4.0+不兼容,導(dǎo)致出現(xiàn)上面的錯(cuò)誤提示。
修復(fù)方式,手動(dòng)指定SwiftJSON版本,使其低于或者等于4.2.0。
pod 'SwiftyJSON', '~> 4.2.0' 復(fù)制代碼Encountered an unknown error (Unable to find a specification for FrameworkA depended upon by FrameworkB
FrameworkA和FrameworkB都是私有的Cocoapods庫(kù),在制作FrameworkA時(shí)引用了FrameworkB,如果執(zhí)行pod spec lint就會(huì)出現(xiàn)如上的提示,到時(shí)lint無法通過。
這是因?yàn)閘int在對(duì)引用庫(kù)驗(yàn)證時(shí),默認(rèn)只驗(yàn)證官網(wǎng)的倉(cāng)庫(kù),我們需要手動(dòng)添加驗(yàn)證源才能通過,方法是:
pod spec lint --sources=git@bitbucket.org:company/privateRepo.git,https://github.com/CocoaPods/Specs --allow-warnings 復(fù)制代碼Tabbar的初始化會(huì)立即調(diào)用viewDidLoad方法
正常當(dāng)我們初始一個(gè)UIViewController的時(shí)候,總是先執(zhí)行init方法,執(zhí)行完之后才會(huì)調(diào)用viewDidLoad方法。但是如果是UITabbarViewController的初始化則不同,它會(huì)在執(zhí)行init方法的時(shí)候立即調(diào)用viewDidLoad。
來自Stack Overflow的解釋:
UITabBarControllers call loadView inside [super init] method, which causes the call to viewDidLoad. So the viewDidLoad method will be called before init has finished its job.If you have some thing to setup in viewDidLoad you should perhaps do it inside init method after the call to [super init]. 復(fù)制代碼AppleScript打印換行
當(dāng)我使用AppleScript編輯一段腳本時(shí),有一個(gè)需求是打印一段換行的文本,試了很多方案,包括\n,\r, ASCII碼等都不行,腳本執(zhí)行時(shí)會(huì)忽略\符合自動(dòng)換行,分開執(zhí)行輸入內(nèi)容。
最后在不斷嘗試中找到了一種方案,直接敲出換行,如下,在變量_input后拼接一個(gè)換行符:
tell note1 to append text "[*]" & _input & " " 復(fù)制代碼由于第三方SDK使用了用于定位的功能,導(dǎo)致收到蘋果的隱私警告郵件
后來定位的到的原因是Facebook相關(guān)的幾個(gè)庫(kù)均使用了CoreLocation,也就是說Facebook有偷偷使用用戶地理位置權(quán)限的嫌疑。當(dāng)然聯(lián)系他們提供不帶此功能的SDK也不顯示,后來在react的issuse中也發(fā)現(xiàn)了對(duì)于此問題的討論。#20879解決方案如下,即增加對(duì)應(yīng)的隱私條款選項(xiàng):
違反Guideline2.3.1被打回
在一次小版本提交時(shí),遇到了這個(gè)違反Guideline2.3.1被打回的問題,也是第一次遇到。原因描述是含有模糊代碼,選擇器錯(cuò)誤或者誤導(dǎo)審核的功能。實(shí)際排查中我們并未猜想到哪里可能導(dǎo)致這些問題。后來通過郵件跟審核人員溝通,得到如下回復(fù):
問題又好了?猜想可能是蘋果審核的問題,他們也是會(huì)犯錯(cuò)誤的。后來在網(wǎng)上查過這種問題的處理情況,從資料時(shí)間來看,可以確定這個(gè)是最近一年才出現(xiàn)過的問題。處理方法是,首先是應(yīng)該跟審核人員聯(lián)系,讓他們告知是哪里的問題;然后再根據(jù)情況進(jìn)行修改。
推薦閱讀
作為面試官,哪類 iOS 開發(fā)更容易被你青睞?
來自老司機(jī)團(tuán)隊(duì)的文章,正在找工作的你肯定能從中有所收獲。
再貼一個(gè)我司的招聘信息,有意愿的小伙伴趕緊簡(jiǎn)歷投過來。
用戶端智能的應(yīng)用實(shí)踐
bang寫的關(guān)于應(yīng)用功能優(yōu)化的幾個(gè)點(diǎn),根據(jù)用戶的特征推薦金額,根據(jù)用戶使用習(xí)慣調(diào)整push的時(shí)間,有些方案不一定能夠?yàn)槲覀兯玫墙鉀Q問題的思路還是挺不錯(cuò)的。
談Linux,Windows,和Mac
王垠的博客其實(shí)已經(jīng)被刪除了,這個(gè)是網(wǎng)絡(luò)留存的快照文件。牛B的人總是能留下牛B的話,這是王垠關(guān)于Linux、Windows和Mac的看法。
Swift語(yǔ)言的設(shè)計(jì)錯(cuò)誤
let shoppingList = ["Eggs", "Milk"] //這么寫應(yīng)不應(yīng)該報(bào)錯(cuò)? shoppingList[0] = "Salad" 復(fù)制代碼關(guān)于以上問題的討論。當(dāng)前Swift是不允許對(duì)let生命的數(shù)字修改內(nèi)部元素的。在王垠看來這是一個(gè)低級(jí)的錯(cuò)誤,具體為什么這么定義“不對(duì)”,可以看文章討論。
音視頻
Github
iOS-Source-Probe
iOS源碼探求系列,是iOS相關(guān)源碼的分析合集。
AutoInch
優(yōu)雅的iPhone全尺寸/等比例精準(zhǔn)適配工具,可以通過設(shè)置一個(gè)屏幕的尺寸值,而自動(dòng)配置其他尺寸值。支持代碼和xib兩種方式。
SwiftTips
作者總結(jié)的Swift使用中的一些小技巧,和喵神的《100 個(gè) Swift 必備 tips》有異曲同工之妙。作為一名剛?cè)腴T的Swifter,這兩個(gè)資料都是非常推薦看一看的。
ZFPlayer
非常全面的一款iOS播放器,支持AVPlayer和ijkplayer兩種播放模塊。項(xiàng)目包含主流的視頻播放場(chǎng)景,抖音、微博短視頻等樣式。如果是對(duì)視頻功能有需求的小伙伴非常建議看一看。
轉(zhuǎn)載于:https://juejin.im/post/5cc7bfb6f265da039d3290e8
總結(jié)
以上是生活随笔為你收集整理的iOS开发月报#10|201904的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 081、Weave Scope 多主机监
- 下一篇: 修改Apache的默认站点目录的方法,需