代码之家  ›  专栏  ›  技术社区  ›  Dmitry Zimin

键链共享和推送通知上的xcode 9 xcode构建开关

  •  1
  • Dmitry Zimin  · 技术社区  · 7 年前

    如何通过xcodebuild(XCode 9)打开钥匙链共享和推送通知?有任何变体吗?

    3 回复  |  直到 7 年前
        1
  •  1
  •   Claudio    7 年前

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

    enter image description here

        2
  •  0
  •   Michael Dautermann    7 年前

    实际上,你想要的是通过 xcodebuild . 这个 最简单的 要做的事情正是克劳迪奥在上面说的:直接更改目标能力部分的设置+向他致敬!您对目标内的功能所做的更改 威尔 默认情况下,在您的所有构建中都会被选中,除非您在构建期间使用我下面的方法显式地更改它们。

    如果你想通过 xcodebuild 仅限(不打开Xcode),然后进一步阅读:

    如果我们讨论的是构建设置(即编译时选项),那么更改设置可能非常简单,例如:

    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 .

    我自己还没有试过这最后一部分(我更愿意为我自己的项目使用克劳迪奥的解决方案),但我通过这篇文章阅读了这个解决方案 related blog posting . 祝你好运

        3
  •  0
  •   floraqian    7 年前

    它通过将授权文件“push.authentications”放在根目录下,并在xcodebuild archive命令中添加CODE\u SIGN\u authentications=“push.authentications”对我起到了作用。

    xcodebuild archive-project yourproject-scheme yourscheme-configuration Release-sdk iphoneos-archivePath“yourpath”CODE\u SIGN\u IDENTITY=\“{$CODE\u SIGN\u IDENTITY}\”PROVISIONING\u PROFILE\u说明符=\“{$PROVISIONING\u PROFILE}\”CODE SIGN\u STYLE=\“Manual\”CODE\u SIGN\u Rights=\“push.Rights\”

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