RNAppAuth, сборка iOS не удалась, неизвестное имя типа 'namespace', response-native-app-auth - PullRequest
0 голосов
/ 24 апреля 2018

Я пытаюсь добавить react-native-app-auth к существующему, но довольно свежему проекту с Expo.Я следую вашему руководству по установке, поэтому выполняю следующие шаги:

  • yarn add react-native-app-auth@2.2.0 --dev
  • Добавить pod 'AppAuth', '>= 0.91'
  • cd iso && pod install
  • react-native link (РЕДАКТИРОВАТЬ: из корневого пути проекта)

И я получаю:

rnpm-install info Linking react-native-app-auth ios dependency
rnpm-install WARN ERRGROUP Group 'Libraries' does not exist in your Xcode project. We have created it automatically for you.
rnpm-install info Platform 'ios' module react-native-app-auth has been successfully linked

, который выглядит хорошо.

Затем, когда я встраиваюXCode я получаю следующую ошибку:

image

После поиска в Интернете я обнаружил, что он может быть связан с компилятором. Я изменил его, используя Objective-C ++:

image

и теперь я получаю больше ошибок:

image

Я также пытался:

  • Изменение целевой версии на 9.0
  • Делаем это снова
  • Молимся ?

Ничего не помогает :( Xcode Version 9.3 (9E145)

app.js

{
    "expo": {
        "sdkVersion": "26.0.0",
        "ios": {
        "bundleIdentifier": "com.xxx.xxx",
        "publishBundlePath": "ios/mobile-xxx/Supporting/shell-app.bundle",
        "publishManifestPath": "ios/mobile-xxx/Supporting/shell-app-manifest.json"
        },
        "android": {
        "package": "com.xxx.xxx"
        },
        "name": "mobile-xxx",
        "slug": "mobile-xxx",
        "version": "0.1.0",
        "isDetached": true,
        "entryPoint": "./index.js",
        "detach": {
        "scheme": "exp997ce9c6b4fd43cfa14f4eede063ecf5",
        "iosExpoViewUrl": "https://s3.amazonaws.com/exp-exponent-view-code/ios-v2.4.4-sdk26.0.0-3bd935c7-cdd3-4002-8e44-4df857a675f2.tar.gz",
        "androidExpoViewUrl": "https://s3.amazonaws.com/exp-exponent-view-code/android-v2.4.0-sdk26.0.0-e63d9209-070c-4118-b06b-c60e82da0b66.tar.gz"
        }
    }
}

package.js

{
    "name": "mobile-xxx",
    "version": "0.1.0",
    "private": true,
    "devDependencies": {
        "jest-expo": "26.0.0",
        "react-native-app-auth": "2.2.0",
        "react-test-renderer": "16.3.0-alpha.1"
    },
    "main": "node_modules/expo/AppEntry.js",
    "scripts": {
        "test": "jest"
    },
    "jest": {
        "preset": "jest-expo"
    },
    "dependencies": {
        "expo": "^26.0.0",
        "prop-types": "^15.6.1",
        "react": "16.3.0-alpha.1",
        "react-native": "https://github.com/expo/react-native/archive/sdk-26.0.0.tar.gz",
        "react-native-app-auth": "^2.2.0",
        "react-native-router-flux": "^4.0.0-beta.28",
        "react-redux": "^5.0.7",
        "redux": "^3.7.2"
    }
}

ОБНОВЛЕНИЕ: Я только что установил новое приложение Expo, следуя этому руководству, и у меня точно такая же ошибка. 10

1 Ответ

0 голосов
/ 11 августа 2018

Проблема в том, что в путях поиска по заголовкам есть импорт, который выполняет поиск во всей папке /ios: $(SRCROOT)/../../../ios/**

Если вам случится использовать Expo и CocoaPods, будет boost-for-react-nativeкак зависимость внутри вашей папки Pods.Фактически, любой пакет, зависящий от наддува, вызовет эту проблему.XCode также пытается создать boost, но у него есть не-ObjC-файлы, поэтому он потерпит неудачу.

Чтобы устранить проблему:

Откройте RNAppAuth.xcodeproj, переключитесь на вкладку Build Settings и найдите пути поиска заголовка.Замените строку $(SRCROOT)/../../../ios/** на

"$(SRCROOT)/../../../ios/YOUR_PROJECT_NAME",
"$(SRCROOT)/../../../ios/Pods/AppAuth/**",

Обратите внимание, что эти изменения исчезнут после установки npm (или пряжи).Чтобы сделать эти изменения постоянными, вы можете использовать patch-package .

Редактировать: эта проблема была исправлена, теперь должна работать последняя версия пакета.

...