Xcode đột nhiên dừng chạy dự án trên phần cứng: Không thể khởi chạy xxx.app: .. Không có tệp nào như vậy .. '[đóng]


139

Xcode đã ngừng khả năng chạy ứng dụng của tôi, nó đã khởi động trực tiếp sau khi tôi xóa nó khỏi thiết bị và cố gắng cài đặt lại bằng cách chạy lại nó trong Xcode (điều mà tôi đã làm hàng trăm lần trước đây).

Nó nói rằng

"Không thể khởi chạy XXX.app"

"Không có tập tin hoặc thư mục nào như vậy

Tôi đã khởi động lại điện thoại, khởi chạy lại Xcode, dọn dẹp mọi thứ, xây dựng lại mọi thứ. Thông báo lỗi này sẽ không biến mất.

Đây là với Xcode 4.5 mà tôi đã sử dụng kể từ khi nó trở nên khả dụng, nếu tôi trở lại 4.3.2 thì Xcode sẽ nói "Hoàn thành chạy ứng dụng" nhưng thực tế nó không làm gì cả - ứng dụng không được cài đặt cũng không chạy.

Tôi hoàn toàn bị mắc kẹt - không thể chạy bất cứ thứ gì trên thiết bị nữa.

Bất kỳ đề xuất?


4
Goto Trình tổ chức trong xcode của bạn, nhấn tab dự án và xóa dữ liệu dẫn xuất cho dự án của bạn và dọn sạch dự án và xây dựng lại ..
Dinesh Raja

2
Vẫn nhận được điều tương tự sau khi làm điều đó. Tôi sẽ thử cài đặt lại Xcode.
Gruntcakes

Tôi nghĩ rằng bạn đã thay đổi một cái gì đó trong cài đặt bản dựng của mình trong đường dẫn để chạy ứng dụng của bạn trên thiết bị
Dinesh Raja

9
Tôi đã tìm ra nó là gì - trong khi thêm các khả năng của thiết bị vào thông tin. Tôi đã thêm một hàng mới nhưng không cho nó một giá trị.
Gruntcakes

1
Trong khi xóa dữ liệu dẫn xuất cuối cùng cũng có tác dụng với tôi, nó không giúp ích gì cho đến khi tôi khởi động lại iPad và OS / X, dọn sạch rác sau khi sử dụng Finder để xóa dữ liệu dẫn xuất và xóa thiết bị ngoại vi BLE được kết nối qua cổng USB. Tôi không biết bước nào được yêu cầu - XCode sau đó được biên dịch với thiết bị ngoại vi BLE được đính kèm - nhưng một khi tất cả các bước đó được thêm vào để xóa dữ liệu dẫn xuất, dự án đã được biên dịch tốt.
Mike

Câu trả lời:


125

Điều đó thực sự gây phiền nhiễu. Lỗi này xảy ra trong một số tình huống khác nhau. Đôi khi khởi động lại Xcode, khắc phục sự cố. Nếu không, hãy làm theo các bước sau:

Ngắt kết nối thiết bị của bạn.

Xóa ứng dụng khỏi thiết bị của bạn.

Thoát Xcode (Không chỉ đơn giản là đóng cửa sổ, thoát nó)

Xóa thư mục dữ liệu dẫn xuất ( ~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffp- hoặc một cái gì đó tương tự)

Bây giờ bắt đầu Xcode một lần nữa, kết nối thiết bị và chạy dự án. Nó sẽ hoạt động tốt.

từ blog DhilipSiva


4
Đây là chìa khóa cho tôi. Đánh giá cao mức độ chi tiết trong câu trả lời.
Jason Pawlak

Chỉ là một trong những điều "thực sự khó chịu" khi làm việc trên nền tảng này
vội vàng

2
không hoạt động ... tôi đang chạy trên thiết bị
Rajneesh071

Các bước trên không giải quyết được vấn đề. Tôi vẫn nhận được "Không thể chạy <app>. <Ứng dụng> không tìm thấy".
dùng298261

làm việc cho tôi, hãy thử cái này
Muhammad Waqas

57

Hãy thử xóa "Khả năng của thiết bị bắt buộc" trong tệp -Info.plist.

