繁体   English   中英

NativeScript-无法在具有Firebase插件的iOS设备上运行

[英]NativeScript - does not run on iOS device with firebase plugin

无法在真实设备上运行以NativeScrip编写的iOS应用程序。 我尝试了一切。 该应用程序可在iOS Symulator和Android Emulator上运行,但是当我连接iOS设备并运行ins run ios ,会出现错误

**出口成功**

项目成功建立。

正在安装...

无法在设备XXXXX上应用更改。 错误是:无法安装

标识符为XXXXX的设备上的错误是:无法安装应用程序。

我去了platforms/ios并运行了生成的Xcode项目。 然后,我构建它并尝试运行。 错误出现:

应用程序的代码签名权利文件中指定的权利无效,不允许或与您的配置文件中指定的权利不匹配。 (0xE8008016)。

我已经设置了正确的TeamProvision Profile

我不知道该如何解决。 我只有一个主意。 我已经安装了需要keychain_sharing的firebase-plugin,也许这是Entitlements的问题。

我的package.json

{
  "description": "NativeScript Application",
  "license": "SEE LICENSE IN <your-license-filename>",
  "readme": "NativeScript Application",
  "repository": "<fill-your-repository-here>",
  "nativescript": {
    "id": "org.nativescrip.awsomename",
    "tns-android": {
      "version": "3.1.1"
    },
    "tns-ios": {
      "version": "3.2.0-2017-8-25-1"
    }
  },
  "dependencies": {
    "@angular/animations": "~4.2.0",
    "@angular/common": "~4.2.0",
    "@angular/compiler": "~4.2.0",
    "@angular/core": "~4.2.0",
    "@angular/forms": "~4.2.0",
    "@angular/http": "~4.2.0",
    "@angular/platform-browser": "~4.2.0",
    "@angular/router": "~4.2.0",
    "nativescript-angular": "~4.2.0",
    "nativescript-plugin-firebase": "^4.0.6",
    "nativescript-theme-core": "~1.0.2",
    "reflect-metadata": "~0.1.8",
    "rxjs": "~5.4.2",
    "tns-core-modules": "~3.1.0",
    "zone.js": "~0.8.2"
  },
  "devDependencies": {
    "babel-traverse": "6.26.0",
    "babel-types": "6.26.0",
    "babylon": "6.18.0",
    "lazy": "1.0.11",
    "nativescript-dev-typescript": "~0.5.0",
    "typescript": "~2.4.2"
  }
}

build.cconfigAppResorces/iOS

// You can add custom settings here
// for example you can uncomment the following line to force distribution code signing
// CODE_SIGN_IDENTITY = iPhone Distribution 
// To build for device with Xcode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html
// DEVELOPMENT_TEAM = YOUR_TEAM_ID;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;

DEVELOPMENT_TEAM = [HERE I HAVE SET MY DEV TEAM ID];
CODE_SIGN_ENTITLEMENTS = swapmobile/swapmobile.entitlements

我使用Xcode 8.3.2

编辑

tns plugin remove nativescript-plugin-firebase应用程序开始工作。 问题出在firebase插件上。

我发现自述文件中给出的授权文件请参阅问题#420 ,该文件适用于模拟器,但是除非删除这些授权,否则设备构建会导致授权错误。 以下* .entitlements文件适用于设备和模拟器构建:

<?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>keychain-access-groups</key>
  <array>
    <string>$(AppIdentifierPrefix)com.Company.Product</string>
  </array>
</dict>
</plist>

注意-将“ com.Company.Product”替换为您的捆绑包标识符。

这是在项目功能中启用“钥匙串共享”时Xcode放入的权利条目。 可以在Apple文档“ 钥匙串服务编程指南-访问组”中找到其他详细信息,其中指出:

Xcode在代码签名期间自动将应用程序标识符授权添加到每个应用程序。 该字符串形成为团队标识符加上捆绑包标识符。

设备构建工作时无需指定权利,因为它们总是经过签名并具有上述权利。 未签名的模拟器构建需要明确地赋予此权利。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM