2015-05-03 1 views
1

Я новичок в Swift, и у меня уже возникла проблема.iOS с Swift: «_main», ссылка из: неявная запись/запуск для основного исполняемого файла

Я не могу запустить приложение IOS написано в Swift из-за ошибки :

Undefined symbols for architecture x86_64: 
"_main", referenced from: 
implicit entry/start for main executable 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

У меня есть AppDelegate.swift

import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     window = UIWindow(frame: UIScreen.mainScreen().bounds) 

     var homeChainingViewController = HomeViewController(nibName: "HomeViewController", bundle: nil) 

     var navigationController = UINavigationController(rootViewController: homeChainingViewController) 

     window?.rootViewController = navigationController 
     window?.makeKeyAndVisible() 

     return true 
    } 

    func applicationWillResignActive(application: UIApplication) { 
     // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 
     // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 
    } 

    func applicationDidEnterBackground(application: UIApplication) { 
     // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
     // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 
    } 

    func applicationWillEnterForeground(application: UIApplication) { 
     // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 
    } 

    func applicationDidBecomeActive(application: UIApplication) { 
     // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
    } 

    func applicationWillTerminate(application: UIApplication) { 
     // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
    } 


} 

Кроме того, у меня есть Построить Фаз:

Build Phases

Я попытался чистое здание:

  • Cmd + Shift + K
  • Cmd + Alt + Shift + к
  • удалить полученные данные

Несмотря на это, Я не могу загрузить приложение из-за предыдущей ошибки.

Где находится проблема и как ее решить ?!

ответ

1

Линия Copy Bundle Resources на изображении, которое вы указали, является неправильной. И приложения iOS находятся в архитектуре Arm, а не в x86!

Чтобы сделать приложение iOS в Xcode, выполните File - New - Project - iOS - Приложение. Выберите Single View Application, если вы не знаете, что попробовать, просто для начала. Если ваша сборка жалуется на архитектуру x86, вы должны пытаться создать для Mac, а не iOS.

Строка Copy Bundle Resources при создании для iOS или Mac имеет минимум 2 элемента для копирования для автоматически созданного проекта.

+0

Сначала я создал проект с одним представлением iOS. Есть ли способ исправить это, не используя проект с нуля? –

+0

Я действительно не знаю, как вы создали первый проект, так что трудно сказать. Если вы сразу откроете оба проекта в Xcode, вы можете перетащить файлы из исходного проекта в новый проект, в Xcode, и Xcode поймет, что вы хотите включить новые файлы и затем добавить в сборку. – emrys57

+0

Я создал проект с нуля, а затем успешно построил. Затем создайте несколько папок в каталоге проекта и переместите туда исходные файлы. После этого я включил эти папки в проект и выбрал новый каталог файлов .plist. После этого я снова получаю ту же ошибку ... –

2

Я просто попал в ту же проблему.

В AppDelegate мне удалось потерять аннотацию @UIApplicationMain.

например. Что должно было быть:

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 
... 
Смежные вопросы