Bạn không thể yêu cầu armv7 trên 3G và bạn không thể yêu cầu armv6 trên bất kỳ thiết bị mới hơn, vì vậy chỉ cần xóa hoàn toàn thuộc tính này.


2
Đây là cách duy nhất làm việc cho tôi. Đã cố gắng làm mới chứng chỉ, làm sạch thư mục khởi động lại thiết bị, xcode và mac không giúp được gì. Chỉ cần xóa thuộc tính và nó được cài đặt và hoạt động tốt.
Automaticoo

1
Giải pháp này cũng làm việc cho tôi - lỗi kỳ lạ.
sai

Tôi cũng phải đảm bảo các kiến ​​trúc hợp lệ trong thiết lập bao gồm armv6, armv7 và armv7 (Tôi đang sử dụng XCode 4.5 bây giờ ... Tôi biết điều này đã được một vài tháng, nhưng nó đáng được đề cập.) trong phần Kiến trúc là tốt.
David Morton

Đã thử điều này, không có niềm vui nhưng câu trả lời Sudhakar + Jagger đã hoạt động. Xcode 4.5.1 và iPad1
mm2001

Đây là vấn đề đối với tôi: ứng dụng của tôi có "điện thoại" như một khả năng cần thiết và tôi đã cố chạy ứng dụng trên một chiếc iPad mini chỉ có WiFi.
chitza

38

Tôi tìm thấy câu trả lời. Phiên bản của mục tiêu triển khai iOS không giống với phiên bản HĐH của thiết bị của tôi.


Đã làm điều đó cho tôi quá. Vì một số lý do, XCode luôn muốn đặt lại mục tiêu triển khai dự án của tôi thành 6.0.
Donald Burr

3
cũng làm việc cho tôi ... Tôi đã thay đổi loại Thiết bị từ "iPhone" thành "Phổ quát" và xcode tự động thay đổi mục tiêu thành 6.0 mà lúc đầu tôi không nhận thấy. Chuyển về 4.3 và nó hoạt động ...
Jim Jose

Quá tệ khi loại bỏ DerivingData và các khả năng thiết bị cần thiết không giúp ích được gì, vì vậy tôi đã đặt mục tiêu triển khai của mình từ 6.1 đến 5.0 và nó hoạt động trên iPod Touch của tôi chạy iOS 5.1.
Richard Altenburg - Brainchild

trời ơi bao nhiêu lần tôi sẽ làm điều tương tự thất bại ...
thập lục phân

đây là giải pháp cho tôi
GeorgeBuckingham

13

Đầu tiên đã thử một số cách ở trên với info.plists và xóa dữ liệu dẫn xuất, xóa, v.v.

Giải pháp của tôi: bỏ XCode, mở lại dự án. Chuyển đến dữ liệu dẫn xuất trong Finder. Đã xóa dữ liệu cho tất cả các dự án (tất cả đều là rác, nhưng tôi sẽ thử xóa dự án gặp rắc rối của bạn trước). Và sau đó nó hoạt động trở lại. Xóa dữ liệu dẫn xuất từ ​​XCode không hoạt động.


4
Đường dẫn đến thư mục dữ liệu dẫn xuất: / Users / <User> / Library / Developer / Xcode / DeruredData /
Pascalius

điều này đã giải quyết vấn đề của tôi + Xóa tất cả các thư mục giải phóng 10 GB bộ nhớ để nhân đôi cảm ơn :)
thesummersign

10

Sau đây đã giải quyết vấn đề của tôi ... ứng dụng của tôi đã làm việc cho tôi trong việc gỡ lỗi / phát hành, sau đó tôi đã xây dựng một vài kho lưu trữ đặc biệt và các bản dựng gỡ lỗi / phát hành ngừng hoạt động.

Triệu chứng:

  • lỗi quyền lợi không hợp lệ khi khởi chạy từ Xcode sang thiết bị (chơi với quyền lợi ...)
  • hủy bỏ ngay lập tức mà không có lỗi (chạy xong) khi chạy trình giả lập
  • không thể khởi chạy ... thư mục blabla ... / build / sản phẩm / debug-iphoneos / ... không tìm thấy khi khởi chạy từ Xcode sang thiết bị.

