跳到主要內容

發表文章

目前顯示的是有「軟體開發」標籤的文章

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 出來都要適應一陣子,希望您沒有像小弟這樣,中招了…,有新版出,最好...

App 申請上架被阿婆打回票的常見原因

有幫 App 上架到 App Store 過的開發者都知道,App 被打回票的情況很常見,而被打回票的原因,有些地方阿婆似乎並沒有交待得很清楚。App 的審查工作在 Apple 內部,也具相當的神祕色彩。 幾天前,阿婆在其開發者網站上公佈了 App 被打回票的常見原因網頁,此舉雖不保證您的 App 不違反這些就會通過審核,但至少審核的標準清楚了些。底下小弟將網頁中所列出的幾點整理在下頭,詳細的資料,還是請您連上 Common App Rejections 網頁去看仔細了。 App 被打回票的常見原因有: 會當機或有臭蟲 內有失效的連結 預留了版面空間但沒有放上內容(App 畫面上就只會看到一個空的區域) 提供給審查者的資料不完整(小弟最近所提的幾個 App ,都因沒有上傳操作影片而被打回票,上傳操作影片後就通過了。),如 App 的功能、作者的聯絡資料等。 對 App 的說明或截圖不精確 誤導使用者,App 有提到的功能就該提供給使用者,不要讓使用者覺得 App 好像有某些 App 沒有提供的功能。 一致且設計完善的使用者介面,請遵守阿婆所提的設計指引中所列的介面設計原則。 如果有內置廣告,請正確設定廣告識別(Advertising Identifier,IDFA)。設定了 IDFA,就得有廣告功能並能正常顯示廣告。即有廣告就要設好 IDFA,有 IDFA 就要將廣告弄好。 App 內容不要只是一些網頁剪輯資料、現有資料的集中呈現或者只是一大堆連結。App 要提供有用的功能。 不要重複提交功能類似的 App 沒有存在價值的 App,功能或內容貧乏的 App,可能會被打回票。 在 Common App Rejections 網頁中,還列出了十大 App 被拒的原因,有興趣的朋友可透過上面的連結,連到阿婆開發者網站上查閱。

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...

以 Ad-Hoc 方式測試軟體 iOS 7.1 裝置需要使用具 SSL 憑證的伺服器

在進行 iOS 的 app 開發時,常需要讓一些團隊成員或測試者測試 beta 版的 app。如果您以 Ad-Hoc 方式發送測試用 app 給測試者下載安裝的話,使用者的裝置若已更新至 iOS 7.1,則您需要找個有 SSL 憑證,支援 HTTPS 的 host 來放置您的 app,否則測試者要下載測試軟體時,會遇上憑證無效的錯誤訊息而無法下載安裝。 提供給您參考,若您有相關的解決方法,也請不吝賜教分享給大家。 [更新] 可將 ipa 與 plist 檔上傳到 Dropbox 中的"公開檔夾(public)"中,然後連到 itms-services://?action=download-manifest&amp;url=<plist 檔的位置>,即可進行 Ad Hoc 的發佈。當然,測試者的裝置需經過開發裝置的 UDID 碼註冊才行。 另外,Google Site 因不支援以 itms-services:// 的協定連結,所以無法透過 Google Site 的連結來進行 Ad Hoc 的發佈。  [回覆 -> 天天網友] 請如圖所示般,複製 .ipa 檔的公開連結,將 .ipa 的公開連結加到 .plist 檔中。以同樣的方法複製 .plist 檔的公開連結,並將連到 .plist 檔的超連結寫成 itms-services://?action=download-manifest&amp;url=<plist 檔超連結> 的形式(沒有角括號),放在網頁中,或以電郵傳給測試者,點選之後,即可將 .ipa 檔下載安裝。不是以 HTML 的 <a href=""> 來連結。 您的問題應該是沒有在網頁的連結中使用 itms-services:// 的方式來進行連結,或不是連結到 .plist 的公開連結上。 .plist 的 URL 看起來會像是 https://dl.dropboxusercontent.com/u/xxxxxxx/xxxxxx/xxxxxxxx.plist。網頁中連結的寫法是 <a href=itms-services://?action=download-manifest&amp;url=https://dl.dropboxuserco...

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...

2013 WWDC 前的訊息整理

