2015年1月22日

解決 iOS 8.0.2 的 GPS 定位問題

又來了~自從升上 iOS8 之後,bug 一下多了很多,客戶的回饋是他們原先的 GPS 定位都不能使用了。而我自己安裝的軟體是從 8.0 就安裝好的,所以我沒有遇到這個 bug。

是這樣的,蘋果的 iOS 8.0.2 開始對於定位有了新的定義,所以需要使用下列的方法修正:

1. 請先到專案的 Info 裡面,增加兩個重要的屬性
NSLocationAlwaysUsageDescription  還有  NSLocationWhenInUseUsageDescription
這兩個屬性不會自己跑出來,請愛用複製貼上。 型態可以是 String or Bool



2. 去程式裡面找到呼叫 CLLocationManager 的地方 修改如下:


 locManager = [[CLLocationManager alloc] init];
    locManager.delegate = self;
    if ([[UIDevice currentDevice].systemVersion floatValue] >= 8) {
        [locManager requestAlwaysAuthorization];
        [locManager requestWhenInUseAuthorization];
    }
    locManager.DesiredAccuracy = kCLLocationAccuracyBest;
    [locManager startUpdatingLocation];


3. 然後再去對應的地方修改(或新增)程式碼:

- (void)locaitonManager:(CLLocationManager *)manager didChangAuthorizationStatus:(CLAuthorizationStatus) status
{
    switch (status){
        case kCLAuthorizationStatusNotDetermined:
            if ([locManager respondsToSelector:@selector(requestAlwaysAuthorization)]){
                [locManager requestWhenInUseAuthorization];
           
            }
            break;
        default:
            break;
    }
   
}


4. 執行程式吧,理論上可以看到要求打開權限的對話框了,大功告成!





2015年1月14日

iOS APP 發佈企業版的變化

這半個多月以來我被蘋果的發佈纏身,整個處於忙碌的測試與爆炸狀態中。

原因是這樣的,我的一個上海的客戶去年委託我們製作軟件,然後我們提供原始代碼之後他們又請我們幫忙發佈,不過因為對方的資訊部門做的憑證有問題(那又是另一個故事),所以拖了很久我們才發佈出企業版 ipa。

然後是最近發生的事:後來我們做其他的軟體,又需要發佈了,結果升級到 iOS 10.10.1 之後 XCode 也跟著升級,這是理所當然的事情,結果蘋果的發佈介面就改變了,在也沒有什麼 AD-Hoc 的選項,而是需要使用企業版的帳號去綁定想發佈的 app,客戶那邊卻不斷的鬼打牆說是我們這裡不會發佈,然後給了一堆舊資料,想當然爾是不可能會成功的。

後來很浪費時間的跑去對方的辦公室,證明我說的是正確的,然後才發現對方連一台正式的蘋果電腦都沒有,是用 Sony Vaio 的虛擬機跑 Mac OS。也因此他們一直停留在舊時代,使用舊的方式開發軟體還有發佈,才沒有遇到我說的問題。

他們的其他軟體開發商也是如此的配合,使用舊環境去包裝企業版 ipa,所以才沒有出包。

這件事情解決之後,最近又發生一件事,就是去年我們開發的另一個軟體的憑證到期了,所以對方自己包裝了新的憑證,然後我們協助重新編譯軟體上架。現在的企業版本由於不提供 Plist 檔案,因此要自己寫,結果卡在客戶的資訊部門寫了錯的 plist 又搞了我好幾天。

如果不會寫 Plist 的可以參考我下面的寫法,直接複製貼上吧,省時省力。祝開發者們永遠可以不要浪費時間在這些無聊的東西上。


   
        items
       
           
                assets
               
                   
                        kind
                        software-package
                        url
                        https:// 請填寫您的ipa 所在地
                   
                   
                        kind
                        display-image
                        needs-shine
                       
                        url
                        https://您的小icon所在地.png
                   
                   
                        kind
                        full-size-image
                        needs-shine
                       
                        url
                        https://您的大icon所在地.png
                   
               
                metadata
               
                    bundle-identifier
                    您的 Bundle 名稱
                    bundle-version
                    您的 bundle 版本
                    kind
                    software
      title
                    您的軟體名稱
               
           
       
   

2015年1月7日

解決 iphone 把 windows 硬碟吃光光的問題吧!

不知道是好可怕的偶然還是巧合,最近不約而同的遇到了三個人都有這個問題,他們分別使用 iphone6 plus、iphone 5、iphone4s,然後都遇上了 windows c: 空間不足。

如果不是因為抓了很多影片的話,那可以保證是 iTunes 造成的,因為自動瘋狂備份的關係,就把硬碟空間吃光光了。

所以下面是解決的方法:

1. 打開視窗,找到 c:\
2. 組合管理下面應該會看到 "資料夾和搜尋選項"
3. 選擇"檢視" -> 隱藏檔案和資料夾 的選項 選擇 "顯示隱藏的資料節、檔案及磁碟機"
4. 然後去找 C:\Users\使用者\AppData\Roaming\Apple Computer\MobileSync\

