使用 use_frameworks 签名错误!和独特的配置文件

2024-05-06

我将最初讨论中的最后一篇文章粘贴到此处:

https://github.com/CocoaPods/CocoaPods/issues/4331 https://github.com/CocoaPods/CocoaPods/issues/4331

这个问题已经存在快一年了,仍然没有找到合适的解决方案。

建造时:

Code Sign error: Provisioning profile does not match bundle identifier: The provisioning profile specified in your build settings (“MyDistributionProfileName”) has an AppID of “com.myorg.myapp” which does not match your bundle identifier “org.cocoapods.PureLayout”.

笔记! PureLayout 作为依赖项添加到我的 pod 中(在 mypod.podspec 文件中):s.dependency 'PureLayout', '3.0.2'

这是我的 Pod 的整个 podspec 文件:

Pod::Spec.new do |s|
  s.name                = 'MyPod'
  s.version             = '1.2.34'
  s.license             =  { :type => "MIT", :file => "LICENSE" }
  s.homepage            = 'https-:-//bitbucket.org/XXXX123/my-pod'
  s.authors             = { "AuthorName" => "[email protected] /cdn-cgi/l/email-protection" }
  s.summary             = 'This isa a cocoa pod that contains the MY framework.'
  s.source              = { :git => "https-:-//bitbucket.org/XXXX123/my-pod", :tag => "#{s.version}" }
  s.ios.deployment_target = '8.0'
  s.source_files        = 'MyPod/**/*.{swift,h}'
  s.resource = 'MyPod/*'
  s.pod_target_xcconfig = { 'ENABLE_BITCODE' => 'NO', 'ONLY_ACTIVE_ARCH' => 'NO'}
  s.dependency 'PureLayout', '3.0.2'
end

Notes:

  1. 放弃使用 CocoaPods 不是一个选择。

  2. 使用 @DimaVartanian 修复会导致类似 @mgrebenets 遇到的错误

    错误 ITMS-90035签名无效。代码对象根本没有签名。确保您使用分发证书而不是临时证书或开发证书签署您的应用程序。验证 Xcode 中的代码签名设置在目标级别是否正确(覆盖项目级别的任何值)。此外,请确保您上传的包是使用 Xcode 中的 Release 目标而不是 Simulator 目标构建的。如果您确定代码签名设置正确,请在 Xcode 中选择“Clean All”,删除 Finder 中的“build”目录,然后重建您的发布目标。欲了解更多信息,请参阅https-:-//developer.apple.com/library/ios/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html”

    错误 ITMS-90171无效的捆绑结构 - 不允许使用二进制文件“XApp.app/Frameworks/X.framework/XView.o”。除了受支持的捆绑包的 CFBundleExecutable 之外,您的应用程序不能包含独立的可执行文件或库。有关 iOS 应用程序包结构的信息,请参阅 https-:-//developer.apple.com/go/?id=bundle-struct 上的捆绑包编程指南。

  3. 我的项目还使用 PushNotifications,因此无法使用任何通配符配置文件。

  4. 这是我用于构建构建的健身房系列

    gym --clean --scheme ${XCODE_PROJECT_TARGET_NAME} --configuration Release --include_bitcode false --archive_path ${BUILDS_DIR}${PACKAGE_NAME}.xcarchive --output_directory $BUILDS_DIR --output_name "${PACKAGE_NAME}.ipa" --xcargs PROVISIONING_PROFILE=$APP_PROVISION_UUID
    

    当应用 @DimaVartanian 修复时,此行工作没有任何错误,但如上所述,它会导致错误 ITMS-90035 and 错误 ITMS-90171在上传过程中。

    这是我上传构建的试验线:

    pilot upload --skip_submission --username ${APPLE_ID_USERNAME} --team_id ${APPLE_ITUNES_CONNECT_TEAM_ID} --verbose --ipa ${BUILDS_DIR}${PACKAGE_NAME}.ipa --skip_waiting_for_build_processing true
    
  5. 我还可以确认使用 xcode 构建/存档/上传时存在同样的问题。

  6. 添加这个--export_options "ExportOptions.plist"到gym命令行,没有任何区别。通过 xcargs 尝试也失败--xcargs "PROVISIONING_PROFILE=$APP_PROVISION_UUID exportOptionsPlist=$EXPORT_OPTIONS_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>teamID</key>
       <string>TEAMID123</string>
       <key>uploadSymbols</key>
       <string>NO</string>
       <key>compileBitcode</key>
       <false/>
       <key>uploadBitcode</key>
       <false/>
       <key>method</key>
       <string>app-store</string>
    </dict>
    </plist>
    

我希望 CocoaPods 团队能够尽快解决这个问题。

简而言之 - 失败的是以下序列的结束:

  1. 在 Objective-C 中创建基础项目或采用旧的维护的 Objective-C 项目
  2. 创建并实施框架(可可触摸框架)斯威夫特项目
  3. 为该框架创建 podspec 并将其上传到存储库
  4. 使用 CocoaPods 将该框架包含到基础项目中
  5. 在模拟器和有线设备上构建并运行应用程序就可以了(一切都按预期进行)
  6. 构建和/或上传到 iTunesConnect 是不行的,它会失败!