Cuối cùng, sau khi cố gắng hưởng lợi từ nỗi đau của người khác, tôi đã tìm thấy trong Mục tiêu [AppName]:

Build Settings
Build Locations
Build Products Path build

nên là

Build Products Path build/Products

Không biết làm thế nào điều này đã được đặt không chính xác. Điều này phải được mã hóa cứng ở đâu đó trong Xcode / Springboard vì 'Sản phẩm' xuất hiện trong cả Xcode và trong Bảng điều khiển thiết bị. Đây là Xcode 4.5.1.

ảnh chụp màn hình cho nơi đặt bản dựng / Sản phẩm


1
Bạn có thể định dạng để làm cho ý nghĩa rõ ràng hơn một chút? Không rõ ràng làm thế nào nó nên được nhập.
itbruce

1
Wow, cảm ơn rất nhiều Keith. Sau 4 giờ bực bội, hóa ra đây là nguyên nhân. Làm thế nào trên thế giới nó đã thay đổi là ngoài tôi.
karl_

1
Vâng, nó đã giải quyết vấn đề của tôi, nhưng tại sao điều này lại xảy ra?!
Ali

7

Tôi đã giải quyết vấn đề này bằng cách

đổi tên một thư mục trên dự án XCode của tôi

Thay đổi tên của dự án trong XCodecố định nó cho tôi.

Trong XCode, bên dưới Project Navigator, bấm vào tên dự án và nó sẽ cho phép bạn đổi tên nó giống như một tệp trong Finder. Xóa dữ liệu dẫn xuất không giúp được gì.


Điều đó đã làm điều đó cho tôi, vì một số lý do nó đã thất bại khi tôi có một khoảng trắng trong tên dự án. Đổi tên thành không có khoảng trắng và nó chạy tốt.
rita

6

Tôi đã xây dựng Dự án XCode của mình bằng CMake và bằng cách nào đó, nó (hoặc bản thân ngu ngốc của tôi) đã xóa hoặc làm trống tài sản "Tệp thực thi" trong thông tin.plist. Tôi đặt lại thành $ {EXECUTABLE_NAME} và nó hoạt động trở lại.

Tôi đã thực sự mất rất nhiều thời gian để làm việc thông qua tất cả các đề xuất và sửa chữa cho đến khi cuối cùng tôi tìm thấy vấn đề đó.

Hy vọng điều này sẽ giúp một số người đấu tranh với cùng một vấn đề

Biên tập:

Đó là một cách nào đó CMake làm rối tung tập tin plist của tôi. Tôi đã tạo Info.plist của riêng mình và sử dụng nó theo cách sau:

SET_TARGET_PROPERTIES( MyApp PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/MyApp.plist )

Trong danh sách của tôi, tôi đã có mục này:

<key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string>

Thật không may, CMake dường như vẫn phân tích tệp đó và thay thế $ {EXECUTABLE_NAME} bằng một chuỗi rỗng do cú pháp biến CMake của nó. Công việc nhanh chóng của tôi là như sau:

SET( EXECUTABLE_NAME "\${EXECUTABLE_NAME}" )

Bây giờ nó hoạt động như một nét duyên dáng.

Tôi có lẽ chỉ có một mình với chính xác vấn đề này, nhưng ai biết được.


Đẹp. Tôi đã vô tình xóa tệp .plist của mình và đây là một trong những thuộc tính tôi cần để thêm lại. Cảm ơn

Các set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")chính xác là những gì tôi cần. Tôi đã thêm dòng này ở dưới cùng của tệp công cụ ios của tôi và nó đã sửa nó hoàn hảo. Cảm ơn nhiều!
Deathicon

5

Tôi đã có cùng một vấn đề, nhưng trong trường hợp của tôi, tôi đã có một yêu cầu sai trong thông tin của mình.plist (yêu cầu con quay hồi chuyển cho iPhone 3Gs)


4

Tôi đã cố gắng chạy dự án của mình trên một hệ thống khác ngoài hệ thống mà nó được phát triển. Tôi đã nhận được Không thể khởi chạy xxx.app: .. Không có tệp nào như vậy ...

