Re: [問題] 關於 apple store上架限制 iOS 12.1 SDK

看板MacDev作者 (龍野南雲)時間5年前 (2019/04/18 13:36), 編輯推噓2(206)
留言8則, 3人參與, 5年前最新討論串2/2 (看更多)
※ 引述《lisa090914 (好天氣,好心情~)》之銘言: : 並沒有提到要XCode10才可以, : 因此想請問,我目前的環境是在XCode 9.2 ,有另外裝到iOS 12.1的 device support , : 這樣是可以成功送審/上架的嗎? Apple管制的只有編譯時採用的SDK版本,只是一般來說SDK會跟Xcode版本,Swift版本有 關,所以才會有要升到特定Xcode的情況。 所以如果你有辦法調整 Xcode 去使用指定版本的 SDK,那是有機會繞過去 BUT!! 這並不是正規用法,Tool chain之所以叫 chain,就是每個元件互相牽連 如果你對整個 build system 很熟,整個 IDE, compiler, SDK 之間怎麼互相合 作,互相整合都很了解,再去想辦法搞這種事情。 怎麼會一個用內建工具把 Swift 4.0 -> 4.2 的更新就轉頭去對整個 tool chain 開刀呢... : 會要用Xcode 9.2是因為之前在XCode 10上編譯的問題還是沒解決QQ (文章代碼:#1SbxyQ : Gm),如果對於這個問題有什麼其他解決方法的也可以說 Orz 這邊我想要說一下問問題的方式,你在那篇文章中只有貼了一小段錯誤訊息,提到 Swift 4.0編的module不能在新的compiler使用,單憑這樣的訊息,我們只能告訴你 "Swift 4.0編的module不能在新的compiler使用",對,就是翻成中文給你 你應該要把完整的錯誤訊息貼出來,重點在 "哪個 module?",而知道是哪個 module 之後,接下來的行為就很簡單, 1. clean & build 2. 如果是第三方套件,就檢查看看原作者有沒有更新到新版語法 2.1 如果沒有,看看能不能在套件的 compile 設定指定用舊版 Swift 編譯 2.2 如果有更新,就更新看看有沒有其他問題 2.2.1 如果有得更新,但是因為一些考量先不更新,那就走 2.1 3. 如果是自己寫的套件,那 Xcode 會直接問你要不要轉換,按下去基本上跑完了 怎麼會沒事直接想要去惡搞 tool chain,像下面這樣呢? : → ou9810: SDK可以從其他版本複製,或設定路徑也可以 175.98.152.120 04/17 09:15 : 我已經從xcode 10複製iOS 12.2的SDK到xcode9.2 同樣的資料夾裡了,這樣就可以了嗎還 : 是還要再設定什麼? : 我複製過去重開xcode之後,build setting 裡的Base SDK 還是沒有12.2的選項耶... 好,第一個問題是,你一直提到 cocoapods,但是你下面的截圖完全沒有提到是哪個 pod,我連想幫你查查看作者有沒有更新都沒辦法... : 經過一番波折之後,目前的另一個作法是把pod全部刪掉,把套件原始檔放在我的程式裡 : ,目前的環境是XCode10.2,並使用swift4.0.3 tool chain。套件程式碼修改完之後剩下 : 下面這兩個錯誤 : : https://i.imgur.com/HCo4Smh.jpg
: : 先看下面,原本寫的是kCALineCapRound,在Xcode9.2, swift4.0可以用,但在這裡卻說 : 被重新命名,改成round之後又說ambiguous,後來查到 kCALineCapRound 在Swift 4.2被 : 命名成CAShapeLayerLineCap.round,雖然覺得奇怪但還是改了,結果就像上面那行寫的 : ,跟我說沒有round... 這我真的不知該如何處理... : 左下角用黃色標示的地方有寫kCALineCapRound 已經被swift 4捨棄 第二個問題是,根據這段code,就完全是 Swift 語法轉換的問題而已 就算 Xcode 沒有自動跳出來問你要不要轉換,從 Edit->Convert->To Current Swift Syntax... 也可以轉換,這種常數命名的轉換都是工具直接跑完就結束了,所以 我還是想問:怎麼會沒事直接想要去惡搞 tool chain 呢? : : Ps. 在build setting裡 swift的版本設定也改成4.0了 : ※ 編輯: lisa090914 (114.43.164.147), 04/18/2019 04:20:47 : 噓 darktt: 你使用Swift 4.0,那就用kCALineCapRound 1.173.106.238 04/18 07:32 : → darktt: ,不要理Xcode的提示,除非Swift 4.0已經 1.173.106.238 04/18 07:32 : → darktt: 捨棄了 1.173.106.238 04/18 07:32 : 推 darktt: 另外,我噓的點是【不要用手機拍電腦畫面 1.173.106.238 04/18 07:34 : → darktt: 】,明明有螢幕截圖給你使用 1.173.106.238 04/18 07:34 : dark大抱歉,截圖已經更新,不理這個error的話沒辦法編譯成功。另外可以看到圖的左 : 下角有kCALineCapRound 已經被swift 4捨棄的提示。 : ※ 編輯: lisa090914 (114.43.164.147), 04/18/2019 12:38:53 -- Luna quieres ser madre y no encuentras querer que te haga mujer -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.43.139 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1555565791.A.4F3.html

04/18 15:45, 5年前 , 1F

04/18 15:46, 5年前 , 2F

04/18 15:55, 5年前 , 3F
呃...不要什麼都用截圖好嗎...Orz
04/18 15:55, 3F

04/18 15:55, 5年前 , 4F
其實那個套件就像我說的,用工具轉轉看
04/18 15:55, 4F

04/18 15:56, 5年前 , 5F
應該就可以用了,不是太複雜的東西
04/18 15:56, 5F

04/23 09:29, 5年前 , 6F
結果解決了嗎?
04/23 09:29, 6F

05/07 15:41, 5年前 , 7F
前不久才處理,轉換到Swift 4.2的issue
05/07 15:41, 7F

05/07 15:41, 5年前 , 8F
舊的Swift 3.2的寫法都被擋掉了…
05/07 15:41, 8F
文章代碼(AID): #1Sk0pVJp (MacDev)
文章代碼(AID): #1Sk0pVJp (MacDev)