国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

iOS問題記錄 - Xcode 14.3版本運行項目報錯

這篇具有很好參考價值的文章主要介紹了iOS問題記錄 - Xcode 14.3版本運行項目報錯。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

看到Xcode有新版本,沒忍住點了升級,然后問題來了。

2023/06/24更新:關(guān)于Xcode 14.3版本打出來的包在iOS 13版本報錯的問題,經(jīng)過iOS 13.7版本真機實測,這個問題在Xcode 14.3.1版本已經(jīng)修復(fù),建議升級。Xcode 14.3.1的發(fā)布說明也提及了這個問題的修復(fù)。

2023/04/23更新:關(guān)于Xcode 14.3版本目前涉及到的三個問題,一是本篇文章的運行報錯;二是打包報錯,參考這篇文章iOS問題記錄 - Xcode 14.3版本打包項目報錯;三是打出來的包在iOS 13.1~13.7會報錯(因為我手頭沒條件暫時未驗證),參考蘋果開發(fā)者論壇的帖子。

目前而言,推薦暫時用回Xcode 14.2版本,等待第三個問題修復(fù)后再升級,Xcode歷史版本官方下載地址(需要登錄)。 當(dāng)然,到時候升級后可能還會遇到運行/打包項目報錯,不過這都是小問題。如果想知道這些小問題為什么會發(fā)生,請繼續(xù)閱讀本篇文章。

開發(fā)環(huán)境

  • macOS: 13.3
  • Xcode: 14.3

問題描述

Xcode 14.2版本運行項目一切正常,升級到14.3版本后運行報錯。

運行到模擬器的報錯信息:

ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

運行到真機的報錯信息:

ld: file not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a
clang: error: linker command failed with exit code 1 (use -v to see invocation)

問題分析

從報錯信息看,都是在鏈接庫的時候因為找不到靜態(tài)庫(libarclite_iphonesimulator.a/libarclite_iphoneos.a)而報錯。利用訪達的前往文件夾功能快速來到報錯信息中的目錄,發(fā)現(xiàn)連arc目錄都不存在,更不用說靜態(tài)庫文件。

現(xiàn)在可以確定的是Xcode 14.2版本肯定是正常的,那會不會是14.3版本移除了整個arc目錄?找到一臺還沒升級到Xcode 14.3版本的電腦,在同樣的路徑下,果然存在arc目錄:

iOS問題記錄 - Xcode 14.3版本運行項目報錯

既然是因為找不到庫導(dǎo)致的問題,那我復(fù)制arc目錄到Xcode 14.3版本中是否可行呢?實測可行,不管是模擬器還是真機,運行一切正常。不過,既然Xcode決定移除這個arc目錄,說明這個可能真的已經(jīng)過時,難道以后都不需要再鏈接這些庫用于支持ARC

找到Xcode 14.3的發(fā)布說明,翻了翻并沒有看到有關(guān)這方面的說明。看來只能去蘋果開發(fā)者論壇找找看,搜索報錯信息找到相關(guān)的問題,一位蘋果員工給出了回復(fù):

iOS問題記錄 - Xcode 14.3版本運行項目報錯

這個回復(fù)簡單概括起來就是說,因為系統(tǒng)已經(jīng)內(nèi)置有ARC相關(guān)的庫,所以沒必要再額外鏈接,至少Xcode 14支持的最低部署目標(biāo)iOS 11及以上版本的系統(tǒng)肯定是沒問題的。如果應(yīng)用部署目標(biāo)不低于iOS 11還出現(xiàn)問題,那么應(yīng)該是第三方庫的部署目標(biāo)有問題。

現(xiàn)在Xcode 14.3移除arc目錄的原因已經(jīng)很清楚,是因為支持的最低部署版本的系統(tǒng)都已經(jīng)內(nèi)置了ARC相關(guān)的庫。如果應(yīng)用最低部署目標(biāo)版本本身不低于iOS 11,解決這個問題很簡單,只需要將第三方庫部署目標(biāo)的iOS版本設(shè)置成和應(yīng)用最低部署目標(biāo)的iOS版本一致。

在我的項目中,應(yīng)用最低部署目標(biāo)是iOS 11.0版本:

iOS問題記錄 - Xcode 14.3版本運行項目報錯

Podfile文件中加上:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
    end
  end
end

這段代碼的作用是先獲取Pods項目(pods_project)中的目標(biāo)數(shù)組(targets),然后遍歷目標(biāo)數(shù)組通過目標(biāo)對象(target)獲取構(gòu)建配置數(shù)組(build_configurations),最后遍歷構(gòu)建配置數(shù)組修改構(gòu)建配置對象中的構(gòu)建設(shè)置(build_settings),將iOS 部署目標(biāo)版本設(shè)為11.0。

