Just My Life & My Work

Posts tagged ‘library’

[iOS] 移除第三方套件中的UIWebView

先前已記錄:棄用API的使用情況 (Deprecated API Usage),也先行移除專案自己寫的UIWebView,現在要進行移除第三方套件中的UIWebView

想要移除第三方套件中的UIWebView其實不難,只要套件作者願意移除,然後使用套件的開發者更新版本,就能順利完成!若該套件是非常被廣泛使用,其他開發者肯定會很早就提醒套件作者。像是AFNetWorking和Admob。

不是說2020年12月上傳ipa才會擋?原來今年第一次上傳ipa的App,直接被迫要使用WKWebView,不然連送審都不行哪~

Dear Developer,

We identified one or more issues with a recent delivery for your app, “油價管家" 1.0.1 (1). Please correct the following issues, then upload again.

ITMS-90809: Deprecated API Usage – New apps that use UIWebView are no longer accepted. Instead, use WKWebView for improved security and reliability. Learn more (https://developer.apple.com/documentation/uikit/uiwebview).

Best regards,

The App Store Team

(繼續閱讀…)

[iOS] pod install與pod update的差別

2013年就開始使用Cocoapods來使用第三方套件,儘管有發佈初學者的Cocoapods教學,可是在「管理」這方面卻還是有些不明白,像是pod install與pod update的差別,真的是要到需要的時候才會認真去釐清差異,過去一直install和update混著用,如今看官方說明就更明白,畢竟我今年開始是團隊合作寫iOS App囉!

廣告

文章開頭先說總結:團隊每人都要同步podfile.lock,如此能保證大家套件版本一致。

廣告
(繼續閱讀…)

[iOS] 獲取WebView快取中的圖片

由於原生SDK沒有辦法直接獲取UIWebView中已下載的影像,因為想避免重複請求消耗資源避免減損使用者體驗,於是我找到可立馬使用的第三方套件:RNCachingURLProtocol。​雖然發現還要修改才能使用XD~

套件簡介

Simple offline caching for UIWebView and other NSURLConnection clients

WebView的圖片會使用NSURLProtocol來進行快取Cache,此第三方快取圖片會儲存到指定的文件夾,之後可以讀取此指定文件夾來獲取WebView的快取。

(繼續閱讀…)

[iOS] 指定Pod版本

四年前(2014年),我已寫過Cocoapods教學:使用 CocoaPods 管理第三方套件,此時要講指定Pod版本。好的第三方套件會時常更新來與時俱進,除了新增feature之外,還有修正既有的bug。

當我們自己開發的App已經過了好幾年,想要再透過Cocospods加入新的套件,此時要考慮到舊有的套件盡可能不要更新,若逼不得已還是得更新啦⋯⋯

使用Cocoapods的好處之一就是可以指定Pod版本。像是我有遇到下一個版本的語法被改掉,太難改的話我就會先返回原先的版本。

(繼續閱讀…)

[iOS] 日曆套件 JTCalendar

選擇日期這個功能很常見,只要牽涉到日期時間都會用到,短時間的選擇(如一年、一個月、一星期等)可以使用內建Date Picker,長時間橫跨好幾年的就要考慮使用日曆來挑選日期。在這裡我來推薦我最常用的日曆套件 JTCalendar

[iOS] 日曆套件 JTCalendar.PNG

它功能算是相當強大,日曆可以垂直水平翻前翻後,想客製化顏色、大小等特性皆可。

(繼續閱讀…)

關於 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混編的注意啦

[iOS] 靜態庫、動態庫、Framework的區別

持續使用Cocoapods來管理第三方套件,主要還是以Objective C來開發專案的我,有時候需要使用Swift的Open Source,才發現靜態庫、動態庫、Framework的區別要好好了解一下:P~

iOS 靜態庫、動態庫、Framework的區別 cocoapods.png (繼續閱讀…)

[iOS] 不要緩存網路資料

原以為已經解決AFNetworking會暫存資料的問題,第二次驗收還是被資安公司給退件,那麼只好使出一勞永逸的絕招!就是讓整個App網路資料都不要暫存資料,也就是說不只是針對AFNetworking,設定NSURLCache就能做到!透過模擬器追蹤Cache資料夾,打開Cache.db查看真的不再暫存撈回來的資料。

Disable AFNetworking Cache00004

可以看到追蹤模擬器資料夾會有個Cache.db。

(繼續閱讀…)

[iOS] Cocoapods 多個 Target

有時候同一個專案(Project)需要建立不同的目標(Target),因為可以各自設定屬性狀態,讓code可以依據釋出版(Release)開發版(Debug)來運作。

cocoapod xcode target.png

此時若有使用Cocoapods來管理第三方套件

(繼續閱讀…)

[iOS] 拆掉和包裝套件 (Unarchive and Archive Library)

又到了要套用第三方套件的時候,一般而言都是找最「受歡迎」的GitHub開源套件,因為做得好大家有目共睹,還會給作者一顆星!不過在台灣的市場,要套Beacon SDK就得找台灣廠商,去年旅遊App套一個廠商的Beacon SDK,搞了一陣子的背景偵測有問題,現在購物App也要來套另一個廠商的Beacon SDK,這個廠商製作各種「可串接」套件都有些問題,這次當然也少不了啦XD~

回想三年多前iBeacon被Apple提出來至今,台灣市場總算熱絡了起來,可以回顧一下我先前撰寫的初探iBeacon

(繼續閱讀…)

標籤雲