1. 程式人生 > >相容iOS 10 _升級xcode8_適配(二)

相容iOS 10 _升級xcode8_適配(二)

本文轉自:http://www.2cto.com/kf/201609/547169.html

一.工程改動

1. 工程配置

直接使用Xcode8Beta開啟工程後,你會發現你的provisonfile配置出了問題,這是由於在Xcode8中對工程配置有了一些小的改動。

在Xcode8工程配置的general選項卡中,使用更詳細signing選項替換了原有的team選項。

選中:project -> target -> general Xcode8之前team選項


Xcode8之前provisionfile選項

Xcode8之後變更為signing選項


signing選項展開

2. swift版本

假如你Xcode7的工程中使用了swift,那麼你使用Xcode8一開啟工程就會出現下面的選項,選擇convert:

選convert後,會讓你選擇swift的版本。  
如果你選擇了3.0版本的swift選項,那等待convert結束後,一般依然有一部分需要你做手動適配。  
假如你暫時不想花費時間做swift版本的適配,你可以選擇swift2.3版本,convert並不會轉換任何內容,你的專案也可以像以往在Xcode7中那樣正常執行。
此時我們選擇swift2.3:

選擇swift版本後,選擇你的工程target:

稍等片刻:

選擇update,結束收工:

二、應用適配

1. 許可權配置

隨著人們對隱私保護的注重,似乎蘋果的每一代產品都有相應的體現——更為嚴格的裝置和資料訪問許可權控制。  
在iOS10中,如果你的App想要訪問使用者的相機、相簿、麥克風、通訊錄等等許可權,都需要進行相關的配置,不然會直接crash。

你需要在info.plist中新增你App需要的一些裝置許可權。

首先找到info,可以直接在這裡新增鍵值對:

也可以找到info.plist檔案,然後使用SourceCode方式開啟:


一些常用的許可權配置選項:

```
// 相機
NSCameraUsageDescription
App需要您的同意,才能訪問相簿

// 相簿
NSPhotoLibraryUsageDescription
App需要您的同意,才能訪問相機

// 麥克風:
NSMicrophoneUsageDescription
App需要您的同意,才能訪問麥克風

// 通訊錄
NSContactsUsageDescription
App需要您的同意,才能訪問通訊錄
```

其它許可權配置選項:

```
// 位置
NSLocationUsageDescription 
App需要您的同意,才能訪問位置 

// 在使用期間訪問位置
NSLocationWhenInUseUsageDescription 
App需要您的同意,才能在使用期間訪問位置 

// 始終訪問位置
NSLocationAlwaysUsageDescription 
App需要您的同意,才能始終訪問位置 

// 日曆
NSCalendarsUsageDescription 
App需要您的同意,才能訪問日曆 

// 提醒事項
NSRemindersUsageDescription 
App需要您的同意,才能訪問提醒事項 

// 運動與健身
NSMotionUsageDescription
App需要您的同意,才能訪問運動與健身 

// 健康更新
NSHealthUpdateUsageDescription 
App需要您的同意,才能訪問健康更新  

// 健康分享
NSHealthShareUsageDescription 
App需要您的同意,才能訪問健康分享 

// 藍芽
NSBluetoothPeripheralUsageDescription 
App需要您的同意,才能訪問藍芽 

// 媒體資料庫
NSAppleMusicUsageDescription 
App需要您的同意,才能訪問媒體資料庫
```

2. 字型改變

iOS10的字型發生了變化,這導致一些文字在原有的寬高約束下可能會出現顯示不完整或者留白的情況,需要逐一檢查。