*** 注意,"使用者" 填的是您的使用者 id

5. 把 MobileSync 的內容複製到隨身碟裡 (現在隨便買應該都有個 2T )
6. 複製完畢之後 就可以把 MobileSync 刪除了,此時可以拿回超級多的空間
7. 打開 "命令提示字元" 這個程式 (CMD)
8. 輸入指令 mklink /j "C:\Users\使用者\AppData\Roaming\Apple Computer\MobileSync" "X:\MobileSync"  

*** 請注意 X 指的是將來要備份的地方,可以是 D:  E:  F:  或是其他的隨身碟
另外最好先在目標區域建立 MobileSync 這個資料夾。

然後可以試試看隨便抓一個檔案到 C:\Users\使用者\AppData\Roaming\Apple Computer\MobileSync 下面,然後去 X 下面找,如果找到了就表示成功啦!!!

當然,這個方法每次換新的系統的時候都要再做一次,所以一勞永逸的正確方式還是換台 MacBook 吧~ XDDDD

2015年1月3日

iphone4s 與 SAM - 漏洞已經被修補了~不要嘗試!

由於年關近,因此最近身邊的人都有不小的損失,我的二號室友被扒走了錢包、另一個朋友則是被扒了手機。

被偷走手機和錢包都是非常討厭的事,然後我的其中一個功能就被想到了,就是傳說中我可以協助破解 AT&T 的合約機。

需求:苦主的手機在傍晚被偷走,家裡只剩下美國買的 AT&T 合約機,但是苦主本人在隔天的天亮要做飛機離開。所以只剩下短短的數個小時。

解決方案:由於我沒有遠端抓藥的功能,所以實際拿到手機之後測試,發現這是一支 iphone4s,然後 at&t 綁合約,iOS 停在 6.1.3 沒有繼續更新。因此決定採取 p0sixspwn 的軟件來越獄,然後偽裝 sim 卡的方案。

p0sixspwn 的使用方法簡單到不行,接上電腦之後不到兩分鐘就越獄成功,然後就是進入越獄後的 cydia 裡面安裝 SAM 這個偽裝 sim 卡的軟體。

不過事情並沒有傻瓜想的這麼簡單,雖然在 2012 年之前我都號稱是個熟手,但是我也大概兩年沒有破解 iphone 了,裝了 SAM 之後卡在一個奇怪的地方,就是手機有了訊號、可以收發簡訊、可以接聽電話,但是無法"撥出"。

這個問題我找了超超超久,然後才發現蘋果已經補掉這個漏洞了 =.=

由於這次有時間上的壓力,所以非常慚愧的,這次的協助並沒有完全成功,只解決了一半的煩惱。但是我已經找到應該可以完全解決的方法了,下次我預計應該可以寫出 "完美的破解 at&t iphone4s"!!!

可惡呀!iphone4s 快點回來讓我測試吧!!!

2015年1月2日

很簡單的新年新希望

多年前神手小敏在開年的時候分享了一個演講心得,請的是 Android 的開發者,他開發了行事曆相關的軟體。然後做了一個有趣的統計。

就是行事曆這種東西,在每年的 12 月下載率最最最高。

當然這有可能表示其實人類都是嘴砲,或是因為科技進步了每年都有更好的行事曆出來,12月下載率高當然就是要迎接新的一年,就像小時候每年都會買一本 199x 最新記事本那種感覺吧。

去年下半年有一些規劃,一直停在 waiting list 裡面,我今年要正是的列在年度計畫裡,包括有

軟體類:
1. 今年要開發出自己的遊戲
2. 今年要開發出一個自己公司的軟件

硬體類:
1. 今年要實作一台機器人

自我期許類:
1.八塊肌。尤其看到很多胖子的勵志文之後。(這個已經正式列入在我和室友馬胖先生的賭局裡了)
2.歐洲旅行,至少去捷克。
3.再回到校園演講至少一次。

這是目前想到一定要做的事情。12 月的時候會來寫一篇總檢討,請隨時叮嚀我往這些目標邁進。

2015年1月1日

用這隻 MV 開年吧!

2015 的第一篇,推薦一支有趣的 MV。我從來都不是什麼時尚或是流行界的人,最近的一小段空檔,把 2014 維多利亞的祕密給看完了。多出了一個人生想做的事情,就是一定要去看一次現場的走秀!

這隻 MV 是因為在看秀的時候先聽到歌曲,才上網查詢的,然後發現真的是時尚的不得了,而且內容相當有趣,可以說是他伴著我過了 2014 的最後一個月哩!

Enjoy it : Blank Space - Taylor Swift

再見了 Evernote.

大概是去年底開始,我常常用的一個雲筆記本軟體 Evernote 就限制了我的新增記事,後來才發現他限制我們免費仔的記事數字停在了 50 篇。