Xcode 10.2.1 运行报错:Could not launch “xxx” ,iphone has denies the launch request...

转自:https://blog.longwin.com.tw/2019/03/xcode-10-iphone-has-denied-the-launch-request-2019/

参考:https://blog.csdn.net/MarketAndTechnology/article/details/88552583

使用 Xcode compile 安裝到手機執行,遇到下述錯誤訊息:

Could not launch "project-name" XXX

iPhone has denied the launch request.

註:此篇找過很多解法,但是還是沒有完全解決,可以正常執行,但是無法開啟 Debug console

Xcode 10 手機遇到 iPhone has denied the launch request 解法

遇到此問題的還不少,有看到 安裝 Xcode 9 可以暫時解決,不過這個解法我還沒嘗試過。

安裝 Xcode 9 沒辦法 Compile 安裝到 iOS 12 上,所以一樣無解。

環境:

Xcode 10.1

iPhone 手機:iOS 12

目前找到解法,而且確實可以執行使用的是下述(兩個是一樣的,挑其一即可):

開啟 Xcode → Product → Scheme → Edit Scheme → 'Info' → Debug Executable 前面的勾去掉

開啟 Xcode → Product → Scheme → Edit Scheme → 'Info' → Executable → Ask on Launch (就等同 Debug Executable 勾掉一樣意思)

但是上述的解法,沒辦法執行 Debug console,我目前也還沒找到解法

3/21 更新:

找到解法

加入付費帳號的 Group,然後新增帳號(原有帳號不曉得是否能用,我是用新帳號,憑證都會重新產生新的),再清掉 Cache (Project → Clean Build Folder),就可以正常編譯、Debug 了~

此問題看起來很像是憑證問題,官方論壇也有查到類似的作法:

下述摘錄自此篇:Xcode 10: iPhone has denied the launch request.

Solution 1: open System Prefrences → Users & Groups → Add a user account (build with new user is successfully (建立新帳戶)

Solution 2: open Keychain Access → choose System, All Items → delete certificate Apple Worldwide Developer Relations Certification Authority (砍掉 Apple Worldwide Developer 的憑證,會重新產生回來)

不過都一樣沒解決,下述先整理幾招看到的解法(都是選用,也可以都嘗試看看),有人說有用,不過測試對我還是沒有作用,可以先做參考:

建立新帳戶,使用新帳戶就可以解決此問題 (Xcode 專案內 → Signing → Team → Add an Account)

重新建立開發者的憑證,這部份講法很多種: (總之先進入 keychain 搜尋進入,或者:應用程式 → 工具程式 → 鑰匙圈存取)

於左邊有「登入」、「系統」 可以選擇,左下方可以選取「憑證」,主要刪除憑證為主;跟自己相關的,也可以都刪除掉試試看

下述幾個可以嘗試慢慢砍,或者如 4. 全砍,都可以嘗試看看

刪除 Apple Worldwide Developer - 註:Xcode 會幫重新生回來

右上角搜尋 "developer",把看到的全部砍掉 - 註:Xcode 會幫重新生回來

左邊選取「登入」,把裡面的全砍(砍不掉的就算了) - 註:這個重新登入就會重建

砍完後,重開 Xcode 在嘗試編譯看看

砍掉所有憑證,再來修改憑證權限

一樣 keychain 砍掉所有憑證

進入憑證後,修改權限為「預設」 (或者先修改為全部授權,再來改回預設)

清除 Cache (可以參考此篇:Xcode 清掉 Cache 的方法)

rm -fr ~/Library/Developer/Xcode

實際路徑:

cd /private/var/; find ./ -iname project-name

/private/var/folders/gq/pspl0mxxxxxxxxxxxxxxxxxxxxxxxx/C/com.apple.DeveloperTools/All/Xcode/EmbeddedAppDeltas/xxxxxxxxxxxxxxxxxxx/xxx.app

or /Users/user-name/Library/Developer/Xcode/DerivedData/project-name-xxx/Build/Products/Debug-iphoneos/project-name.app

rm -fr ~/Library/Caches/com.apple.dt.Xcode

砍完後,重開 Xcode 在嘗試編譯看看

綜合上述作法,再來清乾淨重開的步驟

清掉 Cache

手機砍掉 App

Xcode、手機都重開

再來重新編譯看看

相關網頁

下述摘錄自此篇:How to codesign an existing Mac OS X .app file for gatekeeper?

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

codesign --force --sign "Developer ID Application: <project-name>" /path/to/my.app # 視窗右邊會有路徑,ex: /Users/username/Library/Developer/Xcode/DerivedData/projectname-bzcwxxxxxxxxxxxxxxxxxxxxxxxx/Build/Products/Debug-iphoneos/projectname.app

下述摘錄自此篇:Xcode10 然後跑所有的 iOS 12 的手機都是iPhone has denied the launch request.

三個憑證 trust 改成 use system defaults 就好了

Developer Authentication Certification Authority

Developer ID Certification Authority

Apple Worldwide Developer Relations Certification Authority

修改所有憑證的信任狀態:鑰匙串 → 憑證 → 顯示簡介 → 信任 → 將始終信任改為使用系統預設

將 keychain 裡所有 "此憑證已經標記為受此帳戶信任" 修改為 "此證書有效",就可以正常運行。

推荐阅读更多精彩内容