經(jīng)過以上操作,實測不再報錯。不過,還有疑問沒解決,我手上還有老項目的最低部署目標(biāo)是iOS 9版本,難道老項目只能用Xcode 14.3以下版本或復(fù)制一份arc目錄到Xcode 14.3?

帶著疑問,我用Xcode 14.3運行了老項目,結(jié)果一切正常!這差點給我整不會了。找到老項目中的Podfile文件,發(fā)現(xiàn)已經(jīng)有設(shè)置第三方庫部署目標(biāo)的iOS版本:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
    end
  end
end

???咦,難道iOS 9.0系統(tǒng)就已經(jīng)內(nèi)置了ARC相關(guān)的庫?

先試試將9.0改為8.0,執(zhí)行pod install命令后重新運行項目,結(jié)果報錯。將8.0恢復(fù)為9.0,再做一次測試,執(zhí)行pod install命令后手動修改某個庫的部署目標(biāo)為8.0,重新運行項目,不出意外還是報錯,而且就剩剛才改過部署目標(biāo)的庫在報錯。實測將8.0改為iOS 8的最后一個版本8.4.1還是報錯。

綜上,由于Xcode 14.3版本移除了ARC相關(guān)的庫,從而導(dǎo)致一些默認部署目標(biāo)是iOS 8版本的第三方庫出現(xiàn)報錯。只要最低部署目標(biāo)不低于iOS 9版本,運行項目時就不會去鏈接ARC相關(guān)的庫,也就不會出現(xiàn)找不到庫的報錯。

解決方案

  • 如果應(yīng)用最低部署目標(biāo)大等于iOS 9版本

Podfile文件中加上:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
    end
  end
end

11.0版本不是固定的,首先肯定要大于9.0版本,其次也不能高于應(yīng)用最低部署目標(biāo)版本,然后太低也可能會低于一些第三方庫的部署目標(biāo)版本,所以盡可能和應(yīng)用最低部署目標(biāo)版本保持一致即可。

2023/04/09更新:修改Podfile文件后需要重新執(zhí)行pod install命令使改動生效。

  • 如果應(yīng)用最低部署目標(biāo)小于iOS 9版本

這種老項目應(yīng)該很少了吧,如果真的是屬于這種情況,又不想升最低部署目標(biāo)版本,建議從以下方法任選一種:

  1. 下載arc目錄解壓后復(fù)制到指定目錄路徑:
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib
  2. Xcode使用14.3以下版本,Xcode歷史版本官方下載(需要登錄)

2023/04/08更新:如果用Xcode 14.3版本打包項目出現(xiàn)報錯,可以參考這篇文章iOS問題記錄 - Xcode 14.3版本打包項目報錯。

補充內(nèi)容(Xcode 15.0)

升級Xcode 15.0后,有個項目運行時遇到了崩潰問題:

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

經(jīng)測試,初步可知iOS 17.0以下版本都會有這個崩潰問題。在網(wǎng)上搜索到了類似的問題,應(yīng)該是Xcode 15.0的兼容性有點問題。

暫時不確定Xcode后續(xù)會不會修復(fù)這個問題,但是這里有一個臨時解決方法,將第三方庫部署目標(biāo)的iOS版本提高到Xcode 15所支持的最低部署目標(biāo)版本iOS 12

Podfile文件中設(shè)置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
    end
  end
end

同時最好也將應(yīng)用最低部署目標(biāo)設(shè)置為iOS 12版本:

iOS問題記錄 - Xcode 14.3版本運行項目報錯

最后

如果這篇文章對你有所幫助,點贊??收藏??支持一下吧,謝謝~


本篇文章由@crasowas發(fā)布于CSDN。文章來源地址http://www.zghlxwxcb.cn/news/detail-407322.html

