标签: podspec

Cocoapods仅为Debug指定podspec xcconfig值

我正在使用cocoapods,并希望使用特定于调试模式的xcconfig参数在pod的podspec中指定一个值.

目前,使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS" => "MY_DEFINE=1" }
Run Code Online (Sandbox Code Playgroud)

将设置Debug和Release模式的值.还尝试使用:

s.xcconfig = { "GCC_PREPROCESSOR_DEFINITIONS[config=Debug]" => "MY_DEFINE=1" }
Run Code Online (Sandbox Code Playgroud)

但是,虽然这将它设置在pod的预处理器宏中,但在执行代码期间似乎没有注册,这与不使用[config = Debug]标记时不同.有没有办法将其限制为仅调试模式?

ios cocoapods podspec

5
推荐指数
1
解决办法
1879
查看次数

如何发布新的官方pod版本?

更新pod版本失败

我使用Xcode 8.2.1和CocoaPods v1.1.1,我的代码是Swift 3

我的问题是发布我的pod的新版本或更新现有版本,这在pod spec lint上失败.

我已经创建了一个PlaybuzzSDK pod,我想更新它的代码.我通过GitHub客户端提交并推送新代码,但更改不会反映在pod类上,仅在Example项目中反映出来.

我做了什么?

我已创建新标记并尝试推送它,但未通过验证:

git tag 0.1.1 (successful)
git push origin 0.1.1 (successful)
pod spec lint PlaybuzzSDK.podspec (unsuccessful with error below)
pod trunk push PlaybuzzSDK.podspec  (unsuccessful with error below) 
Run Code Online (Sandbox Code Playgroud)

