本机链接失败,未定义符号错误。 Xamarin表示PCL iOS Visual Studio

时间:2017-07-11 15:31:58

标签: c# ios xamarin xamarin.ios

我开始在xamarin中实现我的PCL应用程序的iOS实现,并遇到了一个我似乎无法在Google中找到解决方案的问题。

问题是,当我链接我的Entitlement.plist文件(iOS项目>捆绑签名>自定义权利)时,我收到了很多本地链接失败的错误。我已经将链接器行为设置为所有3种可能性,但没有运气。我还尝试在entitlement.plist中使用空的dict标签,具有不同的链接器行为,mtouch参数,...配置文件/许可证/配置文件/标识也应该没问题。

entitlements.plist包含以下内容(来自dev.apple.com App ID的前缀和ID)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" 
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>myidprefix.com.mycompany.*</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)myidprefix.com.mycompany.*</string>
    </array>
</dict>
</plist>

Error screenshot here

显然我可以告诉它与Android的东西有关,我可以通过卸载我的Android项目解决它但在我的PCL中我无法避免使用Mono.Android,我认为这会导致所有这些?

任何帮助将不胜感激!

项目/版本信息:

  • Mac服务器主机操作系统:macOS Sierra 10.12
  • VS 2015 Enterprise

1 个答案:

答案 0 :(得分:0)

我正在回答,因为我需要附上一些图片。

您不应该在PCL中引用Mono.Android。 PCL应该在Android和iOS之间共享,并包含可在Android和iOS中使用的代码。您应该创建另一个Android类库项目并将特定于Android的代码放入其中。 enter image description here

另一种选择是使用“共享项目”类型而不是使用PCL。然后使用编译器指令(#if ANDROID )控制共享项目中的UI特定代码。 enter image description here