看板 iOS 關於我們 聯絡資訊
剛好有在做 iOS App 的開發 可以稍微幫大家解釋清楚一點 首先如果還是用 iOS 6 或是之前的 iOS 的使用者 目前還不用太過擔心明年 2 月 1 號之後真的會沒有辦法用新的或是更新的 App 目前 Apple 官方的公告內容如下 無論是一般使用者或是開發者都只看到同一份公告 https://developer.apple.com/news/index.php?id=12172013a "Starting February 1, new apps and app updates submitted to the App Store must be built with the latest version of Xcode 5 and must be optimized for iOS 7. Learn more about preparing your apps by reviewing the iOS Human Interface Guidelines." 簡單翻譯 "從 2 月 1 號起,遞交到 App Store 的新 App 以及 App 的升級版本必須使用 最新版的 Xcode 5 建置而且需針對 iOS 7 做最佳化。 回顧 iOS Human Interface Guidelines 以學習如何準備您的 App" 就這樣簡單的內容 其中明確的只有一定要使用 Xcode 5 來建置要上傳到 App Store 的 App 但對於 "針對 iOS 7 做最佳化" 的部分 Apple 官方目前也沒有什麼明確的標準 我 google "optimized for iOS 7" 看了 10 篇左右今天新的國外網誌和報導 也沒有看到有人確切知道這是什麼意思 甚至在 iOS Developer Forum 上也有開發者對於這項公告提問 也沒有進一步細節 總而言之 目前很明確的只有一定要使用 Xcode 5 的新版本建置 App 而已 而什麼叫做必須針對 iOS 7 最佳化還不清楚 應該也不需要太擔心 接下來跟大家分享一下有沒有使用 Xcode 5 的差別 Xcode 是一套 Apple 出的 IDE (Integrated Development Environment) 可以用來建置 Mac 或是 iOS 的程式 其中包含了 iOS 的 SDK 裡面有很多官方準備好的函式和功能 在 Xcode 4 的最後板本中只有支援到 iOS 6 的 SDK 而新版 iOS 7 的 SDK 則是只有在 Xcode 5 中才支援 大家都知道 iOS 7 的很大改變之一就是 UI 也就是使用者介面 而這些新的 UI 元素就包含在新版的 iOS 7 SDK 當中 所以 在目前 App Store 上的 App 大概有兩種類型 1. 使用 Xcode 5 建置 使用 iOS 7 的新 UI 2. 使用 Xcode 4 建置 使用 iOS 6 以前的 UI 以上兩種 App 都可以在 iOS 6 (如果支援) 或是 iOS 7 執行 但是在 UI 上會有些許不同的呈現如下: 運作裝置 iOS 版本 iOS 6 iOS 7 iOS 6 SDK iOS 6 UI iOS 6 UI iOS 7 SDK iOS 6 UI iOS 7 UI 而至於什麼版本以上的 iOS 裝置可以運作則是透過 Target 參數設定 跟什麼版本的 iOS SDK 沒有直接關係 以目前我負責的 App 來說 我使用 Xcode 5 + iOS 7 SDK 而支援的平台則是設定 iOS 5 以上 因此建置出來的 App 可以在 iOS 5 以上的裝置使用 而同一個 App 跑在 iOS 5/6 上會使用以前的 UI 在 iOS 7 則會使用新的 UI 那為什麼現在會強制要求使用 Xcode 5 呢? 因為就我所知有一些開發者會為了一些因素繼續使用 Xcode 4 來開發 即使是這陣子遞交到 App Store 的更新依然如此 會造成這樣的原因 其中之一就是 UI 的改變太大 有可能這個 App 前陣子才基於 iOS 6 的 UI 元素做設計 根據了 iOS 6 的按鈕、表格呈現方式、元件大小等等方面做過客製化 也就是做了風格跟 iOS 內建 UI 很像的特製 UI 元件 所以忽然又要重新更改一次既費時又費工 發現繼續使用 Xcode 4 就可以在 iOS 5~7 都用同一種呈現方式 所以就繼續這麼做了 目前 Apple 這麼努力的推動 iOS 7 的新 UI 風格 這種方式當然就是這次公告限制的目標之一 另外客製化的元件如果在 iOS 7 上太像 iOS 6 的風格 我相信應該也會是限制的目標 總結來說 Apple 不會也沒有要求開發者的新 App 只能支援 iOS 7 但是要使用最新的 Xcode 5 和 iOS 7 SDK 也沒有說不能客製化 UI 但是要就要針對 iOS 6 和 iOS 7 分別配合內建 UI 風格設計 BUT BUT BUT BUT BUT BUT BUT BUT... 因為 iOS 7 和 iOS 6 以前的 API 也已經有很多不同 有很多的新架構以及新功能 甚至在 UI 上很多座標或是大小都不同 要同時支援 iOS 6 以前的版本以及 iOS 7 對開發者來是是很辛苦的事 很多的開發者會乾脆針對 iOS 7 的 UI 重新設計 同時也使用了只有在 iOS 7 才能使用的新 API 和新功能 這種情況下 開發者就會讓新的 App 只支援 iOS 7 像是 Dropbox 就是其中一個例子 在這種情況 因為一個 App 的版本歷史裡有支援 iOS 6 以前以及只支援 iOS 7 所以 App Store 在前陣子引入了新的功能 讓使用者可以下載最後支援的版本 以前的話 會直接在 App Store 上找不到不支援這個裝置的 App 舉例來說 一個 App 如果在 1.0 ~ 1.9 版支援 iOS 6 以上 而 2.0 的最新版只支援 iOS 7 以上 那麼一台還在用 iOS 6 的裝置就可以更新或是新安裝 1.9 版本 而不是找不到 App 特別注意的是 iOS 的策略一向都是支援某個版本"以上" 所以舊 App 可以跑在新的 iOS 上而不用更新 不會有 iOS 6 可以跑而 iOS 7 不行的狀況 當然因為某些因素在新版本不相容會有問題的例外 最後再補充一點 現在在 App Store 上面可以看到 App 會特別標明 "optimized for iPhone 5" 我查了一下 看起來判斷的標準就是支不支援 4 吋的螢幕 也就是上下不會有黑邊 如果以此類推 "optimized for iOS 7"也有可能代表必須要包含 iOS 7 要求的新圖片 可能很多人並不知道在 iOS 7 中多了一些不同尺寸的圖片 像是 iPad 的 App 開啟圖片 或是 App 的 Icon 這些都和以前 iOS 6 的有些許的不同 詳細資訊 http://ivomynttinen.com/blog/the-ios-7-design-cheat-sheet/ 目前的話 在上傳到 App Store 的時候只會顯示警告訊息提醒缺少了一些圖片 未來可能直接在發現缺少這些新圖片的時候就顯示錯誤不讓你繼續下一步了 再補充一點 要分辨現在 App 是用 Xcode 4 或 Xcode 5 建置的話 最簡單的方式應該是找個可以打字的地方讓鍵盤出現 如果是舊的鍵盤的話就是使用 Xcode 4 建置的 以上是我在開發 iOS App 的一些心得和整理 因為每天都會來 iPhone 板逛逛 想說這裡有不少 iOS 使用者 希望一些整理過的資訊可以讓大家更清楚 不需要有太多的擔心 有任何問題歡迎指教或是討論 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.86.169.108
j900414:推專業 12/19 03:17
※ 編輯: timestop 來自: 219.86.169.108 (12/19 03:22)
eric820813:推 12/19 03:54
hsin1207:推詳細解釋! 12/19 04:05
joulin:有神快拜!超專業推! 12/19 04:11
joulin:借版面問一個問題,到底要怎麼下載最高可支援的版本@@ 12/19 04:12
joulin:我在手機上的Appstore進去找到dropbox可是找不到舊版本 12/19 04:13
SeraphimX:回樓上,直接點下載就會問是不是下載最後支援版本。 12/19 07:16
smileoff:不!蘋果政策似乎又改了 12/19 08:03
smileoff:我拿沒下載過Dropbox的中國區apple ID去試 12/19 08:04
smileoff:即使是支援iOS6的app舊版AppStore也不讓我下載 12/19 08:05
smileoff:iBooks 尋找我的iPhone等也一樣不能載支援iOS6舊版 12/19 08:07
smileoff:我目前還在使用4S(iOS6.1.3) 12/19 08:08
usoko:簡單來說API修改權在蘋果手中 開發者沒得選擇 12/19 08:44
usoko:下一版他突然把某個API deprecate掉你就得被迫使用新的 12/19 08:44
usoko:不然再過幾版你的app一開就crash...這是iOS強制升級的手段 12/19 08:45
usoko:而使用者則是因為app越來越少支援舊版本的OS不得不升級 12/19 08:46
Decill:其實最後還是看開發者啦 同時維護兩套UI其實很辛苦 12/19 08:48
usoko:android開發者表示: 12/19 08:53
usoko:開發者看的是使用者 iOS5 6越多人用 開發者就一定要開發 12/19 08:54
usoko:蘋果不是要求使用者強制升級 而是從開發者下手 12/19 08:54
skhan:不得不昇級?那是逼人換手機嗎? 12/19 09:12
lwecloud:Apple的相容性已經很好了,寫安卓真是被搞到龜覽趴火 12/19 09:21
pig:有一堆 app store 推出就有但是沒更新的軟體現在都還能跑 12/19 09:39
joulin:沒有!QQ不會問我是否下載最後相容闆本,他只顯示 12/19 10:07
joulin:此應用程式需要iOS7以上才能安裝,請更新升級程式! 12/19 10:09
joulin:下面還寫著"好"讓我按,我一度以為按下好,就會升級, 12/19 10:09
timestop:我試了一下 看起來已經購買與否(免費下載過算已購買) 12/19 10:09
joulin:嚇死我@@ 12/19 10:10
timestop:狀況會不一樣 購買過的會讓你下載最後相容版本 12/19 10:10
timestop:沒有購買過的就會跳出要求升級 iOS 7 的訊息 不能購買 12/19 10:11
kenk0818:太專業了!感謝詳解~ 12/19 10:28
chaomanX:受教了 12/19 10:33
lordmi:沒有購買過就不會有下載舊版本選項,發佈時就這規則了 12/19 10:34
comodo:所以原po是寫apple app賺錢的大戶....XD 12/19 10:45
joulin:所以沒購買過,不升級注定不能用?QQ 12/19 11:58
Ithildin:先用電腦購買不就變成"購買過"了嗎? 12/19 12:20
Ithildin:至少我這樣用iPhone4下載到舊版彈音樂那個 還全功能... 12/19 12:21
hsin1207:樓上版主正解,我也都這樣做 12/19 12:27
abian:長知識推 12/19 12:48
rissis873:長知識了 12/19 12:51
joulin:挖!!! 感謝I大 原來還有這招 馬上來用電腦上去購買 12/19 13:18
joiedevivre:學到新招 受教了謝謝 12/19 13:30
laughmaker:專業推!! 12/19 14:12
gv8899:看不懂 只能推專業了 12/19 14:16
mars1396:推用心 12/19 14:54
ll1:嗯恩,原來如此 12/19 14:58
saedn:好專業!! 推推!! 開發者辛苦了!! 12/19 15:35
holybless:推最佳化 12/19 16:08
danieltu:專業! 12/19 20:30
htc001:太專業了吧!感謝解釋! 12/19 22:26
tzangyoung:只能推了 12/20 01:19
hanhsiangmax:讚讚 12/20 15:49