Сбой сборки/запуска Nativescript iOS на устройстве

У меня возникла проблема с запуском приложения (в частности, шаблона HelloWorld) на моем iPhone через Nativescript. Сборка/запуск Android работает безупречно, но заставить работать аналог iOS было кошмаром. Для фона я использую последнюю версию macOS (High Sierra) и последнюю версию XCode. Проблема в том, что всякий раз, когда я пытаюсь собрать, мне говорят, что XCode 8 требует teamid (имейте в виду, я также использую XCode 9). Затем сборка аварийно завершает работу и выдает результат, указанный ниже. Я видел, как люди обсуждали ручную вставку своего идентификатора команды в файл конфигурации, однако, поскольку я не зарегистрирован в программе для разработчиков, у меня нет идентификатора команды. Должен ли я регистрироваться в программе за 99 долларов только для того, чтобы запустить что-то на своем устройстве? У меня есть сертификат разработчика, настроенный в XCode, и я пытался создать временные профили подготовки в Sidekick, но, несмотря на это, я все еще получаю эту ошибку. Кроме того, некоторые люди предлагают открыть реальный проект приложения XCode, однако я даже не могу его открыть, так как он сразу же приводит к сбою XCode после нажатия. В чем тут может быть дело? Почему это не так просто, как процесс сборки/запуска Android? Кроме того, эмулятор также не работает, поскольку он выдает множество сообщений об ошибках, но это не было бы хорошей идеей для начала из-за аппаратного обеспечения моего компьютера, делающего эмулятор чрезвычайно медленным и ненадежным. Поэтому работа на моем устройстве, таком как Android, будет работать лучше всего. Вывод ниже:

