使用 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 裡所有 "此憑證已經標記為受此帳戶信任" 修改為 "此證書有效",就可以正常運行。
- 三個憑證 trust 改成 use system defaults 就好了
- iOS 12 iPad Denied Launch Request - Xcode
- 真機提示 iPhone has denied the launch request 問題
- 使用 Developer ID 為 Mac app 簽名
- Code Signing - Support - Apple Developer
- Code Signing Tasks