Xcode 4 cho biết, đã hoàn thành việc chạy <my app> trên thiết bị được nhắm mục tiêu - Không có gì xảy ra


223

Ứng dụng không cài đặt cũng không chạy trên thiết bị của tôi. Tất cả các hồ sơ cung cấp được cập nhật. Tôi đã thử xóa và cài đặt lại chúng.

Thanh trạng thái cho thấy Xcode đang xây dựng dự án của tôi, sau đó nó báo chạy dự án của tôi, sau đó nó báo "đã chạy xong". Trong toàn bộ thời gian này, màn hình iPod vẫn có màu đen. IPod đang được phát hiện trong Trình tổ chức và tôi không thấy có gì sai với cấu hình của nó. Mọi thứ đã hoạt động hoàn hảo chỉ một vài ngày trước với Xcode 3.

Nó không hoạt động trên trình giả lập, nhưng điều quan trọng cần lưu ý là trong trình giả lập, nó dường như bị kẹt khi "Đính kèm" và trình giả lập từ chối bắt đầu.


1
Nếu bạn tạo một dự án hoàn toàn mới bằng một trong các mẫu xcode và thử chạy nó trong trình giả lập hoặc thiết bị thì nó có hoạt động không? Tôi đang cố xác định xem cài đặt / cấu hình của xcode có bị hỏng hay không nếu một cái gì đó trong ứng dụng bạn đang hỏi có ảnh hưởng đến hành vi hay không.
kennbrodhagen

2
Tạo một mẫu dự án mới và nó đã làm việc. Vì vậy, bây giờ chúng tôi biết rằng một cái gì đó phải được cấu hình sai trong dự án của tôi.
D-Nice

D-Nice, bạn đã bao giờ giải quyết điều này? Tôi đang gặp vấn đề chính xác như vậy với trò chơi của mình và tôi không thể giải quyết nó cho cuộc sống của mình.
Adam Johnson

Câu trả lời:


268

Đối với những người đọc điều này liên quan đến Xcode 4.2 và cố gắng chạy trên thiết bị cũ hơn (ví dụ: iPhone 3G, 2G, iPod 1st gen, v.v.) tôi có một giải pháp khác. Các dự án mới được tạo trong Xcode 4.2 theo mặc định chỉ định 'armv7' trong 'Khả năng thiết bị bắt buộc'. Bạn sẽ cần xóa phần này nếu muốn hỗ trợ các thiết bị chạy armv6 (ví dụ: iPhone 3G).

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

Xóa armv7 khỏi 'Khả năng thiết bị bắt buộc' trong yourProjectName-Info.plist

Bạn cũng có thể cần thay đổi cài đặt bản dựng để biên dịch với armv6 thay vì armv7.

Đây là mặc định:

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

Nhấp đúp chuột vào 'Standard (armv7)' để thêm cái khác, sau đó nhấp vào '+' trong cửa sổ bật lên và nhập 'armv6':

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

Nhấp vào thực hiện và nó sẽ trông như thế này:

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


1
Bingo: Tôi đã phải thực hiện hai bước được mô tả để chạy đúng trên iPhone 3G cũ của mình. Cảm ơn MattyG!
Ariel Malka

1
Cảm ơn rất nhiều! Tôi sẽ cho bạn 10 phiếu bầu nếu tôi có thể. Tôi đã trải qua tất cả các kịch bản trên trang này mà không có may mắn nào cả. Bằng cách nào đó, giá trị đó phải được thay đổi khi tôi nâng cấp lên XCode 4.3.
IcyBlueRose

Cảm ơn những nỗ lực của bạn để giải thích các thủ tục một cách chi tiết.
alekhine

4
Cảm ơn tôi quá! Nhiều người đã đề nghị thêm vào 'armv6', nhưng loại bỏ armv7 là mẹo!
Harry Wood

1
"Xóa armv7 khỏi 'Khả năng thiết bị bắt buộc' trong yourProjectName-Info.plist" -> Cảm ơn
Oded Regev

43

Tôi chỉ gặp vấn đề này, nhưng đối với tôi đó là vì tôi chỉ chỉ định armv7 trong các kiến ​​trúc của mình, nhưng 3G là armv6. Hãy chắc chắn rằng bạn có cả hai.


Đó là nguyên nhân chính đối với tôi. Vì vậy, dễ dàng để quên nó. Cảm ơn.
Lukasz

5
Để thêm tùy chọn "armv6", hãy xem điều này: stackoverflow.com/questions/7488657/iêu
pauloya

IPod Touch cũ của tôi cũng phải là armv6 vì bản sửa lỗi này cũng hoạt động với nó.
progrmr

Vâng, tôi khá chắc chắn rằng iPhone ban đầu, 3G và hai lần chạm iPod đầu tiên là armv6.
axiixc

