跳到主要內容

發表文章

目前顯示的是有「Xcode」標籤的文章

Xcode 更新後 App 上傳送審過程可能出現的問題

隨著 Mac OS X 與 iOS 的不斷進化,Xcode 這套 IDE 也不斷地跟著演進。不過每次 Xcode 大改版時,都需要花一些時間去適應,甚至有些開發者是以讓新版與舊版共存的方式來渡過這段新舊交接的過渡期。 最近小弟將 Xcode 更新到 6.0.1(6A317) 版,在上傳之前 iOS App 的更新版時,遇到了憑證不符(Xcode 更新後被認為是在不同的 Mac 上開發,而需要舊的 Developer Profile 或者是重新製作憑證)與 PKZip 上傳問題。 底下記錄一下解決的方法: 1。解決需重新匯入 Developer Profile 的問題 --- 其實這個問題應該也是憑證不符所造成的,請參考第二項的說明。在 Xcode 中將您的 Developer Profile 匯出然後再匯入,這樣沒辦法解決問題。 2。解決憑證不符的問題 --- 請開啟 KeyChain (鑰匙圈存取),在其主選單下選擇 憑證輔助程式 > 從憑證授權要求憑證...,在出現視窗的 使用者電子郵件位址 欄位中填入您的電郵信箱,然後在 已將要求: 項下,選取存到磁碟,按繼續後,就可以產生 製作憑證要求檔。用瀏覽器登入到您的開發者帳號,進入 Certificates, Identifiers & Profiles 中,新增一份 Certificate,這時要將 製作憑證要求檔 上傳才能新產生一份 Certificate。將新產生的 Certificate 下載。關閉 Xcode 與 KeyChain。雙按該憑證檔,憑證就會安裝進 KeyChain 中供 Xcode 使用。 3。如果您還遇上 PKZip(App 壓縮包) 檔簽署問題以致無法上傳,出現 ditto: Couldn't read PKZip Signature Unable to extract archive 的訊息,則需要在 Xcode 中開啟 Target 的 Info.plist 檔,點選裡頭的任一項,然後選取選單 Editor 中的 Show raw keys & values 選項,接著將 LSRequiresIPhoneOS 項設定成 YES。設好後,重新打包 App 然後上傳即可。 每次新版 Xcode 出來都要適應一陣子,希望您沒有像小弟這樣,中招了…,有新版出,最好...

WWDC 2014 紀要 3 — Dev 開發工具方面的新玩意

本文所有的圖片,皆截自 Apple WWDC 2014 Keynote 視訊串流 庫克又回主場,一開始就強調開發者在 Apple 這邊可看到的市場有多大,App Store 現已有超過 1200 支 app 在其中,每週有超過 3 億位訪客進到 App Store 裡頭。這些訪客不是只有瀏覽,也會不斷地在下載,截至目前為止,累計的 app 下載次數已超過 750 億次。 App Store 的功能將會更加完善,並加入軟體套組購買、介紹影片還有免費的 TestFight Beta App Testing 的平台。App Store 的搜尋功能一向為人所詬病,希望在這一次更新後,會有比較好的表現,讓開發者的 app,更容易為目標使用者接觸到。 克雷大又上場了,這次幾乎完全是他老兄的秀。一開始他就開宗明義地指出,這次的 iOS 有推出多達 4000 個 API。哇咧!這,大家又有得消化了。每天看一個,也要…嗯…10 幾年。:P。 首先是 Extensibility,其概念是將現有 App 的沙盒(sandbox),藉由系統的支援,讓其他程式可以取用,讓 app 可提供服務給其他的 app 來使用。要做到這樣且要兼顧 iOS 的安全性,其實並不是那麼容易,這個需要系統層級的支援。下圖顯示 Extensibility 的概念。由此,app 可以用系統為中介將服務提供出來,而這種作法也讓通知中心的 Widgets 變成可行。 比方說在 photo app 中可取用其他程式所提供的濾鏡,編輯完後,會回到 photo app 中。 通知中心的 Widgets 模組。 在 Safari 瀏覽的網頁中調用翻譯軟體進行即時文字翻譯。 Extensibility 還包括了第三方鍵盤,這讓使用嘸蝦米輸入的小弟出現了不用再學習拼音輸入法的曙光。第三方鍵盤需要的權限,需要通過使用者授權才行,這也可以確保安全性,至少是使用者同意過的。但您可以想想看,為何一個輸入法需要您允許它使用網路呢? 好用的 TouchID 終於有 API 開放了,這讓開發者為之興奮,因為以往需要使用者輸入帳密的情況,現在都可以用一個手指與 Home 鍵接觸的動作來完成。簡單說,就是更容易進行安全的付款,這對 開發者而言,當然是一件大事。:P Camera API 也開放更多功能,手動對焦、曝光與白平衡的控制並加入 Photo...

iOS CaptiveNetwork API 的用法