稍后我将尝试添加一个示例项目来演示该问题。


好吧,所以这次我用自己的方式解决了这个问题。 与往常一样,解决方案比想象的要容易。

这次 bugger 错误 ERROR ITMS-90171 的原因是 podspec 文件中的指令。

这个:s.resource = 'MyPod/*'

不知道我是怎么错过的,但“MyPod/*”字面意思是,包括 MyPod 目录中的所有内容,除了图形资源之外还包含 *.swift 文件。

因此,通过将该行更改为:s.resource = 'MyPod/Graphics.xcassets'解决了问题。不再出现错误 ITMS-90171。


然而, 在这里,我们仍然必须接受一种解决方法(由 @DimaVartanian 提出),该解决方法修复了 cocoapods 提供的框架的代码签名要求。

修复本身就是将此代码添加到基础项目的“Podfile”中:

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

这将(在“pod install”之后)遍历项目中的所有 pod 目标,并通过更改某些设置来删除代码签名要求,如您在代码中看到的那样。

有一些传言称,升级到 XCode 8 后将不再需要此解决方法。我尚未找到对此的任何官方确认,但我希望这是真的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 use_frameworks 签名错误!和独特的配置文件 的相关文章

  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • 如何将字符串日期转换为 NSDate?

    我想转换字符串 2014 07 15 06 55 14 198000 00 00 to an NSDate在斯威夫特 尝试这个 let dateFormatter NSDateFormatter dateFormatter dateForm
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • iOS 滚动视图允许滚动过去的内容

    我正在努力优化我的应用程序以适应横向和较小的屏幕 我主要使用滚动视图来实现这一点 在我的其中一个视图中 我有一个容器视图 当我在故事板中的设备之间切换时 这个容器视图看起来很完美 容器视图映射到具有滚动视图的视图控制器 该滚动视图的顶部 底
  • 添加自定义过渡会导致 xib 加载错误的屏幕尺寸

    我正在尝试向具有 xib 的 UIViewController 添加自定义过渡 我尝试了几种方法 但它们都有相同的问题 视图显示的屏幕尺寸错误 我当前的示例基于以下教程 使用 Swift 在 iOS 中自定义 UIViewControlle
  • 为什么这个谓词格式会变成 '= nil'

    有人建议这个线程 https stackoverflow com questions 40686005 nspredicate crash after swift 3 migration与我的问题完全相同 但是 我的应用程序没有崩溃 并且我
  • Xcode 中的 iOS 9 警告 - 此文件设置为针对早于项目部署的版本进行构建。功能可能有限

    我刚刚将我的 Mac 更新到最新的操作系统 并将 Xcode 更新到最新版本 现在我收到此警告 但我不知道该由谁来删除它 也不知道它的真正含义是什么 有人可以向我解释一下吗 Thanks Select Main storyboard in
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • UICollectionView 拖放文件夹创建

    我正在使用 UICollectionView 创建 iOS 画廊应用程序 我希望用户能够拖放图像来重新排序图库并创建文件夹 类似于 iPhone 上的主屏幕 我发现了以下内容tutorial http nshint io blog 2015
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • 频繁绘制 CGPath 时的性能

    我正在开发一个将数据可视化为折线图的 iOS 应用程序 该图被绘制为CGPath在全屏自定义中UIView最多包含 320 个数据点 数据经常更新 图表需要相应地重新绘制 刷新率为 10 秒就很好了 到目前为止很容易 然而 我的方法似乎需要
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • NVActivityIndi​​catorView 仅适用于特定视图

    我正在使用这个库https github com ninjaprox NVActivityIndi catorView https github com ninjaprox NVActivityIndicatorView用于显示加载指示器
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • SKNode 上的 runAction 未完成

    我使用 NSOperation 子类来获取串行执行SKAction正如这个问题中所描述的 如何在 Swift 中子类化 NSOperation 以将 SKAction 对象排队以进行串行执行 https stackoverflow com
  • 苹果企业程序分发问题[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 这个问题涉及到Apple iOS 开发者企业计划 http developer apple com programs ios enterprise 我
  • Swift 中的 UIAlert 自动消失?

    我有以下代码 Creates Alerts on screen for user func notifyUser title String message String gt Void let alert UIAlertController

随机推荐

  • PySide2/QML 填充 Gridview 模型/委托并为其设置动画

    我是 QML 的新手 正在寻求以下几点帮助 如何基于 TextField 输入 如 Regex 通过 PySide2 过滤 Gridview 模型中的 QAbstractListModel 数据 标题 如何在鼠标悬停时为 Gridview
  • Spark:Aggregator和UDAF有什么区别?

    在Spark的文档中 Aggregator 抽象类聚合器 IN BUF OUT 扩展可序列化 用户定义聚合的基类 可以是 在数据集操作中用于获取组中的所有元素并 将它们减少到单个值 用户定义的聚合函数是 抽象类 UserDefinedAgg
  • JavaScript:发送 POST,重定向到响应

    我有一个带有 onclick 的图像 当单击事件触发时 我想发送 HTTP POST 并将 window location 重定向到 POST 的响应 我怎样才能做到这一点 只需将按钮绑定到表单元素的提交方法 重定向就会自然发生
  • 如何将NSDate转换为unix时间戳iphone sdk?

    如何转换NSDate转换为 Unix 时间戳 我读过很多相反的帖子 但我没有找到与我的问题相关的任何内容 我相信这是您正在寻找的 NSDate 选择器 NSTimeInterval timeIntervalSince1970
  • Struts 2 中的 Java 应用程序可以管理多少个会话?

    我正在开发事务管理应用程序 并且正在使用 Struts2 我在内部使用了一个会话来设置和获取值 例如 ActionContext getContext getSession put string string 在应用程序中使用这样的会话是否
  • 如何在这个可嵌套的 For 循环中实现 Robot Framework 风格的变量?

    我在 Robot Framework 中见过很多 嵌套 For 循环 主要是创建一个内部带有 For 循环的关键字 然后在另一个 For 循环中调用该关键字 我使用 Python 2 7 13 制作了一个可嵌套的 For 循环 但因为它主要
  • Mongo查询具有两级未知父键的嵌套字段值

    我们使用 MongoDB 来存储时间序列传感器数据 类似于设计中所示的模式https www mongodb com blog post schema design for time series data in mongodb https
  • 使用 Gmail 帐户在 JBoss 中配置 mail-service.xml

    我想配置我的 mail service xml 以从我的 Gmail 帐户发送电子邮件 我已经做了配置 但是没有用
  • 使用 JS 或 Jquery 禁用浏览器窗口中的声音

    有没有办法禁用可能嵌入视频的浏览器窗口上的所有声音 我不是在寻找特定的解决方案 例如使用 js 等定位 Youtube 我需要一些通用的东西来关闭该页面的所有声音 这样如果任何视频播放它就没有声音 需要一些在页面级别关闭声音的东西 而不是通
  • SQLite 和共享首选项的优缺点[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 SQLite 数据库和共享首选项之间存储信息的良好机制是什么 为什么要使用共享偏好设置 为什么使用sqlite 我试图找出它们之间的区别 以
  • 使用模型优先方法时如何播种数据?

    所以我正在学习MVC3和EF4 我尝试了代码优先方法 但它对我来说太混乱了 我可以毫无问题地创建类 但最困难的部分是处理外键和彼此之间的关系 但我首先选择了模型 这样我就可以直观地设计它并查看关系在哪里 创建模型后 它会为我创建一个 SQL
  • 观察点固定地址

    对于我当前的嵌入式应用程序 我尝试将 GDB 观察点放在固定的内存地址处 例如 我的应用程序更新以下地址 0x10793ad0 为了确定代码的哪一部分破坏了值 我尝试了 watch 0x10793ad0 即使 GDB 在此之后不会打印任何错
  • 通过 Assets Pipeline 携带 Sass 变量,Rails 3.1 rc1

    我最近将我的 Rails 3 0 项目之一与 3 1 rc1 进行了分支 以尝试新的资产管道 在使用 3 1 之前 我一直在项目中使用 Sass 因此我在单独的配置文件中设置了一些变量和函数 并让所有其他 sass 文件在第一行导入该文件
  • 为什么调用 istream::tellg() 会影响我的程序的行为?

    我正在尝试将 24 位位图图像转换为灰度图像 include
  • 如何利用磁盘 IO 队列

    我需要从 3 7 GB 文件中读取小数据序列 我需要阅读的职位是不相邻 但我可以命令 IO 以便从头到尾读取文件 该文件存储在 iSCSI SAN 上 该 SAN 应该能够处理 优化排队 IO 问题是 如何一次性请求我需要的所有数据 位置
  • 读取/写入本地 json 文件 swift 4

    请帮我 我在项目中添加了一个json文件 我的 json 文件 person title image Vitamin1 favorite false title B6 image Vitamin2 favorite false 我可以读取文
  • kubectl --token=$TOKEN 未使用令牌的权限运行

    当我使用命令时kubectl与 token标记并指定令牌 它仍然使用来自kubeconfig file 这就是我所做的 NAMESPACE default SERVICE ACCOUNT NAME sa1 kubectl create sa
  • 来自公共字符串的 Android RSA 加密

    我正在开发一个 Android 应用程序 我希望用户能够使用其他人的公钥加密消息 系统将生成公钥 私钥对 然后可以将消息秘密发送给其他用户 我正在创建一个加密类 它将处理消息的加密 解密 不幸的是我遇到了一些问题 在这种方法中 我想传递用户
  • (此时出乎意料 - 批处理脚本

    我正在使用下面的批处理脚本并收到错误 这时候是出乎意料的 我知道问题出在第一行 但我不明白出了什么问题 有任何想法吗 script IF 1 LOOP1 SET P isDefault Value Missing do you want t
  • 使用 use_frameworks 签名错误!和独特的配置文件

    我将最初讨论中的最后一篇文章粘贴到此处 https github com CocoaPods CocoaPods issues 4331 https github com CocoaPods CocoaPods issues 4331 这个