2017-08-28 10 views
0

Visual Studio 2017を使用してcordova-plugin-fcmプラグインを空のCordovaアプリにインストールしようとしています。 プラグインをインストールし、 plistファイルなど 私のMacでxcode 7.2.1があります。cordova-plugin-fcmプラグインを使用してiOSプロダクションにプッシュ通知資格を追加できません

ビジュアルスタジオからipaをビルドするとIPAが生成されますが、プッシュ通知は有効になっていません。 プラグインフォルダを含むすべてのソースコードをbitbucketに追加しました。下のリンク。 https://bitbucket.org/quintonn/pushnotificationtest

私のiPhoneでプッシュ通知を有効にするには、何が欠けていますか? 参考までに、私はアンドロイドで非常に簡単にそれを得ることができます。

プッシュ通知を有効にするためにxcodeを開く必要はありません。 Visual Studioから直接フックかxcconfigかconfig.xmlを使って可能であることはわかっています。しかし、私はちょうどそれを働かせることができないし、私は約3週間この作業を得ることができませんでした。そして、私は暗闇の中で感じているだけです。オンラインのすべての資料は、コードヴァーバー、ビジュアルスタジオ、またはxcode、電話機、イオンなどのさまざまなバージョン用です。

答えて

0

私は多くの、多くの、多くの時間をこの問題に費やしました。

と私はそれがある。ここコルドバ after_prepare XCodeを7に私の問題を解決しフックと8 を作ってみた...

"use strict"; 

var fs = require('fs'); 
var path = require('path'); 
var xcode = require('xcode'); 

module.exports = function (context) 
{ 
    var encoding = 'utf-8'; 
    var plist = fs.readFileSync(path.resolve(__dirname, "../GoogleService-Info.plist"), encoding); 


    fs.writeFileSync(path.resolve(__dirname, "../platforms/ios/GoogleService-Info.plist"), plist, encoding); 

    var projectPath = path.resolve(__dirname, "../platforms/ios/APP NAME.xcodeproj/project.pbxproj"); 
    var pbxFile = fs.readFileSync(projectPath, encoding); 

    var proj = new xcode.project(projectPath); 

    proj = proj.parseSync(); 

    var pbxGroupKey = proj.findPBXGroupKey({ 
     name: "Resources" 
    }); 
    proj.removeResourceFile('GoogleService-Info.plist', {}, pbxGroupKey); 
    proj.addResourceFile('GoogleService-Info.plist', {}, pbxGroupKey); 

    proj.addBuildProperty('"CODE_SIGN_IDENTITY[sdk=iphoneos*]"', '"iPhone Distribution"', 'Release'); 
    proj.addBuildProperty('DEVELOPMENT_TEAM', 'XXXXXXXX', 'Release'); 

    proj.addBuildProperty('PROVISIONING_PROFILE', "XXXXXXXX-XXXXXXXX-XXXX-XXXX-XXXXXXXX", 'Release'); 
    proj.addBuildProperty('PROVISIONING_PROFILE_SPECIFIER', '"NAME OF PROFILE"', 'Release'); 
    proj.addBuildProperty('TARGETED_DEVICE_FAMILY', '"1,2"', 'Release'); 

    proj.addTargetAttribute("DevelopmentTeam", "XXXXXXXX"); 
    var pushEntitlement = "{com.apple.Push ={enabled = 1;};}"; 
    proj.addTargetAttribute("SystemCapabilities", pushEntitlement); 

    /*var attributes = proj.getFirstProject()['firstProject']['attributes']; 
    if (attributes['TargetAttributes'] === undefined) 
    { 
     attributes['TargetAttributes'] = {}; 
    } 
    var target = proj.getFirstTarget(); 
    if (attributes['TargetAttributes'][target.uuid] === undefined) 
    { 
     attributes['TargetAttributes'][target.uuid] = {}; 
    } 
    attributes['TargetAttributes'][target.uuid]["SystemCapabilities"] = "{com.apple.Push ={enabled = 1;};}"; 
    */ 
    fs.writeFileSync(projectPath, proj.writeSync()); 

    fs.writeFileSync(path.resolve(__dirname, "../platforms/ios/APP NAME/Resources/GoogleService-Info.plist"), plist, encoding); 
    fs.writeFileSync(path.resolve(__dirname, "../platforms/ios/APP NAME/Resources/Resources/GoogleService-Info.plist"), plist, encoding); 
}; 

ちょうどプロビジョニング、あなたのAPPの名前を更新することを忘れないでくださいプロフィール名とチームID。

関連する問題