xcode 9 xcodebuild开启钥匙串共享和推送通知

时间:2017-11-23 09:20:27

标签: ios xcodebuild

如何通过xcodebuild(XCode 9)打开Keychain Sharing和Push Notifications?有没有变种?

3 个答案:

答案 0 :(得分:1)

在xcode上,单击您的项目,然后单击功能,最后打开Keychain共享和推送通知

enter image description here

答案 1 :(得分:0)

通过xcodebuild直接进行操作实际上有点棘手。 EASIEST 要做的事情正是Claudio所说的:直接更改目标的功能部分中的设置。 +1给他!默认情况下,您对所有版本中的功能所做的更改获取,除非您使用下面的方法在构建时明确更改它们。

如果您只想通过xcodebuild执行此操作(无需打开Xcode),请继续阅读:

如果我们谈论的是Build Settings(即编译时选项),那么更改设置可能就像以下一样简单:

xcodebuild -workspace DmitryWorkspace.xcworkspace -scheme "YourAppName" -showBuildSettings

但是,因为您实际上正在尝试修改权利并且&功能(应用程序是否具有执行某些功能的能力),您真正需要做的是使用不同的.entitlements文件来切换这些选项。 .entitlement文件基本上只是plist文件的另一个名称,它通常看起来像这样:

<?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>aps-environment</key>
        <string>development</string>
        <key>keychain-access-groups</key>
        <array>
                <string>$(AppIdentifierPrefix)com.myke.TestingSomething</string>
        </array>
</dict>
</plist>

这两个键用于推送通知和钥匙串共享。

要通过xcodebuild获取权利文件,您可以执行以下操作:

xcodebuild -exportArchive -exportOptionsPlist projectName.entitlements -archivePath test.xcarchive -exportPath .

我自己还没有尝试过最后一部分(我宁愿为我自己的项目做Claudio的解决方案),但我通过这个related blog posting阅读了这个解决方案。祝你好运!

答案 2 :(得分:0)

通过将权利文件“push.entitlements”放在根目录并在xcodebuild archive命令中添加CODE_SIGN_ENTITLEMENTS =“push.entitlements”,它对我有用。

xcodebuild archive -project yourproject -scheme yourscheme -configuration Release -sdk iphoneos -archivePath \“yourpath”CODE_SIGN_IDENTITY = \“{$ code_sign_identity} \”PROVISIONING_PROFILE_SPECIFIER = \“{$ provisioning_profile} \”CODE_SIGN_STYLE = \“Manual \” CODE_SIGN_ENTITLEMENTS = \ “push.entitlements \”

我从这篇文章中得到了这个想法:Post iOS10 / Xcode 8.0 "Missing Push Notification Entitlement" error after build for iTunes Store