我正在尝试在Xcode6中提交我的iOS应用程序.当我在组织者中单击"提交"或"验证"时,会弹出一个窗口,显示:
无法找到或生成匹配的签名资产:
Xcode试图找到或生成匹配的签名资产,但由于以下问题而未能这样做:
找不到"Applications/MyApp.app"的匹配配置文件
没有任何有效的配置文件允许指定的权利:application-identifier,beta-reports-active,keychain-access-groups.
我已在会员中心为此应用创建了分发配置文件,它出现在Xcode中.我环顾四周,没有找到任何在线告诉我如何解决这个问题.有人可以帮忙吗?谢谢.
安迪
这是完整的error-message
:
无法显示应用程序 bundleID 的自动强密码:com.ckbusiness.Wishlists 由于错误:无法识别调用应用程序的进程。检查应用程序标识符权利中的 teamID 和 bundleID
我在这里错过了什么?
我正在开发一个支持iCloud的应用程序,用户可以通过iCloud Drive导入和导出文件.在浏览iCloud Drive时,无论是使用UIDocumentPickerViewController
(iOS 8)还是Finder(OS X Yosemite),我都可以看到其他支持iCloud-Drive的应用创建/拥有的目录,例如Automator,Keynote或TextEdit.
我希望我们的应用程序也能在iCloud Drive中公开其无处不在的文档目录,但还未能弄明白.在上述某些应用程序的Info.plist
文件中,我发现了这个密钥:
<key>NSUbiquitousContainers</key>
<dict>
<key>com.apple.TextEdit</key>
<dict>
<key>NSUbiquitousContainerIsDocumentScopePublic</key>
<true/>
<key>NSUbiquitousContainerSupportedFolderLevels</key>
<string>Any</string>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
这些密钥也在这里记录,但我没有找到更广泛主题的任何其他文档.编辑/注意:虽然它不包含我的问题的答案,但文档选择器编程指南是一个有用的资源.
我已经尝试将上述键/值添加到我们的应用程序,但没有看到任何影响.我注意到/尝试过的事情:
对于第三方应用程序,iCloud容器以这种方式构建:iCloud.$(CFBundleIdentifier)
.我不确定为什么TextEdit只使用纯包标识符,但对于我们的标识符,我尝试了两种方法,即有和没有iCloud.
前缀.我还认识到你需要对包标识符进行硬编码(即,不要使用iCloud.$(CFBundleIdentifier)
),因为只有PLIST的值似乎在构建时解析,而不是键.
我以编程方式(to <containerPath>/Documents
)添加了一个子目录,因此容器不为空.但是,这并不重要,因为所有其他应用程序的目录最初都是空的.
出现在iCloud Drive中的某些Apple应用程序中没有这些条目Info.plist
,例如Numbers和Pages.
iCloud设置正确,我可以使用返回的URL以编程方式查看ubiquity容器[[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
.
我登录到启用了iCloud Drive的iCloud帐户.我可以看到我的iCloud Drive内容UIDocumentPickerViewController
.
我使用iOS 8 beta 5模拟器(和Yosemite beta 5来查看Mac上的iCloud Drive目录)(编辑/注意:这同样适用于beta 6)
这就是我的Entitlements文件的样子(仅限相关部分)
<key>com.apple.developer.icloud-container-identifiers</key>
<array>
<string>iCloud.$(CFBundleIdentifier)</string>
</array>
<key>com.apple.developer.icloud-services</key>
<array>
<string>CloudDocuments</string>
</array>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array/>
Run Code Online (Sandbox Code Playgroud)
我已经在Capabilities部分使用Xcode的UI进行了设置.我不明白为什么最后一个键没有条目,但添加<string>iCloud.$(CFBundleIdentifier)</string>
没有帮助.相反,它使Xcode在Capabilities UI中抱怨,所以我删除了它.编辑/注意: …
一些背景
iOS操作系统具有"权利"概念.一般来说,它是授予应用程序的权限.其他系统服务和应用程序可以检查此权限以允许/拒绝执行某些功能.
应在配置文件中指定这些权利.
系统应用程序具有许多不同的权利.
用户应用程序仅限于几个权利(例如访问iCloud或类似可在开发人员门户上配置的权限).
问题是:是否有人知道如何为NON越狱设备添加用户应用程序的权利?
总体思路是为开发的应用添加权利,以获得更多使用系统服务的权限.
备注和免责声明
我知道如何为越狱手机做这件事.但是,它不适用于非越狱设备.
我知道Apple会拒绝它.它不会去AppStore.
解决方案不一定是编译时解决方案(意思是修改文件的方法).它可能是一个运行时解决方案 - 一个应用程序向自己或第三方应用程序添加某种方式的权利.
每当我运行应用程序时,我都会在Xcode控制台中看到此消息:
libMobileGestalt MobileGestaltSupport.m:153: pid 1668 (APP_NAME) does not have sandbox access for frZQaejlsahdhlemg and IS NOT appropriately entitled
你好,
我有一段时间使用自动管理签名选项.然而,当我在最近的Xcode 8.0版本中这样做时,它迫使我使用开发人员代码签名身份甚至在Build Settings中发布和分发,这本身就很奇怪.当我提交相对二进制文件时,我会收到来自Apple的可怕的Missing Push Notification Entitlement电子邮件.为了弥补这一点,我禁用了自动选项并手动返回指定配置文件,这使我可以在分发版本设置中保留分发配置文件,并保存Apple的警告电子邮件.
为什么自动管理以这种方式工作以及如何调整其行为?
我正在调试这个 iPhone 应用程序,它基本上是一个票证管理器,在 webkit 视图中运行,从网站加载内容。有时会出现一个电话图标,单击该图标即可呼叫用户。
当我点击它时,我看到这个错误:
[断言] 获取断言时出错: <Error Domain=RBSServiceErrorDomain Code=1 “(发起者没有权利 com.apple.runningboard.assertions.webkit AND 发起者没有权利 com.apple.multitasking.systemappassertions)” UserInfo= {NSLocalizedFailureReason=(发起者没有权利 com.apple.runningboard.assertions.webkit 并且发起者没有权利 com.apple.multitasking.systemappassertions)}>
你们知道这是怎么回事吗?
我重读了Ad Hoc发行版的所有文档和帖子,但仍有问题.如果我尝试"无线"分发(使用Safari下载.plist和.ipa文件),应用程序开始下载,图标被正确绘制,名称将从"正在安装..."更改,但当其大约90%完成时得到"无法下载..."提醒.
如果我使用iTunes方法转移应用程序我得到'应用程序"xx"没有安装在iPhone"xx"上,因为权利不正确.
Q1:我已经读过你不再需要单独添加.mobileprovision文件,因为XCode(我正在使用4.0.1)将它添加到包中 - 这是真的吗?
Q2:当我在Safari(在iPhone上)下载'.mobileprovision时,它只是将其显示为文本.这是我的问题或不相关的症状吗?
问题3:这个问题是否与Entitlements.plist有关?我找不到Apple或任何博客的任何文档,这些文档与我在使用XCode 4.0.1编辑此文件时看到的内容有关.如果我按照说明(New-> New File-> Code Signing-> Entitlements),我会得到一个只有'可以调试'密钥的默认文件.我已经尝试将此设置为NO,添加一个get-task-allow键(替换现有的 - 可能是可调试的是同一个键?)添加我的应用程序标识符,并添加一个带有上述两个键的iPhone Entitlements Dictionary(根据Apple的文档).
问题4:试图让权利和代码签名工作的iPhone开发者的自杀率是多少?
为了减少我在类似问题上看到的建议:我确实将Code Signing Entitlements设置为我的Entitlements.plist for distribution and Release.我已经尝试重新启动XCode,重建,存档等我尝试重新启动iPhone我已经回到了iPhone
更新:在XCode 4.0.1中,编辑Entitlements.plist时有一个菜单选项(编辑器 - >显示原始键和值),它将把键从"可以调试"切换到"获取任务允许"
在构建设置(Xcode 4.2.1)中指定权利和代码签名标识时,从Xcode构建时,您具有以下输出:
ProcessProductPackaging "myAppName.entitlements" "/path/to/myAppName.xcent"
cd /path/to/myAppName/SourceCode
builtin-productPackagingUtility "/path/to/myAppName/SourceCode/myAppName.entitlements" -entitlements -format xml -o "/path/to/myAppName.xcent"
CodeSign "/path/to/Garfields Comic Boom 1.0.app"
cd /path/to/myAppName/SourceCode
setenv CODESIGN_ALLOCATE /Developer/usr/bin/codesign_allocate
/usr/bin/codesign --force --sign "myCertificate" --entitlements "/path/to/myAppName.xcent" "/path/to/myAppName.app"
Run Code Online (Sandbox Code Playgroud)
我想在构建结束时签署我的app文件夹,而不是在Xcode构建期间.
我的问题是我不知道如何在命令行中生成xcent文件.
问题:如何在命令行中生成xcent文件?我从根找到了一个,没有什么叫做productPackagingUtility ......
当我更新我的第一个iOS应用程序时,我有2个问题验证它们,
*iPhone/iPod Touch:application executable is missing a required architecture.
At least one of the following architecture(s) must be present: armv7
*Unable to extract entitlements from application: (null)
Run Code Online (Sandbox Code Playgroud)
Info.plist和构建设置都是默认设置,我唯一改变的是代码签名Identity调试和发布到我的分发配置文件,应用程序ID和Bundle ID相同.
architecture objective-c entitlements armv7 code-signing-entitlements
entitlements ×10
ios ×6
xcode ×2
adhoc ×1
architecture ×1
armv7 ×1
code-signing ×1
icloud ×1
icloud-api ×1
info-plist ×1
ios8 ×1
iphone ×1
macos ×1
objective-c ×1
passwords ×1
swift ×1
wkwebview ×1
xcode6 ×1
xcode8 ×1