如何在Swift中获取软件包ID?
Objective-C版本:
NSString *bundleIdentifier = [[NSBundle mainBundle] bundleIdentifier];
Run Code Online (Sandbox Code Playgroud) xcode给了我这条消息:
"无法找到安装的应用程序安装声称已成功,但无法在设备上找到应用程序.sBundId =(null)"
我刚开始使用pods.
我该如何解决?
我正在尝试构建我的应用程序,但它失败了.我看到下面的消息.
错误:WatchKit Extension不包含任何其包标识符与"com.domain.appname.watchkitapp"匹配的WatchKit应用程序.验证WatchKit Extension的Info.plist中WKAppBundleIdentifier的值是否与WatchKit App的Info.plist中的CFBundleIdentifier值相匹配.
我最近改"com.domain.appname.watchkitapp"
到"com.domain.differentappname.watchkitapp"
.
我无法找到改变它的地方.
我正在启动iOS 8扩展,但我无法在我的设备上运行它.尝试运行它时的错误是:
找不到匹配的配置文件
构建设置("ExtensionName")中指定的配置文件的AppID net.company.AppName
与您的软件包标识符不匹配net.company.AppName.ExtensionName
.Xcode可以通过从成员中心下载新的配置文件来解决此问题.
我正在设置Jenkins以自动化构建过程.特别是,根据我的需要,我希望能够设置不同的包标识符.
我正在使用Xcode Jenkins插件来设置包标识符:
问题是这将更改Info.plist文件和MyTarget> General> Bundle Identifier中的包标识符.但它不会更改"构建设置">"打包">"产品包标识符"中的包标识符.
如果我手动完成同样的事情.我在Xcode 7中创建了一个新项目.默认情况下,这三个值是:
当我Info.plist
像这样更改文件中的值时:
另外两个值将是:
那么你如何看待Build Settings中的值并没有改变.如果我在Xcode中,我手动更改该值,但如果我在Jenkins中构建项目,则这是一个双重问题.
有谁遇到过同样的问题?你是如何解决的?
谢谢!
在更新到Xcode 7.3(7D175)的最新版本后,每次我尝试导出以进行adhoc分发时,都会出现上述错误.一切都工作正常,直到更新.捆绑ID肯定是我自己的,已注册到此应用程序.我已经尝试重新创建我的证书,配置配置文件,删除旧配置文件,疯狂地点击"再试一次"按钮......似乎没有任何效果.
有人找到解决方案吗?我看到一些人正面临着同样的问题,但没有他们的解决方案似乎为我工作(/sf/answers/2533481051/,/sf/answers/2532262281/)
更新:我不确定这是否相关,但对于它,我试图'验证'构建.我做了,它通过了.无论如何,在您启动验证之前,您将获得信息屏幕,其中显示有关附加的prov-profile的所有详细信息.我注意到,尽管选择了我的adhoc prov-profile,但信息屏幕(在验证之前)表示它正在使用我的分发配置文件.然后我从xcode中删除了我的分发配置文件,重新存档,现在验证失败了.存档,adhoc和导出似乎有些奇怪.
在开发我的第一个iOS应用程序4个月后,是时候将它提交给了App Store
.我创建的应用程序iTunes Connect
,填写了所有的细节,树立正确的Bundle ID
两个Connect
和Xcode
.但是,过去3天我一直在努力解决这个奇怪的问题.似乎xcode正在尝试上传Cocoapods
框架,而不是我的主应用程序.
归档后,我去了Window > Organizer > Validate...
.我看到以下屏幕:
错误:
(对于googlers:找不到合适的应用程序记录.验证您的包标识符' org.cocoapods.Alamofire
'是否正确).
错误消息表明它正在尝试Bundle ID
根据框架的名称匹配a ,而不是我自己的bundle(例如com.organization.AppName
).我无法在任何地方找到答案.我尝试在我的Podfile
(具有use_frameworks!)中执行以下操作,以及我的不同conf组合,但没有成功.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
end
end
end
Run Code Online (Sandbox Code Playgroud)
问题:
Xcode
尝试匹配framework's bundle id
而不仅仅是我的主应用程序?编辑1:我能够解决这个问题,但后来又引发了另一个问题,所以我仍然没有解决方案.基本上,Alamofire Pod(来自Cocoapods)有一个包ID com.xxx.Alamofire
.我改成了com.xxx.myAppName
.有了这个,我能够将它发送到App Store,但由于以下错误,我无法从TestFlight在我的iPhone中安装该应用程序:
4/22/16, 12:50:29 AM itunesstored[124]: [ApplicationWorkspace]: …
Run Code Online (Sandbox Code Playgroud) Apple最近推出了iOS9和Xcode 7中的免费配置.我正在使用它,XCode自动将我的捆绑ID注册为App ID,现在我想删除App ID以将其用于另一个帐户,但我找不到方法去做吧.
我将我的iOS应用从一个苹果帐户转移到另一个苹果帐户,这会导致团队ID更改.干净的重新安装工作正常但每次安装更新时我都会收到以下错误:
[MIInstallableBundle performVerificationWithError:]:517:Upgrade的application-identifier权利字符串(new_teamid.bundle.id)与安装的应用程序的application-identifier字符串(old_teamid.bundle.id)不匹配; 拒绝升级.
我找到了使用'previous-application-identifiers'键更新Entitlements 的解决方案,并从Apple请求新的配置文件以便能够签署该应用程序:
<key>previous-application-identifiers</key>
<array>
<string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>
Run Code Online (Sandbox Code Playgroud)
如果没有该配置文件,我在安装过程中会收到以下错误:
无法验证MIExecutableBundle的代码签名path = path.app identifier = bundle_id type = 4 0xe8008016(找到配置文件不允许的权利)}
所以我联系了Apple并要求提供神奇的条款.
目前我有.ipa
文件和相同的应用程序可以通过试飞安装.我没有应用程序源代码.我尝试使用Archive Utility从.ipa文件中提取文件,但没有plist文件.我不知道如何获取此.ipa
应用程序的软件包ID(从文件或使用已安装的应用程序以及进程是什么?)因为我想在真实设备上自动执行此应用程序测试
(注意:.app
文件或源代码不可用,测试应用程序使用有效的开发人员配置文件签名)