jslarosmbp:HelloWorld Js$ tns run ios
Searching for devices...
Preparing project...
Project successfully prepared (iOS)
Building project...
Xcode 8 requires a team id to be specified when building for device.
You can specify the team id by setting the DEVELOPMENT_TEAM setting in build.xcconfig file located in App_Resources folder of your app, or by using the --teamId option when calling run, debug or livesync commands.
Xcode build...
2017-12-18 11:56:20.660 xcodebuild[3263:131976] [MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-13756/Xcode3Core/LegacyProjects/Frameworks/DevToolsCore/DevToolsCore/RuntimeSupport/MacroExpansion/XCMacroExpansionExtensions.mm:94
Details:  Assertion failed: [value isKindOfClass:[NSString class]] || [value isKindOfClass:[NSArray class]]
Object:   <DVTMacroDefinitionTable: 0x7fbf626a0a70>
Method:   -_xc_setValue:forMacroName:conditionSet:errorHandler:
Thread:   <NSThread: 0x7fbf60d175e0>{number = 1, name = main}
Hints: 

Backtrace:
  0   -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   _DVTAssertionFailureHandler (in DVTFoundation)
  4   -[DVTMacroDefinitionTable(XCMacroExpansionExtensions) _xc_setValue:forMacroName:conditionSet:errorHandler:] (in DevToolsCore)
  5   -[DVTMacroDefinitionTable(XCMacroExpansionExtensions) _xc_setValue:forMacroName:errorHandler:] (in DevToolsCore)
  6   __108-[DVTMacroDefinitionTable(XCMacroExpansionExtensions) xc_setMacroNamesAndValuesFromDictionary:errorHandler:]_block_invoke (in DevToolsCore)
  7   -[__NSDictionaryM enumerateKeysAndObjectsWithOptions:usingBlock:] (in CoreFoundation)
  8   -[DVTMacroDefinitionTable(XCMacroExpansionExtensions) xc_setMacroNamesAndValuesFromDictionary:errorHandler:] (in DevToolsCore)
  9   +[DVTMacroDefinitionTable(XCProjectArchivingExtensions) xc_macroDefinitionTableFromDictionaryRepresentationForProjectArchiving:usingPropertyDefinitionsFromSpecificationDomain:] (in DevToolsCore)
 10   -[PBXBuildStyle _setBuildSettings:] (in DevToolsCore)
 11   -[PBXUnarchivingBinding readValueForObject:fromPListUnarchiver:] (in DevToolsCore)
 12   -[PBXObject _unarchiveValuesForArchiveMask:fromPListUnarchiver:] (in DevToolsCore)
 13   -[PBXObject readFromPListUnarchiver:] (in DevToolsCore)
 14   -[PBXBuildStyle readFromPListUnarchiver:] (in DevToolsCore)
 15   -[PBXPListUnarchiver _unarchiveObjectWithGlobalIDHexString:] (in DevToolsCore)
 16   -[PBXPListUnarchiver _decodeMutableObjectArrayFromPListArray:] (in DevToolsCore)
 17   -[PBXPListUnarchiver decodeMutableObjectArrayForKey:] (in DevToolsCore)
 18   -[PBXUnarchivingBinding readValueForObject:fromPListUnarchiver:] (in DevToolsCore)
 19   -[PBXObject _unarchiveValuesForArchiveMask:fromPListUnarchiver:] (in DevToolsCore)
 20   -[PBXObject readFromPListUnarchiver:] (in DevToolsCore)
 21   -[PBXPListUnarchiver _unarchiveObjectWithGlobalIDHexString:] (in DevToolsCore)
 22   -[PBXPListUnarchiver decodeObjectForKey:] (in DevToolsCore)
 23   -[PBXUnarchivingBinding readValueForObject:fromPListUnarchiver:] (in DevToolsCore)
 24   -[PBXObject _unarchiveValuesForArchiveMask:fromPListUnarchiver:] (in DevToolsCore)
 25   -[PBXObject readFromPListUnarchiver:] (in DevToolsCore)
 26   -[PBXPListUnarchiver _unarchiveObjectWithGlobalIDHexString:] (in DevToolsCore)
 27   -[PBXPListUnarchiver _decodeMutableObjectArrayFromPListArray:] (in DevToolsCore)
 28   -[PBXPListUnarchiver decodeMutableObjectArrayForKey:] (in DevToolsCore)
 29   -[PBXUnarchivingBinding readValueForObject:fromPListUnarchiver:] (in DevToolsCore)
 30   -[PBXObject _unarchiveValuesForArchiveMask:fromPListUnarchiver:] (in DevToolsCore)
 31   -[PBXObject readFromPListUnarchiver:] (in DevToolsCore)
 32   -[PBXProject readFromPListUnarchiver:] (in DevToolsCore)
 33   -[PBXPListUnarchiver _unarchiveObjectWithGlobalIDHexString:] (in DevToolsCore)
 34   -[PBXPListUnarchiver decodeRootObject] (in DevToolsCore)
 35   +[PBXProject projectWithFile:errorHandler:readOnly:] (in DevToolsCore)
 36   -[Xcode3Project initWithFilePath:extension:workspace:options:error:] (in DevToolsCore)
 37   __82+[IDEContainer _retainedContainerAtFilePath:fileDataType:workspace:options:error:]_block_invoke_2 (in IDEFoundation)
 38   _dispatch_client_callout (in libdispatch.dylib)
 39   _dispatch_queue_barrier_sync_invoke_and_complete (in libdispatch.dylib)
 40   DVTDispatchBarrierSync (in DVTFoundation)
 41   -[DVTDispatchLock performLockedBlock:] (in DVTFoundation)
 42   __82+[IDEContainer _retainedContainerAtFilePath:fileDataType:workspace:options:error:]_block_invoke (in IDEFoundation)
 43   __58-[DVTModelObjectGraph performBlockCoalescingModelChanges:]_block_invoke (in DVTFoundation)
 44   -[DVTModelGraphTransactionScope performTransaction:] (in DVTFoundation)
 45   -[DVTModelObjectGraph performBlockCoalescingModelChanges:] (in DVTFoundation)
 46   +[IDEContainer _retainedContainerAtFilePath:fileDataType:workspace:options:error:] (in IDEFoundation)
 47   +[IDEContainer retainedContainerAtFilePath:fileDataType:workspace:error:] (in IDEFoundation)
 48   -[IDEWorkspace _configureWrappedWorkspaceWithError:] (in IDEFoundation)
 49   __82+[IDEContainer _retainedContainerAtFilePath:fileDataType:workspace:options:error:]_block_invoke (in IDEFoundation)
 50   +[IDEContainer _retainedContainerAtFilePath:fileDataType:workspace:options:error:] (in IDEFoundation)
 51   +[IDEContainer retainedWrappedWorkspaceForContainerAtFilePath:fileDataType:error:] (in IDEFoundation)
 52   -[Xcode3CommandLineBuildTool _resolveInputOptionsWithTimingSection:] (in Xcode3Core)
 53   -[Xcode3CommandLineBuildTool run] (in Xcode3Core)
 54  0x000000010621c2af (in xcodebuild)
 55   start (in libdyld.dylib)
Unable to apply changes on device: 5d3917082e289838a5b920f9c2xxf5c1f7804149. Error is: Command xcodebuild failed with exit code null.

Все, что может быть подробно предложено, будет с благодарностью. Благодарю вас!


person J. Squillaro    schedule 18.12.2017    source источник


Ответы (1)


Вы по-прежнему можете тестировать на реальном устройстве без регистрации в платной подписке, но вам все равно нужно будет указать свой идентификатор разработки.

См. следующие ссылки:

https://developer.apple.com/support/compare-memberships/

http://www.idownloadblog.com/2015/12/24/how-to-create-a-free-apple-developer-account-xcode/

После того, как ваши профили обеспечения установлены, вы можете увидеть их с помощью

tns run ios --provision

и развернуть ваше приложение на устройстве iOS с помощью

tns run ios --provision <your-provision-id>

В случаях, когда описанное выше не работает, вы можете открыть созданный проект iOS (файл xcodeproj в platforms/ios/build), а затем напрямую установите свой идентификатор разработки через XCode.

person Nick Iliev    schedule 20.12.2017
comment
При запуске с --provision я ничего не вижу в отображаемой таблице, и мне говорят, что также есть 0 неприемлемых профилей обеспечения. Кроме того, если я попытаюсь открыть файл xcodeproj вручную, он откроет xcode, а затем вылетит. Однако xcode стабилен для всего остального, кроме этого. Я следовал руководству и создал сертификат, но фактический идентификатор предоставления не упоминается. Есть ли другие вещи, которые могут пойти не так? Что бы я ни делал, iOS не будет работать с NativeScript. - person J. Squillaro; 21.12.2017
comment
NativeScript только что выпустил версию 3.4.0, в которой также улучшена работа с установленными сертификатами разработки iOS. Вам все равно нужно будет установить свой идентификатор разработки iOS в вашей среде. - person Nick Iliev; 21.12.2017