天天看點

iOS9系列專題6——iOS9其他适配注意點

在ios9系統中,定位服務的做法基本沒有改變,對于前台的定位沒有影響,但app中如果需要背景定位,那麼還需要多做一些操作,例如:

通過上面簡單的配置直接運作的話,程式會崩潰掉,還需要在plist檔案中做一些配置,兩種方式:

方式一:直接在plist檔案中配置如下:

iOS9系列專題6——iOS9其他适配注意點

方式二:在項目中設定

iOS9系列專題6——iOS9其他适配注意點

打開background models選項,勾選其中的location updates。

我們知道,在xcode7後,開發者可以不用花99dollars去購買開發者賬号而可以在自己的iphone上進行測試。在安裝這些應用時,ios9系統不再向以前那樣,再安裝時提示一個信任的按鈕,而是做如下的提示:

iOS9系列專題6——iOS9其他适配注意點

在設定中,選擇描述檔案:

iOS9系列專題6——iOS9其他适配注意點

之後選擇開發者對應的appleid,選擇信任即可:

iOS9系列專題6——iOS9其他适配注意點

bitcode是app的一種中間形式,在ios9系列專題的前幾篇,有對其的簡單介紹,舉個例子,我們可以在送出app時送出app的bitcode形式,如此一來,apple會對我們的app進行二次優化,在使用者下載下傳時根據所需再進行編譯打包。在xocde7中,建立的項目是預設開啟bitcode的,如果我們用xcode7編譯送出應用,這裡有需要注意适配的地方。

如果要支援bitcode,需要保證所有的sdk都支援bitcode,如果要更新舊的sdk,隻需要在xcode7上開啟bitcode重新制作一遍即可。

如果不能使所有sdk都支援bitcode,可以在項目中關閉bitcode,在building setting中搜尋bitcode,将enable設定為no,如下:

iOS9系列專題6——iOS9其他适配注意點

在ios9中,apple引入了白名單這個概念,其好處是對app應用内安全進行了加強。在ios9的适配中,如果我們用到canopenurl這樣的方法,則需要配置白名單。

首先,我們建立一個測試工程,什麼都不用做,隻需要添加一個url scheme:

iOS9系列專題6——iOS9其他适配注意點

在另一個工程中,我們寫如下代碼:

在沒有配置白名單之前,列印如下:

iOS9系列專題6——iOS9其他适配注意點

可以看到,bool值傳回的是no。雖然這樣也可以跳轉相應的app,但是canopenurl這個方法相當于失效了,我們不能用它來判斷使用者到底裝沒裝這個app。

适配時,我們在plist檔案中添加如下鍵值:

iOS9系列專題6——iOS9其他适配注意點

這時再次運作程式,canopenurl的判斷就會準确了。

注意:白名單添加上限為50個。

ios9的另一變化是label的預設字型産生了變化,我們列印ios9中label的字型如下:

iOS9系列專題6——iOS9其他适配注意點

ios8中的label預設字型如下:

iOS9系列專題6——iOS9其他适配注意點

這兩種字型的最大差異是字間距不同,例如如下一段代碼:

這段代碼在ios9上是剛好可以正常顯示的,在ios8上則不行,如下:

ios9:

iOS9系列專題6——iOS9其他适配注意點

ios8:

iOS9系列專題6——iOS9其他适配注意點

适配注意點:

1、可以通過動态計算來擷取label的寬度,進行設定label的寬度

2、一個更簡單的方法是通過設定一個确定的字型,來進行适配