ios - 无法创建用作带有通配符标识符的 iOS 应用程序配置文件的应用程序包 ID 的显式 AppID

标签 ios xcode apple-push-notifications app-id bundle-identifier

我们有一个在内部分发的 iOS 应用程序(通过 MDM 或此类工具,并且从未上传到 App Store)
在使用具有通配符 (*) AppID 的配置文件进行构建和签名时,此 iOS 应用程序会被分配一个 BundleID com.companyName.App.Env。(我们使用 Jenkins 来完成这项工作)
到目前为止,一切都运行良好!

现在,我们需要向此应用添加 APNS 功能,因此很自然地,我必须通过开发者门户创建显式 AppID
但是,当我尝试创建显式 AppID 时,在尝试注册它时出现以下错误 -

An attribute in the provided entity has invalid value
An App ID with Identifier 'com.companyName.App.Env' is not available. Please enter a different string.

此 iOS 应用程序的业务和使用性质使得使用更改后的应用程序 ID 来部署它变得很困难。

问题 -

  1. 如果在构建应用时为应用分配了 AppID,但不是在开发者门户中创建的,我如何使用该 appID 创建配置文件
  2. 如果我在开发者门户中看不到此 AppId,它在哪里 注册以便我可以引用或删除它? (假设,即使是“内部”分布式应用程序也有其应用程序 ID 安装在设备上时保存到某些 App Store 服务)
  3. 是否真的有任何其他非破坏性选项,让我不必为此目的创建新的 AppID?

我非常感谢任何建议或指导。

最佳答案

应用 ID 是全局唯一的,而不仅仅是您的开发者帐户。

如果 appID 已在某处注册,您会收到此消息。

回答你的问题:

If an AppID is assigned to an app while building the app, but was not created in the Developer Portal, how do I create Provisioning Profile with that appID?

您只能创建包含属于您帐户的 appid 的配置文件。

If I can't see this AppId in the Developer Portal, where is it getting registered at so that I can reference or remove it? (Assuming that, even 'In-house' distributed apps have their app ids saved to some App Store service when installed on the device)

如果您已经注册了此appID,您可以在 developer portal's resource dashboard 中看到它在标识符下。如果您那里没有,则意味着其他人已经注册了。

Is there, really, any other non-destructive option wherein I won't have to create new AppID, just for this purpose?

您需要切换到显式应用 ID。

<小时/> <小时/>

从此Technical Q&A在苹果,我们有:

您应该对所有不启用应用特定功能的应用和应用目标使用通配符应用 ID。

...

使用通配符应用 ID 对于所有不使用功能的应用来说都很方便,因为它们可以重复使用相同的配置文件进行代码签名。例如,如果 App1 的目标不启用功能,它们可能会重用与图 2 中的通配符应用 ID 关联的配置文件来对所有目标进行代码签名。

在此示例中,App1 有四个目标,其 bundle ID 为:

com.myGreatCompany.app1-watch

com.myGreatCompany.app1-macOS

com.myGreatCompany.app1-tvOS

com.myGreatCompany.app1-iOS

由于显式应用 ID 与单个捆绑 ID 一起使用,因此它只能用于对一个应用或应用目标进行代码签名。

<小时/> <小时/>

即使您注册新的 appID(其中通配符禁用了应用程序功能),您也可以看到此限制的实际效果:

enter image description here

对比

enter image description here

关于ios - 无法创建用作带有通配符标识符的 iOS 应用程序配置文件的应用程序包 ID 的显式 AppID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58459415/

相关文章:

javascript - Ionic Cordova 推送提醒问题与振动和声音 iOS

ios - 使用 Box2d 飞翔的鸟

ios - 从collectionView中获取indexpath,有时会获取错误的indexPath

ios - 无法让 InnerBand CoreData 框架工作

iOS订阅: How to handle INTERACTIVE_RENEWAL notification 10 minutes after INITIAL_BUY?

iOS Domain=kCLErrorDomain Code=1 在请求位置权限之前

xcode - 您应该为不属于您的代码使用目标吗?

ios - -Objc -lz xcode 中的其他链接器标志

ios - firebase 会自动设置 apns-push-type header 吗?

ssl - 几个小时后,通过 GCE 上的套接字的 APNS 停止工作