- > PlaybuzzSDK(0.1.1) - 错误| [iOS] unknown:遇到未知错误([!]/usr/bin/git clone https://github.com/LudaFuxPlaybuzz/playbuzz-ios-sdk.git/var/folders/h0/knhpn8z16n3cz6tkny5rmtn00000gn/T/d20161228- 47834-nli8c4 --template = --single-branch --depth 1 --branch v0.1.1

克隆到'/ var/folders/h0/knhpn8z16n3cz6tkny5rmtn00000gn/T/d20161228-47834-nli8c4'...警告:无法找到要进行克隆的远程分支v0.1.0.致命:验证期间在上游原点找不到远程分支v0.1.0.

[!]由于1错误,规范没有通过验证.[!] Swift项目的验证器默认使用Swift 3.0,如果你使用不同版本的swift,你可以使用.swift-version文件来设置你的Pod的版本.例如,要使用Swift 2.3,请运行:echo"2.3"> .swift-version.

我试过的其他事情:

  • 我从我的comp中删除了该项目并再次克隆它
  • 我已经清理了CocoaPods的缓存 rm -rf ~/Library/Caches/Cocoapods rm -rf ~/.cocoapods/repos
  • 我试图创建一个新的分支,并尝试pod lint分支.

但我每次都会收到这个错误.

我期待发生什么

我预计从现在开始,如果有人补充道

pod 'PlaybuzzSDK' …
Run Code Online (Sandbox Code Playgroud)

ios cocoapods podspec

5
推荐指数
1
解决办法
2420
查看次数

在 React Native 库中使用本地 .xcframework 的 Podspec 文件应该是什么?

我创建了一个 React Native 库,它是在 React Native 项目中使用本机 iOS 框架的包装器。早些时候我使用过.framework,它运行良好。现在我在使用这个库时遇到问题.xcframework而不是.framework

我将此库添加为项目的依赖项,然后在运行时pod install出现以下错误:

[!] [Xcodeproj] 生成重复的 UUID:

当我打开项目并尝试构建它时,它在设备上成功构建,但在模拟器上失败。

以下是我在库项目中使用的 Podspec 文件:

Pod::Spec.new do |s|
  s.name         = "react-native-myLibrary"
  s.version      = "1.0.0"
  s.summary      = "react-native-myLibrary"
  s.description  = <<-DESC
                    react-native-myLibrary
                   DESC
  
  s.homepage     = "https://github.com/geektimecoil/react-native-onesignal"
  s.license      = "MIT"
  s.author       = { "author" => "author@domain.cn" }
  s.platform     = :ios, "10.0"
  s.source       = { :http => 'file:' + __dir__ + '/' }

  s.source_files = "**/*.{h,m,swift}"
  s.requires_arc = true
  s.vendored_frameworks = …
Run Code Online (Sandbox Code Playgroud)

ios cocoapods podspec react-native-ios xcframework

5
推荐指数
1
解决办法
7133
查看次数

将 XCFrameworks 包含到 Podspec 中

我有一个静态库,为多种架构编译,包含在 XCFramework 中。

它看起来像这样:

 | framework_1.xcframework
 |---- _CodeSignature
 |---- Info.plist
 |---- ios-arm64_arm64e
       |---- Headers
       |---- libframework.a
 |---- ios-arm64_x86_64-simulator
       |---- Headers
       |---- libframework.a
 |---- macos-arm64_arm64e_x86_64
       |---- Headers
       |---- libframework.a
Run Code Online (Sandbox Code Playgroud)

我正在开发一个带有 Podspec 的 iOS 框架,如下所示:

Spec do |spec|
 spec.information

 spec.subspec 'XCFrameworkPod' do |xcframework|
  xcframework.vendored_frameworks = 'path/to/framework_1.xcframework'
 end

Run Code Online (Sandbox Code Playgroud)

我已经通过指定以下内容成功包含了我的标题:

  xcframework.source_files = 'path/to/framework_1.xcframework/ios-arm64_x86_64-simulator/Headers/**/*.h'
Run Code Online (Sandbox Code Playgroud)

这样,我的标题就可以在我的项目中使用。但是当我尝试使用其中之一时,它无法编译。我有以下错误:

在框架模块内包含非模块化标头: '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/clang/include/inttypes.h' 在框架内包含非模块化标头模块:'/Users/myuser/Library/Developer/Xcode/DerivedData/MyProject/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/MyPod/XCFrameworkPod/Headers/header.h'

如何正确集成xcframework和标头?

我尝试设置“Clang 允许非模块化标头”,但它在 Swift 项目中不起作用。

感谢您的帮助 !

ios cocoapods podspec swift xcframework

5
推荐指数
1
解决办法
2838
查看次数

Flutter 'IPHONEOS_DEPLOYMENT_TARGET' 设置为 8.0,但支持的部署目标版本范围为 9.0 至 15.4.99

在过去的3年里。我可能在这个问题上花了两周时间,如果您正在克隆和处理其他人的项目,它经常会出现,但通常不会出现在您自己的项目上。

stackoverflow 上有大量答案,有时你使用一个答案并且它有效,而有时你必须使用另一个答案。我已经解决了这个问题无数次,但每次都没有相同的解决方案有效。

这是错误:

“IPHONEOS_DEPLOYMENT_TARGET”设置为 8.0,但支持的部署目标版本范围为 9.0 到 15.4.99。

这个错误实际上来自哪里,需要更改 flutter 中的哪些设置。我将列出下面所有能够在错误发生后修复它的方法,但我想知道首先导致此问题的设置在哪里。

这些是我用来解决此问题的设置和方法:

更新pod文件平台:

# Uncomment this line to define a global platform for your project
platform :ios, '13.0'
Run Code Online (Sandbox Code Playgroud)

更新AppFrameworkInfo.plist:

<key>MinimumOSVersion</key>
<string>13.0</string>
Run Code Online (Sandbox Code Playgroud)

在 Xcode 中更新运行器部署目标:

在此输入图像描述

在 Xcode 中更新 pod 部署目标:

在此输入图像描述

更改 podfile 中的脚本(这有效,但会导致其他错误):

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
Run Code Online (Sandbox Code Playgroud)

对此

  post_install do |installer|
 installer.pods_project.targets.each do |target|
     flutter_additional_ios_build_settings(target)
     target.build_configurations.each do |config|
        if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 13.0
          config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
        end
     end
 end
Run Code Online (Sandbox Code Playgroud)

结尾

更新 Xcode 中的项目格式:

在此输入图像描述

还:

  • 删除 Pod …

xcode ios cocoapods podspec flutter

5
推荐指数
0
解决办法
3898
查看次数

podspec规范不验证

我正在尝试按照本教程创建一个可可豆荚.我现在正在执行以下命令:

pod repo push RWPodSpecs RWPickFlavor.podspec

问题是我遇到以下错误:

Validating spec
[!] The `RWPickFlavor.podspec` specification does not validate.
Run Code Online (Sandbox Code Playgroud)

不幸的是没有进一步的错误描述.我尝试的是重新安装cocoapods和安装cocoapods键,但它没有帮助.我仍然得到同样的错误.伙计们,有什么想法?

ios cocoapods podspec

4
推荐指数
3
解决办法
4264
查看次数

如何为依赖于使用cocoapods添加的其他框架的所有体系结构构建cocoa touch框架?

我想创建一个为模拟器和设备构建的输出框架的私有cocoapod.

我创建了一个Cocoa触摸框架,其中我使用Cocoapods集成了CocoaLumberjack.我想为所有可能的架构(模拟器和设备)构建框架.

默认情况下,构建设置,

 'Build Active Architectures Only' is set to (Debug - Yes, Release - No).
Run Code Online (Sandbox Code Playgroud)

只要我将debug的此设置设置为No,构建就会失败,并显示以下链接器错误:

Undefined symbols for architecture i386:
"_OBJC_CLASS_$_DDASLLogger", referenced from:
  objc-class-ref in MyManager.o
"_OBJC_CLASS_$_DDLog", referenced from:
  objc-class-ref in MyManager.o
"_OBJC_CLASS_$_DDTTYLogger", referenced from:
  objc-class-ref in MyManager.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我知道CocoaLumberjack仅适用于调试版本中的活动架构.

因此,我将用于调试的Build active架构切换回Yes,并成功构建框架.

为了构建所有架构的框架,我使用在Build阶段添加的运行脚本,该脚本还声称将ios-device和ios-simulator构建合并为一个.这是脚本:

    set -e
    set +u
    # Avoid recursively calling this script.
    if [[ $SF_MASTER_SCRIPT_RUNNING ]]
    then …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch objective-c ios cocoapods podspec

4
推荐指数
1
解决办法
5792
查看次数

如何将Objective-C和Swift混合使用以构建cocoapods框架

我正在创建一个快速框架,并且想在该框架中使用Objective-C类。

我曾经pod lib create frameworkName创建图书馆。

这是我的podspec文件:

http://guides.cocoapods.org/syntax/podspec.html

Pod::Spec.new do |s|
s.name             = 'MyFramework'
s.version          = '0.1.0'
s.summary          = 'A short description of RadiantSensorsRSPOS.'

s.description      = <<-DESC
TODO: Add long description of the pod here.
                   DESC
s.license          = { :type => 'MIT', :file => 'LICENSE' }
s.ios.deployment_target = '8.0'

s.source_files = 'MyFramework/Classes/**/*'
s.public_header_files = 'Pod/Headers/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'CocoaAsyncSocket'
end
Run Code Online (Sandbox Code Playgroud)

objc.hobjc.m包含的文件Objc类。我已经使用这个ObjcMyFramework.swift

在标准应用程序(非框架)中,我做了一个头桥并导入了objc.h …

frameworks objective-c cocoapods podspec swift

4
推荐指数
1
解决办法
2070
查看次数

iOS - cocoapods 不更新

我有自己的 pod,已上传到 cocoa。我已经上传了新的代码行,我可以在存储库中看到它们,我可以在项目中的 pod 中看到它们,但它们仍然没有执行。

吊舱规格: 在此输入图像描述

podspec 中的新代码行: 在此输入图像描述

任何想法?

在存储库中添加新代码行: 在此输入图像描述

ios cocoapods podspec swift

3
推荐指数
1
解决办法
4888
查看次数

无法识别的`swift_version`键

我无法将新版本的Pod推送到CocoaPods规格存储库。

运行会pod trunk push MyPod.podspec导致以下错误:

[!] The Pod Specification did not pass validation.
The following validation failed:
- Warnings: Unrecognized `swift_version` key.
Run Code Online (Sandbox Code Playgroud)

这是我的podspec:

Pod::Spec.new do |spec|

  spec.name = "MyPod"
  spec.version = "0.1.1"
  spec.summary = "[REDACTED]"
  spec.homepage = "[REDACTED]"
  spec.license = "Apache License, version 2"
  spec.author = "[REDACTED]"
  spec.social_media_url = "[REDACTED]"
  spec.module_name = "MyPod"
  spec.swift_version = "5.0"
  spec.platform = :ios, "8.0"
  spec.source = { :git => "https://github.com/[REDACTED].git", :tag => "v#{spec.version}" }
  spec.source_files = "MyPod/**/*.{h,m,swift}"

end
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

更新到Swift 5和Xcode …

cocoapods podspec swift

3
推荐指数
1
解决办法
426
查看次数