[Catalyst]處理XCode11 將iOS App 打包成 Mac App 的警告問題整理

Catalina.jpg

今年發(fā)布的bugOS13的同時(shí), 對蘋果開發(fā)者們還有個(gè)好消息, 無論是Swift還是OC, 在XCode11下都可以打包為mac端應(yīng)用了.
筆者也試著跑了下自己的程序, 前前后后紅色警告起碼有20多個(gè), 整理了一遍, 如果有遺漏和錯(cuò)誤希望大家指正.

1. 更新所有舊API

老舊組件例如UIWebView等, 在Mac上已經(jīng)沒有了, 這也包括第三方庫中引用的, 需要統(tǒng)統(tǒng)替換掉. 如果你的項(xiàng)目是引用的CocoaPods的. 下次更新pod之后還需要再弄一次, 所以需要?jiǎng)冸x開來(手動(dòng)引用這些第三方庫,如AF等).

  1. 所有用到UIWebView的, 全部切換成 WKWebView
  2. 所有用到ALAssetsLibrary的, 全部切換 PhotoKit

2. 未簽名的庫

需要給代碼加上簽名


1_.pic.jpg

3. AFNetworking

  1. 第一點(diǎn)中說的問題UIWebView+AFNetworking. 刪~
  2. AFNetworking 3.2.1中調(diào)用了廢棄的方法
- (instancetype)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(nullable NSString *)path API_DEPRECATED_WITH_REPLACEMENT("initWithMemoryCapacity:diskCapacity:directoryURL:", macos(10.2,API_TO_BE_DEPRECATED), ios(2.0,API_TO_BE_DEPRECATED), watchos(2.0,API_TO_BE_DEPRECATED), tvos(9.0,API_TO_BE_DEPRECATED)) API_UNAVAILABLE(uikitformac);
=> API_UNAVAILABLE(uikitformac);

替換成

     return [[NSURLCache alloc] initWithMemoryCapacity:20 * 1024 * 1024
                                          diskCapacity:150 * 1024 * 1024
                                          directoryURL:[NSURL URLWithString:@"com.alamofire.imagedownloader"]] ;

4. 靜態(tài)庫中包含模擬器的包

因?yàn)?code>Mac端沒有iOS的模擬器

這幾個(gè)問題解決之后. 那一抹亮眼的紅色終于消停了.
如果還有更多的適配希望大家能夠補(bǔ)充.


最后. 寫兼容代碼

寫兼容性代碼就是條件語句咯, XCode已經(jīng)為我們開了路, 但還剩下許多細(xì)節(jié)需要實(shí)現(xiàn).
首先你要為項(xiàng)目增加新的target, 寫入新的bundleID等, 增加target的細(xì)節(jié)可以參考這篇文章
在新的 target下進(jìn)入Building Settings, 找到PreprocessorMacros可以直接創(chuàng)建宏在代碼中使用.

  1. 為項(xiàng)目加入新的scheme或著自定義宏. 代碼中通過#ifdef, #ifndef宏, 進(jìn)行適配
#ifdef xxxScheme
...    
#else
...
#endif
  1. Conditional import
#if canImport(Crashlytics)
func dLog() { 
    // use Crashlytics symbols 
}
#endif
  1. CocoaPods

根據(jù)platform適配, 項(xiàng)目需要增加一個(gè)target專門對應(yīng)mac端,

target :testDemo do
platform:'ios','8.0'
pod 'AAA','~> 1.0'
end

target :testDemoMac do
platform:'osx','10.15'
pod 'BBB','~> 2.0'
end

題外話: 根據(jù)scheme來, 因?yàn)橛行┙M件做成模擬器和真機(jī)分開的形式

  pod 'mySdk-release', :configurations => ['Release']
  pod 'mySdk', :configurations => ['Debug']

最終的Podfile文件是這個(gè)樣子


def commonPods
      pod 'a'
      # ...
end

target 'testDemo' do
  use_frameworks!
  platform:'ios','8.0'
  commonPods  
  pod 'b'
  pod 'c'
  # ...
end


target 'testDemoMac' do
  use_frameworks!
  platform:'osx','10.15'
  commonPods
  pod 'd'
  pod 'e'
  # ...
end


For More

module - Conditional Imports in Swift - Stack Overflow
https://guides.cocoapods.org/syntax/podfile.html
https://developer.apple.com/documentation/webkit/wkwebview
https://developer.apple.com/documentation/photokit
https://www.talentica.com/blogs/ios-build-management-using-custom-build-scheme/
https://guides.cocoapods.org/syntax/podfile.html#platform

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末屏歹,一起剝皮案震驚了整個(gè)濱河市腋么,隨后出現(xiàn)的幾起案子亡脸,更是在濱河造成了極大的恐慌跨蟹,老刑警劉巖娘荡,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞护,死亡現(xiàn)場離奇詭異,居然都是意外死亡养渴,警方通過查閱死者的電腦和手機(jī)雷绢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來理卑,“玉大人翘紊,你說我怎么就攤上這事∶赀耄” “怎么了帆疟?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長宇立。 經(jīng)常有香客問我踪宠,道長,這世上最難降的妖魔是什么泄伪? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任殴蓬,我火速辦了婚禮匿级,結(jié)果婚禮上蟋滴,老公的妹妹穿的比我還像新娘染厅。我一直安慰自己,他們只是感情好津函,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布肖粮。 她就那樣靜靜地躺著,像睡著了一般尔苦。 火紅的嫁衣襯著肌膚如雪涩馆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天允坚,我揣著相機(jī)與錄音魂那,去河邊找鬼。 笑死稠项,一個(gè)胖子當(dāng)著我的面吹牛涯雅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播展运,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼活逆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拗胜?” 一聲冷哼從身側(cè)響起蔗候,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎埂软,沒想到半個(gè)月后锈遥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仰美,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年迷殿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咖杂。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庆寺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诉字,到底是詐尸還是另有隱情懦尝,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布壤圃,位于F島的核電站陵霉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏伍绳。R本人自食惡果不足惜踊挠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧效床,春花似錦睹酌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沪猴,卻和暖如春辐啄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背运嗜。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工壶辜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人担租。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓士复,卻偏偏與公主長得像,于是被迫代替她去往敵國和親翩活。 傳聞我的和親對象是個(gè)殘疾皇子阱洪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354