Xamarin.ios 今天从 Visual Studio 延长

Xamarin.ios Today Extension from Visual Studio

完成这个简单的任务是我最艰难的时刻,我现在正在测试的只是样本!

this tutorial 之后,我能够直接在我的 mac 上从 Xamarin Studio 成功创建 Today Extension。但是,在 Visual Studio 2015 年在我的 Win 10 PC 上执行相同的过程后,我什么也没得到(就今天的扩展而言)。

我尝试了几次 "fixes"。首先,我尝试简单地将已完成且正在运行的应用程序从 mac 复制到 windows。在 VS 中打开它,应用程序成功构建并部署到模拟器。今天的扩展实际上可用,但它永远不会加载我的视图。它只是说 "Unable to Load"。我尝试了故事板和硬编码方法,没有布埃诺。查看模拟器的系统日志,我看到一些关于集线器连接错误和不受支持的 XPC 对象 os_xpc_dic.

我越来越多地使用它,并最终让它在模拟器上运行。我的 CFBundleDisplayName 和 CFBundleName 都带有连字符(应用程序 - 分机名称)。在删除它并部署到一个完全不同的 ios 设备模拟器(6 加而不是 6 加)之后,今天的扩展最终显示了默认的 hello world 文本。

然后我尝试将其部署到我的物理设备,但是,仍然是 "Unable to Load" 消息。认为它与应用程序的 "dirty" 安装有关,我尝试了各种 clean/re-builds 以及删除应用程序并将其重新添加到设备。我什至尝试更改 CFBundleName 和 DisplayName 以及 CFBundleIdentifier,但没有任何效果!!!!

在今天的小部件中心加载时查看设备日志,这是我看到的:

• Will update publication state of com.TexasDominos.ITSupport.AlertExtension visibilityChanged: 1 contentStateChanged: 0 insertAtTop: 0 notifyingObservers: 1

• Publication state of com.TexasDominos.ITSupport.AlertExtension isVisible: 1 hasContent: 1

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Begin sequence with reason: appearance transition

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Aborting active life cycle sequence:

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Aborting sequence as argument sequence (WGWidgetLifeCycleSequence: 0x170a35740; sequenceID: com.TexasDominos.ITSupport.AlertExtension.WGMajorListViewController.4/20/17, 11:31:00 AM; currentState: WGWidgetLifeCycleSequenceStateDidRequestRemoteView) isn't in expected range (WGWidgetLifeCycleSequenceStateDidConnectRemoteView \M-b\M^@\M^S\M-B0WGWidgetLifeCycleSequenceStateRemoteViewRevealed)

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Initiating new life cycle sequence: 'WGWidgetLifeCycleSequence: 0x170a35740; sequenceID: com.TexasDominos.ITSupport.AlertExtension.WGMajorListViewController.4/20/17, 11:31:00 AM; currentState: WGWidgetLifeCycleSequenceStateQuiescent'

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Connection requested with reason: 'appearance transition'

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Can't request remote view controller that is blacklisted

• com.TexasDominos.ITSupport.AlertExtension: 0x1576e8570; container: WGMajorListViewController Will request remote view controller

我对这个问题很困惑,似乎无法在物理设备上做任何事情来纠正这个问题。有些东西告诉我,如果我要完全擦除我的物理设备,扩展将开始正常工作,因为它也可以在模拟器上进行全新安装。但是我根本没有办法擦除我的设备,这应该是一个简单的修复。

有什么建议吗?

杰尔内奥

*注意:我还尝试直接在 VS 中创建和添加今天的扩展,但我收到了更多问题。我不得不手动更改构建顺序和依赖项,以及从容器到扩展的引用。即使如此,扩展名也根本不会出现。上面的路线显示出更多的希望,一开始...

我相信我从 phone 本身擦除所有应用程序数据的理论是正确的。我能够让扩展正常工作...

  1. 从设备中删除该应用程序。
  2. 重新安装 Xcode 中 Xamarin.ios 指导您创建的初始空白应用程序,以最初创建和部署配置文件。
  3. 删除空白应用。
  4. 从 VS 安装你的应用。

现在我今天的扩展程序正确显示了!好麻烦。

旁注:无论出于何种原因,在几次部署后,我的应用程序停止正确安装今天的扩展程序。按照上述步骤再次修复它。此外,有时它会停止更新新代码。同样,按照上述步骤解决了这个问题。不完全是一个稳定的系统。我很好奇这与发行版本的关系如何。