離 2013 WWDC Keynote 的時間約還有 2 天 1 小時,到現在這個時候,會場也的佈置也差不多要就緒了,議程當然早就定好了,此時外國的媒體應該就會捕捉到一些可信度高的訊息或畫面了,底下小弟就 MacRumors 網站的報導,對「應該」會發表的項目稍作一下摘要: iOS 7 這早在四月阿婆發出的消息中就知道了,會有新的 iOS 系統推出。除了期待新的系統功能、服務之外,新版 iOS 最令人期待的是新的「平」式介面設計。Ivy 會推出什麼樣的操作介面,這話題性十足,也十分令人期待。 MacOS 今年應會推出 10.9,但因日前傳出因 iOS 7 進度落後,Apple 從 MacOS 小組調用工程師去支援 iOS 的消息,這讓 10.9 的推出多了一些不確定因素。但即便如此,還是有消息傳出 MacOS 的 10.9 版會在 Finder、Safari、多工、多螢幕支援的部份有所著墨,此外也會強化對 Siri 與地圖的支援。個人其實對 MacOS 的期待比較多,因為手機或行動裝置的功能畢竟較有限,許多工作還是得在 Mac 上完成。 iRadio Apple 計劃推出的音樂串流服務,不過這牽涉到音樂的版權,所以到底是怎麼樣的一個服務,如何收費等,這有待星期二凌晨才能得知。 MacBook Pro 與 MacBook Air 會有更新 Intel 新一代 CPU Haswell 最近才發表,新的 MacBook 應該會推出採用新 CPU 的產品才是,到底會有何種規格,外型會不會變,這些也是留待星期二才能確定。 Mac Pro 這部份的消息就比較少了,而且這種程度的硬體,一般消費者比較少會採用。所以,也是留待星期二,當作加菜的料。 感覺 WDDC 愈來愈不像以前老賈在時那麼熱了,雖然門票還是一下賣光,但愈來愈不那麼讓人期待了。不過,還是希望 Apple 能持續創新,讓我們可以使用設計完善、品質良好、UX 佳的產品。咦!iWatch 咧?這次的 WWDC 大概看不到了吧! 底下附上由 MacRumors 網站上截下來的照片,讓大伙們先過過乾癮 :P 註:看到這個 7,真是令人期待新系統的介面啊!

Apple 推出 2013 年 WWDC 專屬 APP

將於 6/10 日舉行的 2013 年 Apple 開發者年會是一年一度 Apple 開發者的盛會,今年的門票也是開賣後就被秒殺,如果您想參加但買不到票的話,也可以噹這套 WWDC App 來看各場次的研討會錄影。大家關心的 Keynote 現場實況,在這套上頭不知道可不可以看(說明並沒有特別強調),噹來試看看囉!

2013 WWDC 將於六月 10 - 14 日舉行

Where great ideas take shape。 WWDC 門票將於 4/25 上午十時開賣,每張門票美金 1599 元,您必須是 iOS 或 Mac 的開發者才能購買,個人限買一張,公司團體限買 5 張,每張信用卡只能用來買 5 張票。2013 年的 WWDC 將於六月 10 - 14 日於美國舊金山舉行。 看到這張圖,讓人聯想到之前平價 iPhone 有五彩殼的傳聞,雖然庫克大昨天才說過目前不會推出大螢幕的 iPhone,但平價 iPhone 仍對許多人有吸引力,像財力不足的小弟就是,買台堪用的 iPhone 其實也是換機選項之一。

Pebble 電子紙手錶推出 iOS 平台 SDK

照片截自 Pebble 官方網站 在 Kickstarter 成功募得 1000 萬美元的電子紙手錶 Pebble(佩寶)日前推出 iOS 平台上的 Pebble Watchface SDK 供開發者下載使用。這款手智慧型手錶除了手錶的功能外,可以透過藍芽接收 iPhone 或 Android 手機傳過來的資料及訊息通知,當然也可以安裝軟體讓您的手錶具有一般手錶所沒有的「特異功能」。如果您沒來得及在 Kickstarter 出資贊助,現在您也可以用 150 美元去預購一支來玩玩。 從去年開始就一直有阿婆要出智慧型手錶的傳聞,還有人說阿婆會出可遙控 iTV 的阿婆戒指(小弟也很想要一只:P),但一直沒有確切的訊息(當然阿婆要出的東西,都要等到快發表前才比較能確定),現在這款 Pebble 手錶的推出,正好可以測試一下市場對這類裝置的接受情況。推出 iOS 的 SDK 也會讓開發者注意然後投入,有打造智慧型手錶平台的意圖。 這款使用 ARM 處理器的手錶使用電子紙來作為顯示器,在大太陽下的辨識度表現應該會比一般智慧型手機的螢幕要來得好。透過藍芽與手機連線,讓在室外活動的您,不用將手機拿出來,就可以看到手機上的資料,是一種方便的個人隨身裝罝。除了可以利用手機上的 GPS 讀取位置、運動速度的資料外,也可以控制音樂的播放、來電者與簡訊的顯示等。當然隨著 SDK 的推出,就可以有更多的想像空間,不久的將來,搞不好會看到人們在玩利用 Pebble 上的加速度計而設計的遊戲。 請觀賞介紹影片,更多資訊,請連上 Pebble 官網 : [vimeo http://www.vimeo.com/40128933 w=829&h=400]

Apple 發佈 iOS 6.1 beta 3

iOS 6.1  beta 3 與 Xcode 4.6 開發者預覽版 3 已推出。 個人認為 iOS 6.1 應會在十二月推出。這是之前的想法,還是有機會在今年結束前看到 iOS 6.1。