Đã xóa ứng dụng khỏi thiết bị và sau đó xóa dữ liệu dẫn xuất khỏi trình tổ chức trong xcode cho ứng dụng. Người tổ chức -> Dự án -> Đã tạo DAta -> Xóa

Vấn đề của tôi đã được giải quyết.


4

Bạn cần đặt mục tiêu triển khai LOWER hơn phiên bản thiết bị của bạn


4

Đối với tôi, giải pháp chỉ là sử dụng hồ sơ cung cấp chính xác (không phân phối).

Tôi đã mặc định luôn sử dụng hồ sơ cung cấp ad hoc của mình, nhưng sau đó tôi đã đổi sang sử dụng hồ sơ nhà phát triển (hồ sơ nhóm) và điều đó đã giải quyết được mọi việc. Tôi đã tiếp tục và dọn dẹp thư mục Dữ liệu được tạo ra để an toàn nhưng tôi không biết chắc chắn nếu nó được yêu cầu.

XCode đã từng có một cảnh báo yêu cầu bạn sử dụng hồ sơ cung cấp chính xác nhưng thông báo lỗi đó dường như đã biến mất trong XCode 4.5.


Đây chắc chắn là một nhược điểm của lỗi và sửa lỗi, rõ ràng rất nhiều lỗi XCode bị văng vào thông báo lỗi không hữu ích này. Đối với chúng tôi, thời gian này, và một vài điều nữa bên dưới, dường như là do vấn đề về chứng chỉ / ký / hồ sơ, Toss một vài trong số những người cũ đã hết hạn và đảm bảo rằng tôi đang sử dụng cùng một hồ sơ ở mọi nơi, (như Jabolcnik bên dưới , Tôi có một số tài khoản nhà phát triển, chủ nhân của tôi và của riêng tôi.) Cho phép XCode chạy ứng dụng trên thiết bị.
Taryn

4

Tôi đã có vấn đề này bằng một giải pháp rất lạ.

Vấn đề của tôi hơi khác một chút vì tôi có 2 chứng chỉ Nhà phát triển trong Keychain. Chúng tôi có hai tài khoản nhà phát triển (giả sử AD và BD).

1) Tôi đã thay đổi định danh Bundle từ com.BD.game thành com.AD.game 2) Thiết bị mà tôi gặp sự cố chỉ được đăng nhập trong hồ sơ cung cấp AD. 3) Tôi không thể gỡ lỗi trò chơi trên iPad - mặc dù thiết bị có hồ sơ cung cấp hợp lệ, tôi có chứng chỉ hợp lệ, tôi đã khởi động lại Mac, thiết bị, cài đặt lại Xcode ... không có gì giúp được.

Làm những gì tôi đã làm hôm nay là kiểm tra tệp project.pbxproj cho bất kỳ mục lạ nào.

Những gì tôi tìm thấy là Xcode đã sử dụng hồ sơ cung cấp phù hợp, nhưng đã ký ipa / ứng dụng với chứng chỉ sai.

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: **BD** (XX******)";

Sau khi tôi thủ công sửa tên và id; mọi thứ hoạt động như sự quyến rũ.


4

Tôi đã nhận được cùng một lỗi. Trong trường hợp của tôi, tôi đã đặt mục tiêu triển khai là 6.1 và cố gắng chạy iPad iOS 5.1. Khi tôi thay đổi mục tiêu triển khai thành 4.3, vấn đề đã được giải quyết.


Vẫn có vấn đề. Hãy thử điều này Ngắt kết nối thiết bị của bạn. Xóa ứng dụng khỏi thiết bị của bạn. Thoát xcode. Bây giờ bắt đầu Xcode, kết nối thiết bị và chạy dự án. Nó sẽ hoạt động tốt.


4

Đối với tôi (sử dụng iOS 7 và Xcode 5), lỗi đã biến mất ngay sau khi tôi thực hiện "Thêm vào Trung tâm thành viên" với thiết bị của mình trong Trình tổ chức.


Điều này đã giúp. Tuy nhiên tôi cần phải khởi động lại thiết bị sau đó để thoát khỏi lỗi.
Bouncing Bit

3