到了這里,關(guān)于iOS問題記錄 - Xcode 14.3版本運行項目報錯的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • iOS問題記錄 - Xcode 14安裝低版本iOS模擬器(持續(xù)更新)

    iOS問題記錄 - Xcode 14安裝低版本iOS模擬器(持續(xù)更新)

    最近客服跟我反饋說,有一個用戶打開老項目的iOS App閃退,我回顧了下這項目上次發(fā)布改了啥,發(fā)現(xiàn)就改了一些文本和鏈接,這就很奇怪。到后臺查了下這個用戶的設(shè)備信息和應(yīng)用版本,用的是手機型號是iPhone X,系統(tǒng)版本是iOS 11.2,以及最新版的應(yīng)用。 很長時間都忙著Flu

    2024年02月15日
    瀏覽(24)
  • 使用Xcode 14.3 打包,在iOS13 系統(tǒng)上閃退問題

    Date/Time: ? ? ? ? ? 2023-04-21 16:49:28.3937 +0800 Launch Time: ? ? ? ? 2023-04-21 16:49:27.7110 +0800 OS Version: ? ? ? ? ?iPhone OS 13.4.1 (17E262) Release Type: ? ? ? ?User Baseband Version: ? ?1.05.28 Report Version: ? ? ?104 Exception Type: ?EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception No

    2024年02月06日
    瀏覽(26)
  • 升級Xcode 14.3項目報錯PhaseScriptExecution failed with a nonzero exit code

    升級Xcode 14.3項目報錯PhaseScriptExecution failed with a nonzero exit code

    經(jīng)過各種折騰之后,發(fā)現(xiàn)是CocoaPods的問題,解決方案如下: 全局搜索 將其替換為

    2024年02月04日
    瀏覽(25)
  • Xcode14.3升級完項目無法運行
/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

    Xcode14.3升級完項目無法運行 /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

    升級到14.3在真機上運行報錯如下: 解決方法: 在Podfile中的最后一個end出添加下面代碼 ? post_install do |installer| ? ? installer.generated_projects.each do |project| ? ? ? project.targets.each do |target| ? ? ? ? target.build_configurations.each do |config| ? ? ? ? ? config.build_settings[\\\'IPHONEOS_DEPLOYMENT_TARGET\\\'

    2024年02月06日
    瀏覽(25)
  • Xcode14.3升級完項目無法運行
                    
            
/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

    Xcode14.3升級完項目無法運行 /XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a

    升級到14.3在真機上運行報錯如下: 解決方法: 在Podfile中的最后一個end出添加下面代碼 ? post_install do |installer| ? ? installer.generated_projects.each do |project| ? ? ? project.targets.each do |target| ? ? ? ? target.build_configurations.each do |config| ? ? ? ? ? config.build_settings[\\\'IPHONEOS_DEPLOYMENT_TARGET\\\'

    2024年02月06日
    瀏覽(24)
  • Xcode 14.3升級后archive報錯處理

    sent 29 bytes received 20 bytes 98.00 bytes/sectotal size is 0 speedup is 0.00rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]Command PhaseScriptExecution failed with a nonzero exit code 用文本打開

    2024年02月12日
    瀏覽(19)
  • Xcode 15 運行<iOS 14, 啟動崩潰問題

    Xcode 15 運行<iOS 14, 啟動崩潰問題

    如題. Xcode 15 啟動 iOS 14(沒具體驗證過, 我的問題設(shè)備是iOS 13.7)真機設(shè)備 出現(xiàn)啟動崩潰 解決方案:

    2024年02月08日
    瀏覽(32)
  • xcode14.3更新一系列問題
1. Missing file libarclite_iphoneos.a (Xcode 14.3) 解決方法 ?

    xcode14.3更新一系列問題 1. Missing file libarclite_iphoneos.a (Xcode 14.3) 解決方法 ?

    Xcode升級到14.3后編譯失敗,完整錯誤日志: 原因: xcode 14.3更新后arc路徑缺失導(dǎo)致pod的引用路徑全部無法正常找到。這里需要重新創(chuàng)建該路徑及文件即可。 解決方法: 添加缺失的文件即可,當(dāng)然也有人取巧,限定導(dǎo)出歸檔的版本到iOS13規(guī)避這個問題。等待XCode14.3+的修復(fù)版本

    2024年02月12日
    瀏覽(24)
  • 升級到xcode 14.3相關(guān)問題(有毛?。? decoding=

    升級到xcode 14.3相關(guān)問題(有毛病)

    目錄 問題一:pod內(nèi)的某些Signing Capabilities editor 問題二:File not found: ????????/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a 問題三:?Archive 失敗 問題四:ios 13啟動崩潰 ????????proj.ios_mac/Pods/Pods.xcodeproj Signing for \\\"FBSDKCoreKit-Facebo

    2024年02月05日
    瀏覽(28)
  • 解決 Xcode 14.3 file not found問題

    解決 Xcode 14.3 file not found問題

    在使用 Xcode 14.3 運行應(yīng)用程序時,可能會遇到文件未找到的錯誤。本文介紹了如何解決這個問題。

    2024年02月11日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包