Captive Network 指的是接上 WiFi 基地台後還要經過帳號密碼認證(通常是 Web 介面)才能提供連接 Internet 服務的網路。印象中從 iOS 6 開始系統設定 App 中的 WiFi 選項在您連上的網路是 Captive Network 時,會自動跳出網頁介面的登入畫面供您登入網路使用,如果您在網頁介面中將帳號資料儲存下來的話,下次就可以自動登入。 小弟最近接了一個 case,專案的需求是要 App 自行處理登入的部份。所以就得要透過 iOS 的 CaptiveNetwork 這組 API 來實作了。先說明一點,在 iOS 上從 iOS 5 後,WiFi 的許多功能都被上鎖了,所以沒有 JB 的話,WiFi 的部份在 iOS 上只能抓到目前連上的 WiFi AP 之 SSID、IP 與 BSSID,訊號強度以及附近的 WiFi AP 列表都不開放了。真正…管得很嚴捏! 這組 API 有只有 5 個方法可以用: CNCopyCurrentNetworkInfo - 用來取得目前連上的 WiFi 網路資訊 CNCopySupportedInterfaces - 用來取得所有 Captive Network 支援的網路介面,比方說 WiFI 還是 3G 等。 CNMarkPortalOffline - 用來通知系統認證的網路不能連網,也就是說在認證失敗時,通知系統這個網路不能連上網。 CNMarkPortalOnline - 用來通知系統認證過的網路已可用來連網,這是在認證成功時,通知系統這個網路已連上網。 CNSetSupportedSSIDs - 用來通知系統,哪些 SSID 要使用 Captive Network,請系統在這些 SSID 連上線時,不要啟用網頁登入機制,改由註冊這些 SSID 的 App 來處理登入工作。 不過,註冊了這些 SSID 後,可別以為系統設定 App 會在您連上某 SSID 時,就會叫用您的 APP 出來處理認證工作。不會的,使用者還是需要手動開啟您的 App 去進行客制化的登入。 要使用這組 API 前,別忘了要在專案的一般設定中,如入 SystemConfiguration 框架,並將 captiveNetwork.h 定義檔引入。 小弟將註冊 SSID 的程式碼寫在 AppDelegate 裡頭: NSAr...

明年二月後 Apple 強制要求上架的 App 需要對 iOS 7 進行最佳化

Apple 稍早在開發者網站上發佈訊息,將在明年二月一日起,規定所有要上架的 App,都要使用 Xcode 5 來製作,而且要對 iOS 7 作最佳化。這樣一來等於是強迫開發者一定要升級到最新的開發工具上,並保證 App 的體驗與 iOS 7 一致。iOS 7 中有一些新的 API,也將一些舊的 API 拿掉了,iOS 的開發者們,現在不趕快轉用 Xcode 5,並為 iOS 7 製作相關的介面元件與進行相關的調整會有點來不及喔!小弟在網路上查了一些,還真有一些網友是灌了二套 Xcode 在開發的咧! 雖然這種作法有點趕鴨子上架,不過這對 App Store 的生態是有助益的,因為當超過 7 成的使用者都已經升級到 iOS 7 了,您的 App 不對 iOS 7 進行一些校調是不行的。比方說像 AutoLayout,這功能只有 iOS 7 才支援,如果您要支援 iOS 5 的話,那 iOS 7 的版面要稍微費心一點來製作。未來如果裝置有新的螢幕尺寸,那在介面的校調上,就真的要多費心思了。不過,從另一個角度看,這種環境比 Android 陣營的要單純多了(雖然製作介面時不見得比較方便),至少裝置的機型不會太多,在測試除錯上,相對單純。

iOS 7 GM 版釋出

在開發者網頁中,Apple 已釋出 iOS 的 GM 版供開發者測試,除非有大的臭蟲,否則這應該是預訂將於九月十八日釋出的正式版。GM 版不會有 OTA 的更新,所以不是開發者的朋友要拿到最新的 GM 版,需要找人幫忙或在網路上找找載點,下載後用 iTunes 安裝,而 iTunes 需要更新到最新的 11,否則更新完後,會有無法連接 iDevice 的問題 目前還沒看到 OTA 有更新 。Xcode 5 也跟著發表最後的測試版,開發者可以下載更新。

Xcode 4.4 以上版本應用程式圖示的設定法

在 Mac 下編寫程式時,常需要為應用程式設計一個圖示,讓應用程式在桌面上或在 Dock 上顯示時,更美觀,有更高的識別度。為了因應 Retina 顯示器,Mac OS X 下的應用程式圖示(application icon)的設定方式也有一些調整。原本以 Icon Composer 來製作圖示的方式,似乎已不再合用。底下是在 Xcode 4.4 後,應用程式圖示的設定方法。 1。既是圖示,那當然要有圖,要先以繪圖軟體製作出應用程式圖示。建議解析度為 1024x1024。 2。將步驟一所製作出的圖示複製出另外 9 份的複製檔,也就是說一套應用程式圖示,要製作出 10 個 PNG 格式的圖檔。將這 10 個圖檔放到一個檔案夾中,將檔案夾命名為 開發專案名稱.iconset。 3。將其他 9 個圖檔的解析度依序調整成 512x512(2 個檔), 256x256(2 個檔), 128x128, 64x64, 32x32(2 個檔), 16x16。 4。將 1024x1024 的檔命名為 icon_512x512@2x.png, 1 個 512x512 的檔命名為 icon_512x512.png, 另 1 個則命名為 icon_256x256@2x.png, 1 個 256x256 的檔命名為 icon_256x256.png, 另 1 個則命名為 icon_128x128@2x.png, 128x128 的檔命名為 icon_128x128.png, 64x64 的檔命名為 icon_32x32@2x.png, 1 個 32x32的檔命名為 icon_32x32.png, 另 1 個則命名為 icon_16x16@2x.png, 最後 1 個 16x16 的檔則命名為 icon_16x16.png. 5. 將這個檔案夾拖到專案 Summary 窗格中的 App Icon 即可完成應用程式圖示的設定。如下圖所示位置。

Apple 發佈 iOS 6.1 beta 2 測試版

iOS 6.1 beta 2 與 Xcode 4.6 開發者預覽版 2 已推出。 個人認為 iOS 6.1 應會在十二月推出。

在 Xcode 中為 iPhone 5 加入 App 啟動畫面

為了因應 iPhone 5 的 4" 畫面,Xcode 中設定 App 啟始畫面影像的部份也作了調整。 要讓您的 App 能在 iPhone 5 上也能顯示漂亮的啟始畫面,那就得再製作一張大一點的圖。這張圖的解析度應為 640x1136。