Tôi muốn đề cập rằng cách dễ nhất để mở thư mục DeruredData trong Finder là như sau:

  1. Mở Trình tổ chức.
  2. Nhấp vào "Dự án".
  3. Chọn dự án có vấn đề của bạn.
  4. Bên cạnh đường dẫn của DerivingData, nhấp vào nút mũi tên phải nhỏ.

Xóa nội dung của thư mục DerivingData làm việc cho tôi. Thay vì sử dụng nút "Xóa ...", bạn nên xóa các tệp theo cách thủ công thông qua Finder.


3

Truy cập: Mục tiêu dự án của bạn -> Thông tin và từ Thuộc tính mục tiêu iOS của CustoM loại bỏ Khả năng thiết bị cần thiết. Trong trường hợp của tôi đó là armv7 và armv7s.

Sau đó, ứng dụng được xây dựng thành công trên iPhone 4 của tôi.

Đây là cách nó trông sau khi tôi loại bỏ cả hai yêu cầu


Tôi đã gặp vấn đề tương tự, ứng dụng sẽ chạy trên 5S của tôi lần đầu tiên nhưng không phải lần sau, hóa ra Khả năng thiết bị cần thiết của tôi được đặt thành "armv7", loại bỏ nó khỏi phần cố định thông tin được sửa
Cam Saul

2

Đối với tôi, tôi quên rằng tôi đã có "điện thoại" trong "Khả năng của thiết bị bắt buộc" trong thông tin. Đã xóa nó và cuối cùng nó cũng hoạt động trên iPad của tôi.


2

Đối với tôi, việc khởi động lại Xcode, việc dọn dẹp DeruredData và thiết bị phục hồi là không đủ trong hầu hết các trường hợp, cho đến khi tôi phát hiện ra rằng iTunes cũng đang chạy và sau khi thoát iTunes, mọi thứ đều hoạt động tốt!

Vì vậy, các bước của tôi bây giờ rất đơn giản:

1. Thoát Xcode.
2. Nếu iTunes đang chạy, hãy thoát iTunes.
3. Mở lại dự án.

Không cần xóa ứng dụng khỏi thiết bị, dọn dẹp dự án hoặc khởi động lại / ngắt kết nối thiết bị. Tôi nghĩ đó là vì Xcode và iTunes sử dụng một số thư viện phổ biến (như bạn biết, Trình cài đặt Xcode luôn yêu cầu thoát iTunes khi cài đặt SDK iOS).


2

Tôi đã gặp vấn đề này và đã thử một số đề xuất không phù hợp với mình - sau đó tôi đã tìm thấy một gợi ý về việc xóa "Khả năng thiết bị bắt buộc" trong tệp -Info.plist (trong đó bao gồm cả dịch vụ định vị & gps) Điều đó đã làm việc! Sau đó tôi đã thêm lại chúng và nó vẫn hoạt động .. đi con số. Đây là xCode 4.6.1 và ứng dụng của tôi là nhà phát triển với Phonegap / Cordova


Tôi cũng tìm thấy chuỗi rỗng ở đó và nó đã chặn tổ chức! Cảm ơn vì tiền hỗ trợ !
PetrV

2

Tôi đã thử tất cả các cách trên và nó vẫn không chạy. Tôi đã khắc phục vấn đề bằng cách thay đổi vị trí xây dựng dẫn xuất. Tệp> Cài đặt dự án> "vị trí dữ liệu dẫn xuất" thay đổi thành tương đối dự án. Hoặc bạn chỉ có thể đảm bảo đường dẫn mặc định có quyền đọc / ghi.


1

Vấn đề của tôi dường như là chọn chọn Portrait (nút home trên cùng) làm Mục 0 trong định hướng Giao diện được hỗ trợ trong phần chính của tôi. Loại bỏ điều đó hoặc di chuyển nó xuống dường như để khắc phục vấn đề của tôi. Đi hình.


1

Tôi cũng gặp vấn đề này đối với một ứng dụng Universal có Xcode 4.5 trên iPhone của tôi, nơi tôi có hai thiết bị gỡ lỗi:

iPhone 4 iOS 5.1.1
iPad 1   iOS 5.1.1