21

Tôi đã gặp vấn đề này và hóa ra XCode đã mặc định Mục tiêu triển khai thành 4.3, trong khi điện thoại của tôi là 4.2.1. Thay đổi Target Deployment thành 4.0 dường như giải quyết nó.


Chính xác những gì tôi đang tìm kiếm.
bỏ trốn

Tôi gặp vấn đề này khi đặt mục tiêu triển khai thành 5.1 khi thiết bị của tôi chỉ tối đa 5.0.1 - chúc mừng người bạn +1
theiOSDude 16/03 '

12

Sau khi bạn thêm "armv6" vào kiến ​​trúc của Dự án và Mục tiêu, hãy đảm bảo bạn không có "armv7" trong phần "Khả năng thiết bị bắt buộc" trong thông tin của bạn. Nếu vậy chỉ cần loại bỏ nó và nó sẽ làm việc!


Yup, đây là lý do cho trường hợp của tôi. Không biết làm thế nào "khả năng thiết bị cần thiết" của armv7 có được trong bản chính. Cảm ơn!
GeneCode

11

Vấn đề tương tự ở đây với ứng dụng không chạy trên thiết bị. Xóa ứng dụng khỏi thiết bị không giúp được gì. Dự án -> Làm sạch sau đó Dự án -> Chạy lại cũng không giúp được gì. Hóa ra chỉ cần Thoát và khởi động lại Xcode 4 đã giải quyết nó.


9

Tôi chỉ có điều này quá. Tôi đã thêm phần UIRequiredDeviceCapabilities vào info.plist, yêu cầu bộ trò chơi và ứng dụng sẽ không được sao chép vào iPhone 3G chạy iOS 4.2. Loại bỏ khả năng cần thiết, tất cả đều tốt.


Làm thế nào bạn có thể kiểm tra các ứng dụng yêu cầu bộ trò chơi trên chính thiết bị?
Cướp

Bạn vẫn nhận được GameCenter mà không cần thông tin của bạn. Người chơi nói rằng bạn cần một thiết bị có nó. Bất kỳ thiết bị nào chạy 4.2 đều có GameCenter, vì vậy không cần thêm thông tin. Tôi cần "Tôi cần nó!"
Graham Perks

6

Hãy thử xóa ứng dụng trên thiết bị (giống như gỡ cài đặt ứng dụng thông thường của bạn) và chạy lại từ Xcode. Giúp tôi với cùng một vấn đề, ngoài việc giả lập không hoạt động.


Không còn dấu vết của ứng dụng trên thiết bị nữa. Tôi không còn nghĩ rằng đây là vấn đề cung cấp ... có gì đó đã bị hỏng trong dự án của tôi, nhưng tôi không biết nó có thể là gì.
D-Nice

6

Trường hợp của tôi: Tôi đặt nhầm: Khả năng của thiết bị bắt buộc -> gia tốc kế thành NO (trong Info.plist). Chỉ cần đặt lại thành CÓ

Ngoài ra: Đảm bảo rằng các khả năng của thiết bị Bắt buộc thuộc loại thích hợp: ví dụ Boolean hoặc String. Loại sai sẽ luôn khiến thử nghiệm thất bại và ứng dụng không tải được.


4

Đối với những người vẫn còn đang bối rối, một điều khác mà tôi phải làm là đặt tên sản phẩm của mục tiêu giống với cấu hình Gỡ lỗi và Phát hành. Nó đã "chạy" phiên bản Debug mà tôi không xây dựng.


4

Thêm kiến ​​trúc armv6 đã sửa lỗi này cho tôi.


đây là nó cho tôi; phiên bản mới của Xcode quyết định xóa armv6 khỏi cài đặt bản dựng 'Architectures', do đó bạn sẽ cần phải thêm lại thủ công

2

Xảy ra với tôi đôi khi là tốt. Làm sạch (Menu sản phẩm -> Làm sạch) và chạy (Menu dự án -> Chạy) luôn sửa nó.


Cảm ơn! Điều này xảy ra thường xuyên. Mỗi lần tôi thử một cái gì đó mới! Đây có phải là một lỗi trong Xcode?
Namratha

2

Tôi gặp vấn đề tương tự: di chuyển một dự án từ xcode3 sang xcode4 và sau khi xây dựng ứng dụng, xcode không muốn cài đặt và khởi động Ứng dụng trên điện thoại của tôi.

Giải pháp của tôi (điều đó hiệu quả với tôi) là:

  • Chỉnh sửa lược đồ của bạn (có nghĩa là được chạy)
  • Trong danh sách bên trái, chọn 'Chạy xyz.app'
  • Trong tab thông tin, tại Executable tôi đã chọn '.app'. Thay đổi điều này bằng cách duyệt đến thư mục xây dựng của bạn và chọn ứng dụng của bạn.

