iPhone平台从配置中消失并构建目标,除非我创建新解决方案,否则无法加回
因此,我有一个约2年的应用程序,工作正常。但是我最近在Xamarin Studio中遇到了很多问题,所以我已经在Visual Studio for Mac中完全重新构建了这个解决方案。一切都很好,大约2天后突然发生了一些奇怪的事情。突然之间,我的iPhone配置消失了,不再可供我选择构建或在设置中查看。iPhone平台从配置中消失并构建目标,除非我创建新解决方案,否则无法加回
如果我尝试创建一个新配置,它甚至不会给我选择iPhone作为平台的选项。它只显示iPhoneSimulator。但是,如果我一起创建一个新的空白解决方案,则默认配置中同时包含iPhoneSimulator和iPhone。而这个新的空白解决方案允许我用iPhone平台添加配置。
这是我所看到的,当我尝试创建一个新的配置,发现它甚至不提供我的iPhone的配置,只有iPhoneSimulator
如果我创建一个新的空白解决方案,它为我提供了iPhone作为一个选项
请参阅以下就是我的解决方案文件结构如下:
下面是我的解决方案文件和解决方案/项目结构:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MobileClient.iOS", "MobileClient.iOS\MobileClient.iOS.csproj", "{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Mobile.API", "..\xamarin_mobile_api\Mobile.API.shproj", "{4520CB09-DBCB-4764-8E8C-4CBAA2CBAD6A}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Mobile.iOS", "..\xamarin_mobile_ios\Mobile.iOS.shproj", "{10B1EF5A-0F37-4544-9327-902022A42BA4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdjustBindingsiOS", "..\xamarin_mobile_api\3rdParty\Adjust\AdjustBindingsiOS\AdjustBindingsiOS.csproj", "{EF829C6D-7D00-4DF1-95C7-F3E54B164827}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mixpanel", "..\xamarin_mobile_api\3rdParty\Mixpanel\Mixpanel.csproj", "{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Staging|iPhoneSimulator = Staging|iPhoneSimulator
Production|iPhoneSimulator = Production|iPhoneSimulator
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Staging|iPhoneSimulator.ActiveCfg = Staging|iPhoneSimulator
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Staging|iPhoneSimulator.Build.0 = Staging|iPhoneSimulator
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Production|iPhoneSimulator.ActiveCfg = Production|iPhoneSimulator
{7EEC6C4F-036E-4144-BBE9-6C01BECEA311}.Production|iPhoneSimulator.Build.0 = Production|iPhoneSimulator
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Staging|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Staging|iPhoneSimulator.Build.0 = Debug|Any CPU
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Production|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{EF829C6D-7D00-4DF1-95C7-F3E54B164827}.Production|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Staging|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Staging|iPhoneSimulator.Build.0 = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Production|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{5E6FA2B8-D94C-4318-8A37-1E9D765CF71E}.Production|iPhoneSimulator.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
$0.TextStylePolicy = $1
$1.inheritsSet = null
$1.scope = application/vnd.apple-interface-builder
$1.inheritsScope = text/plain
$1.FileWidth = 120
$1.TabsToSpaces = False
$0.CSharpFormattingPolicy = $2
$2.IndentSwitchBody = True
$2.IndentCaseBody = False
$2.IndentPreprocessorDirectives = False
$2.AnonymousMethodBraceStyle = NextLine
$2.PropertyGetBraceStyle = NextLine
$2.PropertySetBraceStyle = NextLine
$2.EventBraceStyle = NextLine
$2.EventAddBraceStyle = NextLine
$2.EventRemoveBraceStyle = NextLine
$2.StatementBraceStyle = NextLine
$2.ElseNewLinePlacement = NewLine
$2.ElseIfNewLinePlacement = DoNotCare
$2.WithinMethodDeclarationParentheses = True
$2.AfterDelegateDeclarationParameterComma = True
$2.scope = text/x-csharp
$0.DotNetNamingPolicy = $3
$0.TextStylePolicy = $4
$4.inheritsSet = null
$4.scope = application/config+xml
$0.XmlFormattingPolicy = $5
$5.inheritsSet = null
$5.scope = application/vnd.apple-interface-builder
$5.inheritsScope = application/xml
$0.TextStylePolicy = $6
$6.inheritsSet = null
$6.scope = application/xml
$0.XmlFormattingPolicy = $7
$7.scope = application/xml
$0.TextStylePolicy = $8
$8.scope = text/plain
$0.TextStylePolicy = $9
$9.inheritsSet = null
$9.scope = application/json
$0.VersionControlPolicy = $10
$0.TextStylePolicy = $11
$11.inheritsSet = null
$11.scope = application/vnd.apple-xcode-storyboard
$0.XmlFormattingPolicy = $12
$12.inheritsSet = null
$12.scope = application/vnd.apple-xcode-storyboard
$0.TextStylePolicy = $13
$13.inheritsSet = null
$13.scope = application/vnd.apple-interface-builder
$0.XmlFormattingPolicy = $14
$14.inheritsSet = null
$14.scope = application/vnd.apple-interface-builder
$0.StandardHeader = $15
EndGlobalSection
EndGlobal
只是为了测试,我创建了一个新的空白的iOS解决方案从头开始在Visual Studio中的Mac。以下是该解决方案文件的外观。
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "asdfasdf", "asdfasdf\asdfasdf.csproj", "{398E03FF-50ED-4D8C-8845-A6077EFF0093}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "qweradfsxz", "qweradfsxz\qweradfsxz.csproj", "{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|iPhoneSimulator = Debug|iPhoneSimulator
Release|iPhone = Release|iPhone
Release|iPhoneSimulator = Release|iPhoneSimulator
Debug|iPhone = Debug|iPhone
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhone.ActiveCfg = Release|iPhone
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhone.Build.0 = Release|iPhone
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhone.ActiveCfg = Debug|iPhone
{398E03FF-50ED-4D8C-8845-A6077EFF0093}.Debug|iPhone.Build.0 = Debug|iPhone
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhone.ActiveCfg = Release|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhone.Build.0 = Release|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
{ABB95F3F-67FA-48D4-89AB-8EAD30C69DE2}.Debug|iPhone.Build.0 = Debug|Any CPU
EndGlobalSection
EndGlobal
下面是我的解决方案的构建目标平台选项的屏幕截图。注意iPhone部署目标消失了。在配置映射中,iPhone平台消失了,iPhoneSimulator是唯一可用的。
下面是我的测试解决方案,我做的截图,注意到有一个iPhone(手机名称是LeetSauce)选项,以及在配置映射的iPhone选项。
任何想法如何,我打破了这个或如何解决呢?
------------------编辑------------------
所以用户在Xamarin论坛上向我展示了,您可以在第一张屏幕截图中的“平台”框中手动输入“iPhone”。这很有帮助。但是我最终重新创建了解决方案,并重新添加了所有文件/资源/包/组件。我无法再次重现该问题,希望我不再看到它。这“感觉”就像是一个错误,我的.sln和/或.csproj文件不知何故变得腐败。它也有可能是一开始就被打破的,而它工作2天只是一种侥幸。希望它不会再发生。
我认为这个快速解决方案创建了一个新的解决方案,并使用相同名称的旧项目创建新项目。您不需要为每个项目添加文件。
然后复制新项目中的所有配置设置并粘贴到旧项目并替换GUID。
所以我最终重建它。我只是觉得我不应该继续重建我的解决方案,因为我在上周必须这么做很多次:-(我必须遇到一个bug,手动修改.sln和.csproj文件给我头疼,所以我只是从头开始创建的,Xamarin论坛的用户告诉我,你可以在第一个屏幕截图中弹出“iPhone”,所以如果它被删除(谁知道什么原因)你可以将它添加回来。 – LampShade
我相信,只有检测到具有正确iOS版本的物理设备时,Visual Studio for mac才会将Iphone作为构建配置。我认为设备已连接并在您将其作为构建配置进行查找时完全更新? – Digitalsa1nt
这是一个物理设备,它是正确的iOS + Xcode版本。我最终从头开始重新构建解决方案,因为我遇到了一些手动编辑解决方案和csproj文件的问题。我很好奇,看看这个问题是否再次发生,因为我还不确定是什么原因造成的。 – LampShade
最近你不得不做很多重建,手指越过,很快就会安定下来:D – Digitalsa1nt