2017-02-03 6 views
0

Я настроить учетную запись Heroku со следующими учетными данными: heroku credentialsConnect Анализировать сервер IOS быстрое приложение для Heroku

и нижеследующее моя установка index.js:

var express = require('express'); // find this line in the file 
var cors = require('cors') // add this line below it 
var ParseServer = require('parse-server').ParseServer; 
var path = require('path'); 

var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI ; 

if (!databaseUri) { 
    console.log('DATABASE_URI not specified, falling back to localhost.'); 
} 

var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://heroku_vpgrmmf2:[email protected]:53735/heroku_vpgrmmf2', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || '', 
    masterKey: process.env.MASTER_KEY || '', 
    serverURL: process.env.SERVER_URL || 'https://myapp.herokuapp.com/parse', 
    clientKey: process.env.CLIENT_KEY || '', 
    javascriptKey: process.env.JAVASCRIPT_KEY || '', 
    liveQuery: { 
    classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions 
    } 
}); 
var app = express(); 
app.use(cors()); 

Очевидно заливается те же учетные данные, что и сервер Heroku. Я проверил его на this странице и это, кажется, работает: я получаю следующее сообщение

test

Однако, когда я бегу мое быстрое приложение с этой установкой для приложения делегата:

Func приложений (_ применения: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Любой]?) -> Bool { Parse.enableLocalDatastore() пусть конфигурации = ParseClientConfiguration (блок: {(ParseMutableClientConfiguration) -> Пустота в ParseMutableClientConfiguration.applicationId = ""ParseMutableClientConfiguration.clientKey = "" ParseMutableClientConfiguration.server = "https://myapp.herokuapp.com/parse" })

// Swift 3.0 
Parse.initialize(with: configuration) 
Parse.setApplicationId("", clientKey: "") 

PFFacebookUtils.initializeFacebook(applicationLaunchOptions: launchOptions) 

PFUser.enableAutomaticUser() 

let defaultACL = PFACL(); 
defaultACL.getPublicReadAccess = true 

PFACL.setDefault(defaultACL, withAccessForCurrentUser: true) 

if application.applicationState != UIApplicationState.background { 
    let preBackgroundPush = !application.responds(to: #selector(getter: UIApplication.backgroundRefreshStatus)) 
    let oldPushHandlerOnly = !self.responds(to: #selector(UIApplicationDelegate.application(_:didReceiveRemoteNotification:fetchCompletionHandler:))) 
    var noPushPayload = false; 
    if let options = launchOptions { 
     noPushPayload = options[UIApplicationLaunchOptionsKey.remoteNotification] != nil; 
    } 
    if (preBackgroundPush || oldPushHandlerOnly || noPushPayload) { 
     PFAnalytics.trackAppOpened(launchOptions: launchOptions) 
    } 
} 
return FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)} 

(очевидно, заполненные правильные учетные данные тоже). Это, кажется, не быть подключен к серверу, как я получаю эту ошибку:

error

Я пытался понять, что я делаю не так на прошлой неделе, но я не смог , Кто-нибудь знает, что я могу делать неправильно? Спасибо заранее.

EDIT: Кроме того, это код, который я добавил к моему info.plist файла:

<key>NSAppTransportSecurity</key> 
    <dict> 
     <key>NSAllowsArbitraryLoads</key> 
     <true/> 
     <key>NSExceptionDomains</key> 
     <dict> 
      <key>myapp.herokuapp.com/parse</key> 
      <dict> 
       <key>NSExceptionAllowsInsecureHTTPLoads</key> 
       <true/> 
       <key>NSExceptionMinimumTLSVersion</key> 
       <string>TLSv1.2</string> 
       <key>NSExceptionRequiresForwardSecrecy</key> 
       <true/> 
       <key>NSIncludesSubdomains</key> 
       <true/> 
       <key>NSRequiresCertificateTransparency</key> 
       <string></string> 
       <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
       <false/> 
       <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
       <false/> 
       <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
       <true/> 
      </dict> 
     </dict> 
    </dict> 
+0

Вы добавили доменное имя https://myapp.herokuapp.com/parse к вашему info.plist? см. http://stackoverflow.com/questions/30731785/how-do-i-load-an-http-url-with-app-transport-security-enabled-in-ios-9 ... можете ли вы попробовать регулярный CURL чтобы проверить, связано ли это с iOS sdk или просто настройкой сервера? –

+0

Я сделал сейчас, добавив следующее к моему info.plist, к сожалению, не помогло. Не могли бы вы объяснить, что вы подразумеваете под обычной командой CURL? Запросить что-нибудь с сервера с помощью curl с терминала? Как я могу это сделать? Благодарю. @MazelTov –

+0

что-то вроде этого, чтобы проверить сервер API ... 'curl -X GET \ -H" X-Parse-Application-Id: $ {APPLICATION_ID} "\ -H" X-Parse-REST-API -Key: $ {REST_API_KEY} "\ https: // api.parse.com/1/classes/GameScore/Ed1nuqPvcm' и запустить эту команду в терминале (вы должны сначала отредактировать его с помощью вашей установки) –

ответ

0

В конце концов я понял это: я должен был удалить эту строку из AppDelegate:

Parse.setApplicationId("myappid", clientKey: "myclientkey") 

И теперь это работает, не знаю почему, но я рад.

 Смежные вопросы

  • Нет связанных вопросов^_^