Just My Life & My Work

Posts tagged ‘setting’

[iOS] iOS 14 IDFA

IDFA 全稱為Identity for Advertisers,即廣告標識符。用來標記用戶,目前最廣泛的用途是用於投放廣告、個性化推薦等。

廣告

關於IDFA在iOS的重要性,可以見我先前文章:IDFA、IDFV、UUID

(繼續閱讀…)

[iOS][Xcode] 專案自定義變數 (Project User Defined Variable)

為了避免上架時把開發的東西誤上傳,那麼一開始最好就定義好DebugRelease,其實Debug和Release在Xcode中已有定義,包版本釋出預設就是Release,而開發的時候透過Xcode編譯到手機,預設則是Debug,不過其實可以改成Release來測試,如此方便!

透過Xcode可以讓專案自定義變數 (Project User Defined Variable),這樣一來就算忘了有什麼是測試還是正式,都不用擔心會上錯啦~

(繼續閱讀…)

關於 Swift 4.1

最近又「逼不得已」要更新Xcode 9.3(原9.2),原本沒有很想趕上潮流,不過因為老闆把自己的iPhone升級到11.3,我要幫他灌App測試,Xcode就跳出不支援該版本⋯⋯使得我被迫要升級Xcode!更沒想到的是,要安裝Xcode 9.3,還要先升級Mac OS 10.13(原10.12.6),這過程要花我整個下午的時間啊⋯⋯

本篇議題是關於 Swift 4.1,Xcode 9.3就能以Swift編程,以為只是小更新並不大礙,沒想到我所使用的Libray/Framework出現問題!!!

Swift第4版本提到Charts套件超好用,它要以Swift 4.0來編譯,所以要到某處選擇設定。今日更新到Swift 4.1

關於 Swift 4.1 Xcode2

想說編譯執行會很順利,誰知出現⋯⋯

關於 Swift 4.1 Xcode1

這不符合Swift版本問題很神奇啊~

error: The following binaries use incompatible versions of Swift:
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Charts.framework/Charts
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Zip.framework/Zip

目前還在找解法ORZ,依然有經驗地翻舊文章下載舊版Xcode,先成功編譯後推Git。

想問熟悉寫Swift的高人,到底有多少時間在改Swift語法和設定呀⋯⋯

參考:Swift和Objective-C混編的注意啦

[Xcode] C++ 讀取所在目錄檔案

過去六年以來一直寫iOS App,讀檔方面路徑沒什麼問題。

然而在Xcode寫C++ code時候,碰到讀取本目錄下txt文件的內容,不想使用絕對路徑,那麼就是使用相對路徑。可以做如下設置,就可以打開文件並讀取!

[Xcode] C++ 讀取所在目錄檔案

(繼續閱讀…)

[iOS] 設定藍芽 (Setting Bluetooth)

有時候我們需要開啟藍芽來連結裝置,像是BeaconApple Watch小米手環。那麼如果使用者沒有打開權限怎麼辦?請他/她到設定藍芽 (Setting Bluetooth)去打開囉~

iOS 設定藍芽 (Setting Bluetooth).PNG

目前iOS SDK尚未有API可以直接改藍芽設定,要是未來Apple有開放的話請再跟我說唷!不過我想應該要等到天荒地老,非常重視用戶隱私的Apple,是不會輕易讓開發者悄悄開啟Bluetooth來進行任何動作。

剛好我們偉大的技術長有無私分享:

/**
 Theme: iOS 10 Setting Bluetooth
 IDE: Xcode 8
 Language: Objective C
 Date: 106/03/07
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
-(void)openBLESetting
{
    NSURL *bluetoothURLOS8 = [NSURL URLWithString:@"prefs:root=General&path=Bluetooth"];
    NSURL *bluetoothURLOS9 = [NSURL URLWithString:@"prefs:root=Bluetooth"];
    NSURL *bluetoothURLOS10 = [NSURL URLWithString:@"App-Prefs:root=Bluetooth"];
    if ([[[UIDevice currentDevice] systemVersion] intValue] >= 10) {
        [[UIApplication sharedApplication] openURL:bluetoothURLOS10];
    }
    else if ([[[UIDevice currentDevice] systemVersion] intValue] >= 9) {
        [[UIApplication sharedApplication] openURL:bluetoothURLOS9];
    }
    else {
        [[UIApplication sharedApplication] openURL:bluetoothURLOS8];
    }
}

這種沒啥邏輯純粹定義的玩意兒,抄,就對了XD~

參考:opening iOS BLE setting from app

[iOS] 導向系統設定App

有些功能只能從系統設定App,那麼我們就必須知會使用者,若可以的話就導向系統設定App吧~

iOS 系統設定app 垃圾管家.jpg

/**
 Theme: Open Setting App
 IDE: Xcode 8
 Language: Objective C
 Date: 105/12/28
 Author: HappyMan
 Blog: https://cg2010studio.wordpress.com/
 */
-(void)pushSettingAction:(id)sender
{
    if (/* DISABLES CODE */ (&UIApplicationOpenSettingsURLString) != nil) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    }
    else {
        DxLog(@"UIApplicationOpenSettingsURLString is not available in current iOS version");
    }
}

這樣我就能導向原本App(以垃圾管家為例)的系統設定囉~

參考:How to open Settings programmatically like in Facebook app?

[iOS] 爭取背景執行時間

iOS不像Android,當APP進入背景模式的時候,Android還能暢所欲行,而iOS則會被強制中止,為什麼要這麼做?因為Apple就是要讓裝置省電來做更人性化的事情。那麼iOS是不是就不能在背景模式繼續運行?像是我們下載容量超大的檔案(如100MB),我們一定不會想要枯等看著它下載完,而是會切換到其它APP或其它功能繼續把玩,於是Apple還是會給需要的程式設計師一扇窗!

注意:經資深工程師提點,始知在Info.plist設定background modes是在iOS 7才有,功能上比較像是隨時都有可能需要背景模式時執行,所以若只是想延長背景執行時間來下載大型檔案,就不用設定Info.plist喔!但一定要在AppDelegate.h/.m處理~呵,我參考的部落格文章沒有寫清楚,看來還是要自己實際去驗證,不然就會像我送審的APP被reject~

background mode

(繼續閱讀…)

[iOS] 背景狀態持續更新地理坐標

由於我所設計的計步器需要在背景狀態持續更新地理坐標,所以必須特別去設定些屬性。Apple在APP品質的控管上表現得相當嚴謹,因為它期望手機不能太耗電,以加長手機電池的使用時間,於是審核APP時會特別去檢查是否有無謂耗電的現象,當然耗電的因素很多。而在此記錄一下要如何去開啟背景狀態持續更新地理坐標這個機制,要說一下蘋果的審委也是有不通人情的一面⋯⋯因為我明明有用到啊!其它APP能通過審核,我的怎不能?

gps background
(繼續閱讀…)

[iOS] ARM架構與i設備的關係

一些專案設定要慢慢開始瞭解,特別是Build Settings有許多細節,跟APP運行的環境相關。

iOS ARM架構與i設備的關係

此截圖為某HappyLife專案Build Settings中Architectures的部分,開發界面是Xcode 5 beta。

(繼續閱讀…)

標籤雲