總結適配IOS10開發需要注意的問題

2022-10-01 11:54:11 字數 2755 閱讀 4122

就在前不久,蘋果剛剛對外正式程式設計客棧發布了新的作業系統ios10。悲劇的是就在發布新系統的當天公司就急著要發布乙個新版本,問題來了。。。誰知道app在ios10上會遇到什麼鬼情況!最怕的就是閃退。。。於是在上線前做了很多關於ios10的適配工作,其中也踩了很多坑。所以在這裡記錄總結一下。

1、自動管理證書

首先要說的就是xcode8。開啟xcode8最明顯的就是targets-->general下的自動管理證書模組。以前對於新手來說無論是開發還是打包都必須要被蘋果的開發簽名系統虐上幾遍才能真正明白它的原理和規程。現在貌似直接勾上「automatically manage signing」,xcode8一切都幫我們做好了。不得不說確實很方便!

不過認真想想,這個「automatically manage signing」按鈕無非就是自動幫我們在開發者中心建立appid、cetificaiton、profire pr程式設計客棧ovision等等證書檔案並且自動關聯上。但是如果我們證書管理不規範,很有可能出現revoke證書的情況。這是一直以來很頭疼的事情。所以我還是推崇開發者自己手動建立和管理證書。呵呵,這個自動管理證書的按鈕我們選擇不勾上。

2、雜亂無章的日誌輸出

xcode8啟動後一連串雜亂無章的日誌輸出,第一反應就是這是什麼鬼!

在網上查了一下,原來這個日誌的輸出是可以關閉的。關閉路徑:edit scheme-->run-->arguments-->enviroment variables ,新增乙個配置選項就好了 「os_activity_mode = disable」。

3、推送增加 entitlements 檔案簽名

xcode8增加了一項很重要的功能:為推送增加了entitlements 檔案簽名。所以,如果你的應用是支援推送的,那一定要記得開啟這個entitlements檔案簽名的開關!否則app在啟動註冊推送服務的時候就報簽名錯誤了,push訊息也就不可能接收的到。

下圖的開關記得開啟!

另外,蘋果對推送的框架和api也做了重大的調整,需要開發者對ios10+做相應的適配,後面會詳細介紹。

4、系統許可權設定

ios10對系統權程式設計客棧限的使用做了更加嚴格的控制。

app想要使用系統的某個許可權,必須要在專案設定info.plist檔案中設定相應的許可權說明,否則在iovekrzalrs10上會出現崩潰。

事實上,如果你的應用使用了系統某個許可權,但是沒有設定相應的許可權說明,那麼你的應用在上傳到itunes connect後會馬上被changed to invalid binary。

因為這個坑我們第一天就踩了:用xcode 8打包上傳app,本地驗證和ipa上傳都正常,但是上傳成功後,包馬上被changed

to invalid binary,itunes connect後台的構建版本也一直出不來。一看反饋郵件,原因就是使用了某個系統許可權但是沒有新增相應許可權的說明!

相應的系統許可權說明如下:

麥克風許可權---> privacy - microphone usage description :是否允許此app使用你的麥克風?

相機許可權---> privacy - camera usage description :是否允許此app使用你的相機?

相簿許可權---> privacy - photo library usage description :是否允許此app訪問你的**資料庫?

通訊錄許可權---> privacy - contacts usage description :是否允許此app訪問你的通訊錄?

藍芽許可權---> privacy - bluetooth peripheral usage description :是否許允此app使用藍芽?

語音轉文字許可權---> privacy - speech recognition usage description :是否允許此app使用語音識別?

日曆許可權---> privacy - calendars usage description :是否允許此app使用日曆?

定位許可權---> privacy - location when in use usage description :我們需要通過您的地理位置資訊獲取您周邊的相關資料

定位許可權---> privacy - location always usage description :我們需要通過您的地理位置資訊獲取

5、字型變大,原來的一些控制項出現字型顯示不全

ios10下的字型比原來的字型更大。

以前剛剛好顯示的下的文字在ios10上竟然顯示不全了,因為ios10的中文字型比原先的字型要大,目前的解決方法就是把原來定寬且剛好顯示完全的控制項重新調整一遍:要麼把寬度加寬要麼內容自適應大小。

6、ios10跳轉到系統設定的相應方法已經禁止

在ios10以前,我們可以通過以下方法跳轉到設定相應的頁面去:

//跳轉到設定的 wifi 頁面

[[uiapplication sharedapplication] openurl:[nsurl urlwithstring:@"prefs:root=wifi"]];

另外:ios6和ios7需要設定url schemes:在url types中新增乙個新項(prefs)。

ios8和ios9則不需要設定這個。

ios已經禁止,所以ios10的系統可以去除這部分業務邏輯了。

7、xcode**注釋不能用

這個是因為蘋果解決xcode ghost,把外掛程式遮蔽了。

解決方法

開啟終端,命令執行:

sudo /usr/libexec/xpccachectl

然後必須重啟電腦後生效

本文標題: 總結適配ios10開發需要注意的問題

本文位址:

iOS10 適配問題

在ios10中,如何使用相機,不申請許可權的話,就會閃退 以下是相關許可權的宣告,在 info 檔案中新增 nscontactsusagedescription 通訊錄 nsmicrophoneusagedescription 麥克風 nsphotolibraryusagedescription 相...

iOS 9開發(適配)中需要注意的事項總結

size class 和 presentation controller 1.xcode 7 免證書真機除錯。教程 2.如果沒有請求後台定位的許可權,也是可以在後台定位的,不過會帶藍條。3.uialertview過期。用uialertcontroller 可以代替其功能。4.tableview重新整...

關於iOS10的適配

每一次的ios公升級,都伴隨著各種坑的出現,今年ios10也不例外 本著一定要緊隨最新科技的開發態度,最近將手機公升級到了ios10,xcode公升級到了8.0 但是緊隨而來的就是各種崩潰,各種坑,現列舉如下 一 使用者隱私權限的訪問 查過資料後發現原因 專案中訪問了隱私資料,比如 相機,相簿,聯絡...