Làm việc cho tôi và từ giờ trở đi tôi có thể sử dụng: 'Sản phẩm -> Thực hiện hành động -> Chạy mà không xây dựng', để chạy bản dựng mới nhất. Việc này nhanh hơn sau đó chỉ cần nhấn Run, vì sẽ không có hành động xây dựng nào được thực hiện.


không có thư mục xây dựng cho tôi? kỳ dị.
Sam Jarman

1

Chỉ cần khởi động lại thiết bị. Làm một dự án sạch sẽ. Xóa ứng dụng khỏi thiết bị và Rebuild.


0

Xây dựng cài đặt là khác nhau cho các dự án và mục tiêu. Tôi chỉ cần nhấn suppr trên Build Products Path và Middle Build Files Path trong cả hai phần và nó đã giải quyết vấn đề của tôi.


0

Tôi gặp vấn đề tương tự với dự án trò chơi của mình khi sử dụng Cocos2D. "Xin chào thế giới" từ mẫu hoạt động tốt, dự án của tôi hoạt động tốt trong trình giả lập, nhưng chạy không thành công trên thiết bị với thông báo: "Đã chạy xong".

Tôi đã thay thế Info.plist trong dự án của mình bằng dự án ban đầu từ mẫu và điều đó hiệu quả với tôi!


0

Tôi đã trải nghiệm điều này hai lần với hai ứng dụng khác nhau khi chuyển sang phiên bản Xcode gần đây nhất. Lần đầu tiên, những gì làm việc là biên dịch ứng dụng với trình biên dịch LLVM GCC. Lần thứ hai, những gì hoạt động là thêm lại vào kiến ​​trúc armv6 như một kiến ​​trúc được hỗ trợ vì nó đã bị xóa khi Xcode tự động cập nhật dự án.


0

Tôi đã giải quyết điều này bằng cách thay đổi "gia tốc kế" từ "KHÔNG" thành "CÓ" trong Info.plist của tôi.

Tham chiếu khóa danh sách tài sản thông tin của Apple nói rằng bạn có thể xóa hoàn toàn cài đặt "gia tốc kế" nếu "ứng dụng của bạn chỉ phát hiện thay đổi hướng thiết bị".


Ứng dụng của bạn có hỗ trợ gia tốc kế không?
mac

0

Giải pháp của tôi là thêm UIInterfaceOrientationPortraitvào UISupportedInterfaceOrientationsmảng trong Info.plist, mặc dù ứng dụng của tôi không hỗ trợ chân dung.


0

Một lĩnh vực được gọi là "Ứng dụng yêu cầu môi trường iPhone" bằng cách nào đó đã đi vào mục đích của tôi. Tôi loại bỏ nó và thì đấy! Nó chạy trên iPod của tôi.


0

Info.plist của tôi đã đặt thành viên mục tiêu cho mục tiêu xây dựng của tôi. Loại bỏ nó khỏi thành viên mục tiêu đã giải quyết vấn đề.


0

Tôi đã sử dụng tên thay thế cho Info.plist nhưng chưa đặt chính xác cài đặt bản Info.plist Filedựng cho mục tiêu của mình. Tôi đã phát hiện ra điều này bằng cách nhìn vào Gói ứng dụng và thấy rằng nó không chứa Info.plist.


0

Đảm bảo rằng phiên bản mục tiêu triển khai là <= phiên bản iOS trên thiết bị của bạn. Đây là cách tôi giải quyết vấn đề này.


0

Tôi đã có cùng một vấn đề trong khoảng 45 phút bây giờ. Làm sạch không giúp đỡ, tạo lại dự án không giúp đỡ, phiên bản cánh tay không giúp đỡ. Tôi đã mở một số tin nhắn "Không thể đồng bộ hóa với iTunes" mà tôi không thấy trước đây. Nhấp vào OK trên những người dường như đã khắc phục vấn đề :(


0

XCode xây dựng, chạy và hoàn thành nhưng ứng dụng không được triển khai và thậm chí không được sao chép vào thiết bị.

Trong thực tế, cần có một cái gì đó trong dự án XCode bị hỏng. Động thái tốt nhất là xây dựng một dự án mới từ đầu. Đừng quên thêm hỗ trợ armv6 như đã nêu trong bài viết trước.

Nó hoạt động tốt cho tôi!


0

Điều này xảy ra với tôi khi cố chạy ứng dụng watchOS trên thiết bị, vì phiên bản watchOS của Apple Watch của tôi cao hơn so với Xcode hiện được cài đặt của tôi được hỗ trợ. Tôi đã nâng cấp lên Xcode mới nhất (cũng yêu cầu tôi nâng cấp lên macOS mới nhất) và nó đã chạy tốt sau đó .

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.