众所周知,Apple改变了Xcode的工作方式,使您无法创建具有以前使用的应用ID的应用,即使您只是编写测试应用以在本地使用。到目前为止,我只是输入垃圾ID来解决这个愚蠢的反特征,但今天我受到了这个宝石的欢迎:
所以现在我无法创建更多的测试应用程序,有效地阻止了我的开发工作(我编写了库和框架,需要在测试应用程序中测试它们)。
有没有人知道如何绕过或禁用Apple的限制?
答案 0 :(得分:13)
这是免费开发者帐户的限制类型,但我们也可以找到解决方案:
1-导航到同一设备上安装的任何先前应用程序的项目都有问题。
2-在Build Settings tab
中打开应用项目的Xcode
。
3-搜索Bundle ID
并复制它。
4-打开您当前有问题的应用并导航到同一个地方>粘贴并将当前Bundle ID
替换为旧版本。
5-运行应用程序。
!!! WALA
答案 1 :(得分:11)
我在使用xcode 7.3.1版本的新mackbook中遇到了同样的情况。 即使我尝试使用 旧的捆绑包标识符,它也没有用。 以下步骤帮助我在设备中运行应用程序。
答案 2 :(得分:10)
同样的事发生在我身上。我认为这是苹果公司为“非付费”开发者提供的某种新限制,并且它在7天内限制你使用10个应用程序。
编辑 - 要解决此问题,我只需制作一个随机的苹果开发ID ...
答案 3 :(得分:4)
只需使用您已安装的任何旧应用的捆绑包ID,并在7天后更改捆绑包ID。我认为苹果对免费开发者账户设置了限制。
编辑: 关于@haquangvu在他的回答中提到的重要性,你的旧应用程序被取代了。所以要好好照顾它,并感谢@haquangvu的答案。
答案 4 :(得分:4)
不要制作另一个不是解决方案的ID !!!
使其成为您需要做的事情:
Window > Preferences - Account
然后选择您的苹果ID和您的团队,然后点击右下角的View Detail...
按钮。
将显示一个新窗口,点击左下角的Download all
按钮,您的所有配置文件都将显示。
之后,只需左键单击那些您不再需要使用的内容,然后单击以移至垃圾箱。
删除足够的个人资料后,您将能够再次构建项目!
答案 5 :(得分:3)
使用您的旧Bundle ID之一。 有用。 但是您的旧应用程序将被删除。
答案 6 :(得分:2)
我有这个,这里的其他答案没有解决问题。我打开Window>解决了这个问题。设备,找到我的设备,右键单击“显示配置文件”,然后删除那里的一堆配置文件。
然后它奏效了!
答案 7 :(得分:0)
我有一个付费的开发者帐户,并在创建了一堆简单的测试/示例应用后,在Xcode 9中发现了这一点。在过去,我会简单地选择一个“通配符”App ID。但是,Xcode似乎没有办法再这样做了。
基于通配符进行研究,我找到了Technical Q&A QA1713: When should I use a wildcard App ID?。遵循这些步骤似乎对我有用。 (签名错误消失了,但我们会看到另外7天或10个应用程序会发生什么,哈哈。)
如果您有付费开发者帐户,请执行以下步骤:
com.myname.appname
。然后,在通配符应用ID 下的框中,您输入com.myname.*
。)新的通配符App ID现在将显示在您的App ID列表中。
接下来,进入Xcode,创建您的应用,输入与您注册的通配符App ID 匹配的组织标识符,而不使用点星号。 (例如,如果您输入com.myname
,Xcode将使用点和应用名称完成包含标识符的内容。)
当项目在签名页面打开时,Xcode将“正确地自动管理签名”;)
注意: 如果您有免费的开发者帐户,截至发布之日,您无法访问“证书,个人资料&您帐户中的ID链接。 ;(
答案 8 :(得分:0)
Xcode>常规>身份
复制以前的捆绑包ID
捆绑标识符:AppleDeveloperName-PreviousProjectName(或其他)
将其粘贴到新项目的Bundle ID中。现在应该没事了。
答案 9 :(得分:0)
如果您只需要检查一些POC,就可以创建一个新帐户并使用它
答案 10 :(得分:0)
解决方法是使用您之前创建的 ID。由于 Xcode 不再通过 Apple ID 详细信息列出 Bundle ID,请将其保存到您的 .bash_profile
或 ~/.zshrc
中,并从终端使用 list_xcode_provisioning_profile
调用它
list_xcode_provisioning_profiles() {
while IFS= read -rd '' f; do
2> /dev/null /usr/libexec/PlistBuddy -c 'Print :Entitlements:application-identifier' /dev/stdin \
<<< $(security cms -D -i "$f")
done < <(find "$HOME/Library/MobileDevice/Provisioning Profiles" -name '*.mobileprovision' -print0)
}
为了更容易找到这个答案,我只是从这里的 hyperknot 复制了它:Parsing mobileprovision files in bash?