Info.plist có một mục trống trong "Khả năng của thiết bị bắt buộc" Tôi biết rằng tôi đã không nhập vào mục 'Mục 0' trống này. Ứng dụng tải trên iPhone kể từ khi tôi xóa mục trống. Tôi không gặp phải vấn đề này trên bất kỳ phiên bản Xcode nào trước đó, Điều này có nghĩa là Xcode 4.5 xử lý mục 'được chèn' này khác nhau cho hai thiết bị tôi sử dụng. Tôi đã sai trước đây, nhưng điều này có vẻ như là một lỗi trong Xcode 4.5.


1

Điều này có vẻ hiển nhiên nhưng bạn cũng phải đặt mục tiêu triển khai cho hệ điều hành mà thiết bị của bạn đang chạy.

Vì vậy, nếu bạn nâng cấp lên iOS 6, nó sẽ đặt mục tiêu triển khai của bạn lên iOS 6. Bạn sẽ cần triển khai thành 5.1 nếu thiết bị bạn đang thử nghiệm vẫn chạy 5.1.


1

Vấn đề của tôi cuối cùng đã được giải quyết bằng cách kiểm tra để đảm bảo rằng productNamethuộc tính trong /* Begin PBXNativeTarget section */phần project.pbxprojtệp của tôi khớp với namethuộc tính.

Sau khi chỉnh sửa sao cho giống nhau, Xcode cuối cùng cũng chạy ứng dụng trên thiết bị của tôi một cách chính xác!

Cảm ơn Max Weisel đã giúp tôi! : D


1

Xóa thư mục dữ liệu dẫn xuất không giúp tôi. Sử dụng Xcode 4.4.2, giải pháp duy nhất là mở Trình tổ chức và xóa các hồ sơ cung cấp cũ và hết hạn trên iDevice. Sau đó, mọi thứ hoạt động hoàn hảo một lần nữa.


Đây chắc chắn là một nhược điểm của các lỗi và sửa lỗi, rõ ràng rất nhiều lỗi XCode đã văng xuống vùng đất không có người này.
Taryn

1

Đây có thể là một cá trích đỏ, nhưng tôi đã gặp phải những vấn đề này khi tôi thêm hình ảnh khởi chạy tùy chỉnh trước khi xóa những cái mặc định. Xóa các hình ảnh khởi chạy và tùy chỉnh mặc định và sau đó thêm lại trong các tùy chỉnh đã sửa nó cho tôi. Tôi đang làm việc với iOS 6 và Xcode 4.5.2


1

Dường như có một vài điều khác nhau có thể gây ra thông báo lỗi rất hữu ích này.

Đối với tôi, đó là một "Khả năng thiết bị bắt buộc" không chính xác trong Info.plist. Tôi đã thêm một mục mảng trống do nhầm lẫn (trên đỉnh của kiến ​​trúc, armv7). Đã xóa mục mảng trống và bây giờ mọi thứ đều ổn!


1

Tôi đã có vấn đề này và không có gì thực sự có ích ngoại trừ: Vấn đề của tôi bắt đầu sau khi thay đổi nội dung thông tin của tôi. Không có sự hoàn nguyên nào giúp được.

Điều giải quyết nó cho tôi là:

  1. Tạo một thông tin vanilla trong một dự án hoàn toàn mới
  2. thay thế thông tin cũ.plist bằng cái mới
  3. đổi tên nó (như app_info.plist)
  4. Đặt Cài đặt xây dựng / Đóng gói / INFOPLIST_FILE thành cài đặt mới.
  5. Thực hiện tất cả các thay đổi bạn cần cho dự án của bạn

Mong rằng sẽ giúp. Tôi đã thử mọi thứ khác được đề xuất ở đây và đây là giải pháp duy nhất cho tôi.


1

Đối mặt với vấn đề tương tự nhưng bây giờ vấn đề đã được giải quyết, tôi đã xóa thông tin Executable file . Tôi đặt lại thành $ {EXECUTABLE_NAME} và nó hoạt động trở lại .. :)

nhập mô tả hình ảnh ở đây


1

Trong trường hợp của tôi, tôi chỉ cần đặt quyền 777 trực tiếp vào thư mục xxx.app cho tất cả các tệp và hoạt động!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.